Merge branch 'dev' into feature/qcast3-front-002

This commit is contained in:
yoosangwook 2024-08-14 15:57:29 +09:00
commit e5252f3fbd
4 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,47 @@
'use client'
import { Select, SelectItem } from '@nextui-org/react'
import { useEffect, useState } from 'react'
import { useAxios } from '@/hooks/useAxios'
export default function RoofSelect() {
const [roofMaterials, setRoofMaterials] = useState([])
const [trestles, setTrestles] = useState([])
const { get } = useAxios()
const handleRoofMaterialOnChange = (e) => {
const id = e.target.value
setTrestles([])
get({ url: `/api/trestle/v1.0/trestles/${id}` }).then((res) => {
setTrestles(res)
})
}
useEffect(() => {
get({ url: '/api/roof-material/v1.0/roof-materials' }).then((res) => {
setRoofMaterials(res)
})
}, [])
return (
<>
<div className="flex w-full flex-wrap md:flex-nowrap gap-4">
{roofMaterials.length > 0 && (
<Select label="지붕재" className="max-w-xs" onChange={handleRoofMaterialOnChange}>
{roofMaterials.map((roofMaterial) => (
<SelectItem key={roofMaterial.id}>{roofMaterial.name}</SelectItem>
))}
</Select>
)}
{trestles.length > 0 && (
<Select label="가대" className="max-w-xs">
{trestles.map((trestle) => (
<SelectItem key={trestle.id}>{trestle.name}</SelectItem>
))}
</Select>
)}
</div>
</>
)
}

View File

@ -4,6 +4,7 @@ import Roof2 from '@/components/Roof2'
import { textState } from '@/store/canvasAtom' import { textState } from '@/store/canvasAtom'
import { useEffect } from 'react' import { useEffect } from 'react'
import { useRecoilState } from 'recoil' import { useRecoilState } from 'recoil'
import RoofSelect from '@/app/[locale]/roof2/RoofSelect'
export default function Roof2Page() { export default function Roof2Page() {
const [text, setText] = useRecoilState(textState) const [text, setText] = useRecoilState(textState)
@ -14,6 +15,11 @@ export default function Roof2Page() {
return ( return (
<> <>
<div>
<div className="m-2">
<RoofSelect />
</div>
</div>
<div className="flex flex-col justify-center my-8 pt-20"> <div className="flex flex-col justify-center my-8 pt-20">
<Roof2 /> <Roof2 />
</div> </div>

View File

@ -18,6 +18,7 @@ import { QLine } from '@/components/fabric/QLine'
import { getCanvasState, insertCanvasState } from '@/lib/canvas' import { getCanvasState, insertCanvasState } from '@/lib/canvas'
import { calculateIntersection } from '@/util/canvas-util' import { calculateIntersection } from '@/util/canvas-util'
import { QPolygon } from '@/components/fabric/QPolygon' import { QPolygon } from '@/components/fabric/QPolygon'
import { useAxios } from '@/hooks/useAxios'
import ThumbnailList from './ui/ThumbnailLIst' import ThumbnailList from './ui/ThumbnailLIst'
export default function Roof2() { export default function Roof2() {

View File

@ -1,5 +1,6 @@
import { Select, SelectItem } from '@nextui-org/react' import { Select, SelectItem } from '@nextui-org/react'
import styles from './QSelect.module.css' import styles from './QSelect.module.css'
import { useEffect } from 'react'
const animals = [ const animals = [
{ key: 'cat', label: 'Cat' }, { key: 'cat', label: 'Cat' },
@ -18,6 +19,7 @@ const animals = [
] ]
export default function QSelect() { export default function QSelect() {
useEffect(() => {}, [])
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">