mirror of
https://github.com/immich-app/immich.git
synced 2025-01-01 08:31:59 +00:00
fix(mobile): appBar on album viewer screen animates out and doesnt alter asset grid position (#9741)
* Animated out top bar added, currenlty need to move up current app bar as it is too far down * album viewer appBar animates out and does not cause screen shift * Formatting --------- Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
parent
75830a4878
commit
11152f9b3d
3 changed files with 84 additions and 68 deletions
|
@ -133,7 +133,7 @@ class AlbumViewerPage extends HookConsumerWidget {
|
||||||
|
|
||||||
Widget buildTitle(Album album) {
|
Widget buildTitle(Album album) {
|
||||||
return Padding(
|
return Padding(
|
||||||
padding: const EdgeInsets.only(left: 8, right: 8, top: 24),
|
padding: const EdgeInsets.only(left: 8, right: 8),
|
||||||
child: userId == album.ownerId && album.isRemote
|
child: userId == album.ownerId && album.isRemote
|
||||||
? AlbumViewerEditableTitle(
|
? AlbumViewerEditableTitle(
|
||||||
album: album,
|
album: album,
|
||||||
|
@ -228,21 +228,9 @@ class AlbumViewerPage extends HookConsumerWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: ref.watch(multiselectProvider)
|
body: Stack(
|
||||||
? null
|
children: [
|
||||||
: album.when(
|
album.widgetWhen(
|
||||||
data: (data) => AlbumViewerAppbar(
|
|
||||||
titleFocusNode: titleFocusNode,
|
|
||||||
album: data,
|
|
||||||
userId: userId,
|
|
||||||
onAddPhotos: onAddPhotosPressed,
|
|
||||||
onAddUsers: onAddUsersPressed,
|
|
||||||
onActivities: onActivitiesPressed,
|
|
||||||
),
|
|
||||||
error: (error, stackTrace) => AppBar(title: const Text("Error")),
|
|
||||||
loading: () => AppBar(),
|
|
||||||
),
|
|
||||||
body: album.widgetWhen(
|
|
||||||
onData: (data) => MultiselectGrid(
|
onData: (data) => MultiselectGrid(
|
||||||
renderListProvider: albumRenderlistProvider(albumId),
|
renderListProvider: albumRenderlistProvider(albumId),
|
||||||
topWidget: Column(
|
topWidget: Column(
|
||||||
|
@ -256,6 +244,28 @@ class AlbumViewerPage extends HookConsumerWidget {
|
||||||
editEnabled: data.ownerId == userId,
|
editEnabled: data.ownerId == userId,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
AnimatedPositioned(
|
||||||
|
duration: const Duration(milliseconds: 300),
|
||||||
|
top: ref.watch(multiselectProvider)
|
||||||
|
? -(kToolbarHeight + MediaQuery.of(context).padding.top)
|
||||||
|
: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
child: album.when(
|
||||||
|
data: (data) => AlbumViewerAppbar(
|
||||||
|
titleFocusNode: titleFocusNode,
|
||||||
|
album: data,
|
||||||
|
userId: userId,
|
||||||
|
onAddPhotos: onAddPhotosPressed,
|
||||||
|
onAddUsers: onAddUsersPressed,
|
||||||
|
onActivities: onActivitiesPressed,
|
||||||
|
),
|
||||||
|
error: (error, stackTrace) => AppBar(title: const Text("Error")),
|
||||||
|
loading: () => AppBar(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,9 @@ class AlbumViewerEditableTitle extends HookConsumerWidget {
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
return TextField(
|
return Material(
|
||||||
|
color: Colors.transparent,
|
||||||
|
child: TextField(
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
if (value.isEmpty) {
|
if (value.isEmpty) {
|
||||||
} else {
|
} else {
|
||||||
|
@ -57,7 +59,8 @@ class AlbumViewerEditableTitle extends HookConsumerWidget {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
contentPadding: const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
contentPadding:
|
||||||
|
const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
|
||||||
suffixIcon: titleFocusNode.hasFocus
|
suffixIcon: titleFocusNode.hasFocus
|
||||||
? IconButton(
|
? IconButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
|
@ -90,6 +93,7 @@ class AlbumViewerEditableTitle extends HookConsumerWidget {
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -238,8 +238,10 @@ class ImmichAssetGridViewState extends ConsumerState<ImmichAssetGridView> {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool appBarOffset() {
|
bool appBarOffset() {
|
||||||
return ref.watch(tabProvider).index == 0 &&
|
return (ref.watch(tabProvider).index == 0 &&
|
||||||
ModalRoute.of(context)?.settings.name == TabControllerRoute.name;
|
ModalRoute.of(context)?.settings.name ==
|
||||||
|
TabControllerRoute.name) ||
|
||||||
|
(ModalRoute.of(context)?.settings.name == AlbumViewerRoute.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
final listWidget = ScrollablePositionedList.builder(
|
final listWidget = ScrollablePositionedList.builder(
|
||||||
|
|
Loading…
Reference in a new issue