Remember search panel open/close state
This commit is contained in:
parent
d0196a458c
commit
042cb6425a
@ -8,6 +8,7 @@ class SettingsLogic with ThrottledSaveLoadMixin {
|
||||
|
||||
late final hasCompletedOnboarding = ValueNotifier<bool>(false)..addListener(scheduleSave);
|
||||
late final hasDismissedSearchMessage = ValueNotifier<bool>(false)..addListener(scheduleSave);
|
||||
late final isSearchPanelOpen = ValueNotifier<bool>(true)..addListener(scheduleSave);
|
||||
late final currentLocale = ValueNotifier<String?>(null)..addListener(scheduleSave);
|
||||
|
||||
final bool useBlurs = !PlatformInfo.isAndroid;
|
||||
@ -17,6 +18,7 @@ class SettingsLogic with ThrottledSaveLoadMixin {
|
||||
hasCompletedOnboarding.value = value['hasCompletedOnboarding'] ?? false;
|
||||
hasDismissedSearchMessage.value = value['hasDismissedSearchMessage'] ?? false;
|
||||
currentLocale.value = value['currentLocale'];
|
||||
isSearchPanelOpen.value = value['isSearchPanelOpen'] ?? false;
|
||||
}
|
||||
|
||||
@override
|
||||
@ -25,6 +27,7 @@ class SettingsLogic with ThrottledSaveLoadMixin {
|
||||
'hasCompletedOnboarding': hasCompletedOnboarding.value,
|
||||
'hasDismissedSearchMessage': hasDismissedSearchMessage.value,
|
||||
'currentLocale': currentLocale.value,
|
||||
'isSearchPanelOpen': isSearchPanelOpen.value,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,9 @@ class _ArtifactSearchScreenState extends State<ArtifactSearchScreen> with GetItS
|
||||
String _query = '';
|
||||
|
||||
late final WonderData wonder = wondersLogic.getData(widget.type);
|
||||
late final PanelController panelController = PanelController(true);
|
||||
late final PanelController panelController = PanelController(
|
||||
settingsLogic.isSearchPanelOpen.value,
|
||||
)..addListener(_handlePanelControllerChanged);
|
||||
late final SearchVizController vizController = SearchVizController(
|
||||
_searchResults,
|
||||
minYear: wondersLogic.timelineStartYear,
|
||||
@ -45,6 +47,13 @@ class _ArtifactSearchScreenState extends State<ArtifactSearchScreen> with GetItS
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
panelController.dispose();
|
||||
vizController.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void _handleSearchSubmitted(String query) {
|
||||
_query = query;
|
||||
_updateResults();
|
||||
@ -58,6 +67,10 @@ class _ArtifactSearchScreenState extends State<ArtifactSearchScreen> with GetItS
|
||||
|
||||
void _handleResultPressed(SearchData o) => context.push(ScreenPaths.artifact(o.id.toString()));
|
||||
|
||||
void _handlePanelControllerChanged() {
|
||||
settingsLogic.isSearchPanelOpen.value = panelController.value;
|
||||
}
|
||||
|
||||
void _updateResults() {
|
||||
if (_query.isEmpty) {
|
||||
_searchResults = wonder.searchData;
|
||||
|
Loading…
x
Reference in New Issue
Block a user