From 574f7bf00581213205f107a0391e00f8672c9937 Mon Sep 17 00:00:00 2001 From: hamed Hosseini Date: Fri, 25 Apr 2025 17:11:24 +0330 Subject: [PATCH] feat: Implement dynamic state and city selection - Load states and cities from JSON data files - Filter cities based on selected state - Update UI to disable city dropdown until state is selected - Fix AutoCompleteSelect component to properly handle selection - Reset city selection when state changes - Display selected state and city in button --- app/component/element/AutoCompleteSelect.js | 10 +- components/home/search/modal/index.js | 68 ++- data/city.json | 219 +++++++++ data/state.json | 33 ++ package-lock.json | 481 +++++++++++++++++++- package.json | 1 + 6 files changed, 789 insertions(+), 23 deletions(-) create mode 100644 data/city.json create mode 100644 data/state.json diff --git a/app/component/element/AutoCompleteSelect.js b/app/component/element/AutoCompleteSelect.js index 15fae5e..c2301e1 100644 --- a/app/component/element/AutoCompleteSelect.js +++ b/app/component/element/AutoCompleteSelect.js @@ -2,14 +2,15 @@ import BottomSelect from "@/components/icons/BottomSelect"; import { Autocomplete, Button, TextField } from "@mui/material"; import { styleTextSelectRight } from "@/mui"; -function AutoCompleteSelect({ list, isError, updateData, name, label }) { +function AutoCompleteSelect({ list, isError, updateData, name, label, disabled = false }) { return ( { - updateData && updateData(event.target.innerText, "value", name); + onChange={(event, newValue) => { + updateData && updateData(newValue ? newValue.label : "", name); }} sx={{ ...styleTextSelectRight, @@ -51,8 +52,7 @@ function AutoCompleteSelect({ list, isError, updateData, name, label }) {