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