@@ -6,7 +6,6 @@ import 'package:easy_localization/easy_localization.dart';
6
6
import 'package:flutter/material.dart' ;
7
7
import 'package:hooks_riverpod/hooks_riverpod.dart' ;
8
8
import 'package:immich_mobile/domain/models/album/album.model.dart' ;
9
- import 'package:immich_mobile/domain/services/remote_album.service.dart' ;
10
9
import 'package:immich_mobile/extensions/build_context_extensions.dart' ;
11
10
import 'package:immich_mobile/extensions/theme_extensions.dart' ;
12
11
import 'package:immich_mobile/extensions/translate_extensions.dart' ;
@@ -48,11 +47,11 @@ class _DriftAlbumsPageState extends ConsumerState<DriftAlbumsPage> {
48
47
});
49
48
}
50
49
51
- void onSearch (String searchTerm, QuickFilterMode mode ) {
50
+ void onSearch (String searchTerm, QuickFilterMode sortMode ) {
52
51
final userId = ref.watch (currentUserProvider)? .id;
53
52
ref
54
53
.read (remoteAlbumProvider.notifier)
55
- .searchAlbums (searchTerm, userId, mode );
54
+ .searchAlbums (searchTerm, userId, sortMode );
56
55
}
57
56
58
57
Future <void > onRefresh () async {
@@ -65,9 +64,9 @@ class _DriftAlbumsPageState extends ConsumerState<DriftAlbumsPage> {
65
64
});
66
65
}
67
66
68
- void changeFilter (QuickFilterMode mode ) {
67
+ void changeFilter (QuickFilterMode sortMode ) {
69
68
setState (() {
70
- filterMode = mode ;
69
+ filterMode = sortMode ;
71
70
});
72
71
}
73
72
@@ -144,7 +143,29 @@ class _SortButton extends ConsumerStatefulWidget {
144
143
145
144
class _SortButtonState extends ConsumerState <_SortButton > {
146
145
RemoteAlbumSortMode albumSortOption = RemoteAlbumSortMode .lastModified;
147
- bool albumSortIsReverse = false ;
146
+ bool albumSortIsReverse = true ;
147
+
148
+ void onMenuTapped (RemoteAlbumSortMode sortMode) {
149
+ final selected = albumSortOption == sortMode;
150
+ // Switch direction
151
+ if (selected) {
152
+ setState (() {
153
+ albumSortIsReverse = ! albumSortIsReverse;
154
+ });
155
+ ref.read (remoteAlbumProvider.notifier).sortFilteredAlbums (
156
+ sortMode,
157
+ isReverse: albumSortIsReverse,
158
+ );
159
+ } else {
160
+ setState (() {
161
+ albumSortOption = sortMode;
162
+ });
163
+ ref.read (remoteAlbumProvider.notifier).sortFilteredAlbums (
164
+ sortMode,
165
+ isReverse: albumSortIsReverse,
166
+ );
167
+ }
168
+ }
148
169
149
170
@override
150
171
Widget build (BuildContext context) {
@@ -165,49 +186,29 @@ class _SortButtonState extends ConsumerState<_SortButton> {
165
186
consumeOutsideTap: true ,
166
187
menuChildren: RemoteAlbumSortMode .values
167
188
.map (
168
- (mode ) => MenuItemButton (
169
- leadingIcon: albumSortOption == mode
189
+ (sortMode ) => MenuItemButton (
190
+ leadingIcon: albumSortOption == sortMode
170
191
? albumSortIsReverse
171
192
? Icon (
172
193
Icons .keyboard_arrow_down,
173
- color: albumSortOption == mode
194
+ color: albumSortOption == sortMode
174
195
? context.colorScheme.onPrimary
175
196
: context.colorScheme.onSurface,
176
197
)
177
198
: Icon (
178
199
Icons .keyboard_arrow_up_rounded,
179
- color: albumSortOption == mode
200
+ color: albumSortOption == sortMode
180
201
? context.colorScheme.onPrimary
181
202
: context.colorScheme.onSurface,
182
203
)
183
204
: const Icon (Icons .abc, color: Colors .transparent),
184
- onPressed: () {
185
- final selected = albumSortOption == mode;
186
- // Switch direction
187
- if (selected) {
188
- setState (() {
189
- albumSortIsReverse = ! albumSortIsReverse;
190
- });
191
- ref.read (remoteAlbumProvider.notifier).sortFilteredAlbums (
192
- mode,
193
- isReverse: albumSortIsReverse,
194
- );
195
- } else {
196
- setState (() {
197
- albumSortOption = mode;
198
- });
199
- ref.read (remoteAlbumProvider.notifier).sortFilteredAlbums (
200
- mode,
201
- isReverse: albumSortIsReverse,
202
- );
203
- }
204
- },
205
+ onPressed: () => onMenuTapped (sortMode),
205
206
style: ButtonStyle (
206
207
padding: WidgetStateProperty .all (
207
208
const EdgeInsets .fromLTRB (16 , 16 , 32 , 16 ),
208
209
),
209
210
backgroundColor: WidgetStateProperty .all (
210
- albumSortOption == mode
211
+ albumSortOption == sortMode
211
212
? context.colorScheme.primary
212
213
: Colors .transparent,
213
214
),
@@ -220,10 +221,10 @@ class _SortButtonState extends ConsumerState<_SortButton> {
220
221
),
221
222
),
222
223
child: Text (
223
- mode .key.t (context: context),
224
+ sortMode .key.t (context: context),
224
225
style: context.textTheme.titleSmall? .copyWith (
225
226
fontWeight: FontWeight .w600,
226
- color: albumSortOption == mode
227
+ color: albumSortOption == sortMode
227
228
? context.colorScheme.onPrimary
228
229
: context.colorScheme.onSurface.withAlpha (185 ),
229
230
),
@@ -244,14 +245,13 @@ class _SortButtonState extends ConsumerState<_SortButton> {
244
245
children: [
245
246
Padding (
246
247
padding: const EdgeInsets .only (right: 5 ),
247
- child: Transform .rotate (
248
- angle: 90 * pi / 180 ,
249
- child: Icon (
250
- Icons .compare_arrows_rounded,
251
- size: 18 ,
252
- color: context.colorScheme.onSurface.withAlpha (225 ),
253
- ),
254
- ),
248
+ child: albumSortIsReverse
249
+ ? const Icon (
250
+ Icons .keyboard_arrow_down,
251
+ )
252
+ : const Icon (
253
+ Icons .keyboard_arrow_up_rounded,
254
+ ),
255
255
),
256
256
Text (
257
257
albumSortOption.key.t (context: context),
0 commit comments