mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:17:11 -05:00 
			
		
		
		
	feat(mobile): hide storage indicator outside main timeline (#19835)
* feat(mobile): hide storage indicator outside main timeline * fix: lint * set default as false --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
		
							parent
							
								
									68db17028b
								
							
						
					
					
						commit
						4ddd3764b4
					
				@ -16,17 +16,18 @@ class MainTimelinePage extends ConsumerWidget {
 | 
			
		||||
    return memoryLaneProvider.when(
 | 
			
		||||
      data: (memories) {
 | 
			
		||||
        return memories.isEmpty
 | 
			
		||||
            ? const Timeline()
 | 
			
		||||
            ? const Timeline(showStorageIndicator: true)
 | 
			
		||||
            : Timeline(
 | 
			
		||||
                topSliverWidget: SliverToBoxAdapter(
 | 
			
		||||
                  key: Key('memory-lane-${memories.first.assets.first.id}'),
 | 
			
		||||
                  child: DriftMemoryLane(memories: memories),
 | 
			
		||||
                ),
 | 
			
		||||
                topSliverWidgetHeight: 200,
 | 
			
		||||
                showStorageIndicator: true,
 | 
			
		||||
              );
 | 
			
		||||
      },
 | 
			
		||||
      loading: () => const Timeline(),
 | 
			
		||||
      error: (error, stackTrace) => const Timeline(),
 | 
			
		||||
      loading: () => const Timeline(showStorageIndicator: true),
 | 
			
		||||
      error: (error, stackTrace) => const Timeline(showStorageIndicator: true),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -33,7 +33,7 @@ class DriftAssetSelectionTimelinePage extends ConsumerWidget {
 | 
			
		||||
            final user = ref.watch(currentUserProvider);
 | 
			
		||||
            if (user == null) {
 | 
			
		||||
              throw Exception(
 | 
			
		||||
                'User must be logged in to access recently taken',
 | 
			
		||||
                'User must be logged in to access asset selection timeline',
 | 
			
		||||
              );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -206,6 +206,9 @@ class _AssetTileWidget extends ConsumerWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context, WidgetRef ref) {
 | 
			
		||||
    final lockSelection = _getLockSelectionStatus(ref);
 | 
			
		||||
    final showStorageIndicator = ref.watch(
 | 
			
		||||
      timelineArgsProvider.select((args) => args.showStorageIndicator),
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    return RepaintBoundary(
 | 
			
		||||
      child: GestureDetector(
 | 
			
		||||
@ -217,6 +220,7 @@ class _AssetTileWidget extends ConsumerWidget {
 | 
			
		||||
        child: ThumbnailTile(
 | 
			
		||||
          asset,
 | 
			
		||||
          lockSelection: lockSelection,
 | 
			
		||||
          showStorageIndicator: showStorageIndicator,
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
@ -14,12 +14,14 @@ class TimelineArgs {
 | 
			
		||||
  final double maxHeight;
 | 
			
		||||
  final double spacing;
 | 
			
		||||
  final int columnCount;
 | 
			
		||||
  final bool showStorageIndicator;
 | 
			
		||||
 | 
			
		||||
  const TimelineArgs({
 | 
			
		||||
    required this.maxWidth,
 | 
			
		||||
    required this.maxHeight,
 | 
			
		||||
    this.spacing = kTimelineSpacing,
 | 
			
		||||
    this.columnCount = kTimelineColumnCount,
 | 
			
		||||
    this.showStorageIndicator = false,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
@ -27,7 +29,8 @@ class TimelineArgs {
 | 
			
		||||
    return spacing == other.spacing &&
 | 
			
		||||
        maxWidth == other.maxWidth &&
 | 
			
		||||
        maxHeight == other.maxHeight &&
 | 
			
		||||
        columnCount == other.columnCount;
 | 
			
		||||
        columnCount == other.columnCount &&
 | 
			
		||||
        showStorageIndicator == other.showStorageIndicator;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
@ -35,7 +38,8 @@ class TimelineArgs {
 | 
			
		||||
      maxWidth.hashCode ^
 | 
			
		||||
      maxHeight.hashCode ^
 | 
			
		||||
      spacing.hashCode ^
 | 
			
		||||
      columnCount.hashCode;
 | 
			
		||||
      columnCount.hashCode ^
 | 
			
		||||
      showStorageIndicator.hashCode;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class TimelineState {
 | 
			
		||||
 | 
			
		||||
@ -26,11 +26,13 @@ class Timeline extends StatelessWidget {
 | 
			
		||||
    super.key,
 | 
			
		||||
    this.topSliverWidget,
 | 
			
		||||
    this.topSliverWidgetHeight,
 | 
			
		||||
    this.showStorageIndicator = false,
 | 
			
		||||
    this.appBar,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  final Widget? topSliverWidget;
 | 
			
		||||
  final double? topSliverWidgetHeight;
 | 
			
		||||
  final bool showStorageIndicator;
 | 
			
		||||
  final Widget? appBar;
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
@ -46,6 +48,7 @@ class Timeline extends StatelessWidget {
 | 
			
		||||
                columnCount: ref.watch(
 | 
			
		||||
                  settingsProvider.select((s) => s.get(Setting.tilesPerRow)),
 | 
			
		||||
                ),
 | 
			
		||||
                showStorageIndicator: showStorageIndicator,
 | 
			
		||||
              ),
 | 
			
		||||
            ),
 | 
			
		||||
          ],
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user