feat: cool app bar

This commit is contained in:
Alex 2025-07-07 22:25:14 -05:00
parent d5eff115e8
commit 7173bdf60b
No known key found for this signature in database
GPG key ID: 53CD082B3A5E1082
6 changed files with 658 additions and 12 deletions

View file

@ -325,7 +325,7 @@ class _AssetViewerState extends ConsumerState<AssetViewer> {
final isDraggingDown = currentExtent < previousExtent;
previousExtent = currentExtent;
// Closes the bottom sheet if the user is dragging down
if (isDraggingDown && delta.extent < 0.5) {
if (isDraggingDown && delta.extent < 0.55) {
if (dragInProgress) {
blockGestures = true;
}

View file

@ -20,10 +20,16 @@ import 'package:immich_mobile/providers/timeline/multiselect.provider.dart';
import 'package:immich_mobile/widgets/common/immich_sliver_app_bar.dart';
class Timeline extends StatelessWidget {
const Timeline({super.key, this.topSliverWidget, this.topSliverWidgetHeight});
const Timeline({
super.key,
this.topSliverWidget,
this.topSliverWidgetHeight,
this.appBar,
});
final Widget? topSliverWidget;
final double? topSliverWidgetHeight;
final Widget? appBar;
@override
Widget build(BuildContext context) {
@ -44,6 +50,7 @@ class Timeline extends StatelessWidget {
child: _SliverTimeline(
topSliverWidget: topSliverWidget,
topSliverWidgetHeight: topSliverWidgetHeight,
appBar: appBar,
),
),
),
@ -52,10 +59,15 @@ class Timeline extends StatelessWidget {
}
class _SliverTimeline extends ConsumerStatefulWidget {
const _SliverTimeline({this.topSliverWidget, this.topSliverWidgetHeight});
const _SliverTimeline({
this.topSliverWidget,
this.topSliverWidgetHeight,
this.appBar,
});
final Widget? topSliverWidget;
final double? topSliverWidgetHeight;
final Widget? appBar;
@override
ConsumerState createState() => _SliverTimelineState();
@ -105,11 +117,12 @@ class _SliverTimelineState extends ConsumerState<_SliverTimeline> {
primary: true,
cacheExtent: maxHeight * 2,
slivers: [
const ImmichSliverAppBar(
floating: true,
pinned: false,
snap: false,
),
widget.appBar ??
const ImmichSliverAppBar(
floating: true,
pinned: false,
snap: false,
),
if (widget.topSliverWidget != null) widget.topSliverWidget!,
_SliverSegmentedList(
segments: segments,