From b41af659972ce0c1b9aad14e32f76494d58614ab Mon Sep 17 00:00:00 2001 From: Christopher Makarem <23037854+x24git@users.noreply.github.com> Date: Sat, 24 Aug 2024 22:00:15 -0700 Subject: [PATCH] fix: align camera model drop down behavior with other drop downs on web and mobile (#11951) * fix(web): align search filter behavior to show all camera models * fix(mobile): align search filter behavior to clear camera model when make is set * (mobile) correctly clear the model controller * fix(mobile) re-add text controller to dropdown --------- Co-authored-by: Alex --- mobile/lib/widgets/search/search_filter/camera_picker.dart | 6 +++++- .../lib/widgets/search/search_filter/common/dropdown.dart | 1 + .../search-bar/search-camera-section.svelte | 5 ++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mobile/lib/widgets/search/search_filter/camera_picker.dart b/mobile/lib/widgets/search/search_filter/camera_picker.dart index 2e5618c9e0..e2110c9c29 100644 --- a/mobile/lib/widgets/search/search_filter/camera_picker.dart +++ b/mobile/lib/widgets/search/search_filter/camera_picker.dart @@ -51,10 +51,14 @@ class CameraPicker extends HookConsumerWidget { controller: makeTextController, leadingIcon: const Icon(Icons.photo_camera_rounded), onSelected: (value) { + if (value.toString() == selectedMake.value) { + return; + } selectedMake.value = value.toString(); + modelTextController.value = TextEditingValue.empty; onSelect({ 'make': selectedMake.value, - 'model': selectedModel.value, + 'model': null, }); }, ); diff --git a/mobile/lib/widgets/search/search_filter/common/dropdown.dart b/mobile/lib/widgets/search/search_filter/common/dropdown.dart index 230d7dd4da..dd8785459f 100644 --- a/mobile/lib/widgets/search/search_filter/common/dropdown.dart +++ b/mobile/lib/widgets/search/search_filter/common/dropdown.dart @@ -29,6 +29,7 @@ class SearchDropdown extends StatelessWidget { return LayoutBuilder( builder: (context, constraints) { return DropdownMenu( + controller: controller, leadingIcon: leadingIcon, width: constraints.maxWidth, dropdownMenuEntries: dropdownMenuEntries, diff --git a/web/src/lib/components/shared-components/search-bar/search-camera-section.svelte b/web/src/lib/components/shared-components/search-bar/search-camera-section.svelte index 839c17ecce..f1cd0c8596 100644 --- a/web/src/lib/components/shared-components/search-bar/search-camera-section.svelte +++ b/web/src/lib/components/shared-components/search-bar/search-camera-section.svelte @@ -18,13 +18,12 @@ $: makeFilter = filters.make; $: modelFilter = filters.model; - $: handlePromiseError(updateMakes(modelFilter)); + $: handlePromiseError(updateMakes()); $: handlePromiseError(updateModels(makeFilter)); - async function updateMakes(model?: string) { + async function updateMakes() { const results: Array = await getSearchSuggestions({ $type: SearchSuggestionType.CameraMake, - model, includeNull: true, });