'use client' import { useState } from 'react' import { SurveyDetailRequest } from '@/types/Survey' type RadioEtcKeys = 'house_structure' | 'rafter_material' | 'waterproof_material' | 'insulation_presence' const translateJapanese: Record = { house_structure: '住宅構造', rafter_material: '垂木材質', waterproof_material: '防水材の種類', insulation_presence: '断熱材の有無', } const radioEtcData: Record = { house_structure: [ { id: 1, label: '木製', }, ], rafter_material: [ { id: 1, label: '木製', }, { id: 2, label: '強制', }, ], waterproof_material: [ { id: 1, label: 'アスファルト屋根940(22kg以上)', }, ], insulation_presence: [ { id: 1, label: 'なし', }, { id: 2, label: 'あり', }, ], } export default function RadioEtc({ column, setDetailInfoData, detailInfoData, }: { column: RadioEtcKeys setDetailInfoData: (data: any) => void detailInfoData: SurveyDetailRequest }) { const [isEtcSelected, setIsEtcSelected] = useState(false) const [etcValue, setEtcValue] = useState('') const handleRadioChange = (e: React.ChangeEvent) => { const value = e.target.value if (column === 'insulation_presence') { setIsEtcSelected(value === '2') setDetailInfoData({ ...detailInfoData, [column]: Number(value), }) } else if (value === 'etc') { setIsEtcSelected(true) setDetailInfoData({ ...detailInfoData, [column]: null, }) } else { setIsEtcSelected(false) setEtcValue('') setDetailInfoData({ ...detailInfoData, [column]: Number(value), [`${column}_etc`]: null, }) } } const handleEtcInputChange = (e: React.ChangeEvent) => { const value = e.target.value setEtcValue(value) setDetailInfoData({ ...detailInfoData, [`${column}_etc`]: value, }) } return (
{translateJapanese[column]}
{radioEtcData[column].map((item) => (
))} {column !== 'insulation_presence' && (
)}
) }