설치 가능 모듈 추가

This commit is contained in:
hyojun.choi 2024-08-19 13:36:51 +09:00
parent 3143acce93
commit 502e502110

View File

@ -8,10 +8,12 @@ export default function RoofSelect() {
const [roofMaterials, setRoofMaterials] = useState([]) const [roofMaterials, setRoofMaterials] = useState([])
const [manufacturers, setManufacturers] = useState([]) const [manufacturers, setManufacturers] = useState([])
const [trestles, setTrestles] = useState([]) const [trestles, setTrestles] = useState([])
const [modules, setModules] = useState([])
const [originTrestles, setOriginTrestles] = useState([]) const [originTrestles, setOriginTrestles] = useState([])
const [roofMaterialId, setRoofMaterialId] = useState(null) const [roofMaterialId, setRoofMaterialId] = useState(null)
const [manufacturerId, setManufacturerId] = useState(null) const [manufacturerId, setManufacturerId] = useState(null)
const [trestleId, setTrestleId] = useState(null)
const { get } = useAxios() const { get } = useAxios()
@ -55,44 +57,73 @@ export default function RoofSelect() {
setTrestles(trestles) setTrestles(trestles)
}, [manufacturerId]) }, [manufacturerId])
useEffect(() => {
if (!trestleId) {
return
}
console.log(roofMaterialId, trestleId)
get({ url: `/api/module/v1.0/modules/${roofMaterialId}/${trestleId}` }).then((res) => {
if (res.length === 0) {
return
}
setModules(res)
})
}, [trestleId])
const handleRoofMaterialOnChange = (e) => { const handleRoofMaterialOnChange = (e) => {
const id = e.target.value const roofMaterialId = e.target.value
setRoofMaterialId(id) setRoofMaterialId(roofMaterialId)
setManufacturers([]) setManufacturers([])
setManufacturerId(null) setManufacturerId(null)
setTrestleId(null)
setTrestles([]) setTrestles([])
setModules([])
} }
const handleManufacturersOnChange = (e) => { const handleManufacturersOnChange = (e) => {
const id = Number(e.target.value) const manufacturerId = Number(e.target.value)
setTrestles([]) setTrestles([])
setManufacturerId(id) setManufacturerId(manufacturerId)
setTrestleId(null)
setModules([])
} }
const handleTrestlesOnChange = (e) => {
const trestleId = Number(e.target.value)
setTrestleId(trestleId)
setModules([])
}
return ( return (
<> <div className="flex w-full flex-wrap md:flex-nowrap gap-4">
<div className="flex w-full flex-wrap md:flex-nowrap gap-4"> {roofMaterials.length > 0 && (
{roofMaterials.length > 0 && ( <Select label="지붕재" className="max-w-xs" onChange={handleRoofMaterialOnChange}>
<Select label="지붕재" className="max-w-xs" onChange={handleRoofMaterialOnChange}> {roofMaterials.map((roofMaterial) => (
{roofMaterials.map((roofMaterial) => ( <SelectItem key={roofMaterial.id}>{roofMaterial.name}</SelectItem>
<SelectItem key={roofMaterial.id}>{roofMaterial.name}</SelectItem> ))}
))} </Select>
</Select> )}
)} {manufacturers.length > 0 && (
{manufacturers.length > 0 && ( <Select label="제조 회사" className="max-w-xs" onChange={handleManufacturersOnChange}>
<Select label="제조 회사" className="max-w-xs" onChange={handleManufacturersOnChange}> {manufacturers.map((manufacturer) => (
{manufacturers.map((manufacturer) => ( <SelectItem key={manufacturer.id}>{manufacturer.name}</SelectItem>
<SelectItem key={manufacturer.id}>{manufacturer.name}</SelectItem> ))}
))} </Select>
</Select> )}
)} {trestles.length > 0 && (
{trestles.length > 0 && ( <Select label="가대" className="max-w-xs" onChange={handleTrestlesOnChange}>
<Select label="가대" className="max-w-xs"> {trestles.map((trestle) => (
{trestles.map((trestle) => ( <SelectItem key={trestle.id}>{trestle.name}</SelectItem>
<SelectItem key={trestle.id}>{trestle.name}</SelectItem> ))}
))} </Select>
</Select> )}
)} {modules.length > 0 && (
</div> <Select label="설치가능 모듈" className="max-w-xs">
</> {modules.map((module) => (
<SelectItem key={module.id}>{module.name}</SelectItem>
))}
</Select>
)}
</div>
) )
} }