# prisma 연결 ``` npx prisma migrate dev npx prisma generate npx prisma db pull npx prisma db push ``` generate 를 진행해야 로컬에 연결 파일들이 생성이되고 pull push 를 사용할 수 있게 됨. # react query cache data 가져오기 ``` const cache = useQueryClient() const data = cache.getQueryData(['user', 'info']) as UserState ``` # 팝업 컨트롤러 제어 ### open ``` const popupController = usePopupController() onClick={() => popupController.setMemberInformationPopup(true)} onClick={() => popupController.setZipCodePopup(true)} ``` ### close ``` const popupController = usePopupController() onClick={() => popupController.setMemberInformationPopup(false)} onClick={() => popupController.setZipCodePopup(false)} ``` # useEffect 정리 - client url pathname 변경시 -> @/components/ui/Header.tsx # User Role 구분 session에 있는 role 키로 구분한다 - T01 / T01 -> Super user\ session.role === 'T01' - A03 / 1234 -> T01을 제외한 1차점\ session.role === 'Admin' - 2A03 / 1234 -> 2차점\ session.role === 'Admin_Sub' - constA03_01 / 1234 -> 시공사\ session.role === 'Builder' - teshg44 / 1234 -> 시공사\ session.role === 'Builder' - partners -> Q.Partners 계정\ session.role === 'Partner' - 이외의 경우 -> 굳이 체크할 필요 없어보임\ session.role === 'User' # 지붕재 적합성 TODO ``` const suitableCheckIcon = (value: string): string => { const iconMap: Record = { '×': '/assets/images/sub/compliance_x_icon.svg', 'ー': '/assets/images/sub/compliance_quest_icon.svg', default: '/assets/images/sub/compliance_check_icon.svg', } return iconMap[value] || iconMap.default } const suitableCheckMemo = (value: string): string => { if (value === '○') return '設置可' if (value === '×') return '設置不可' if (value === 'ー') return 'お問い合わせください' return `${value}で設置可` } ``` - src/hooks/useSuitable.ts > suitableCheckIcon(), suitableCheckMemo() - 추후 지붕재 적합성 데이터 CUD 구현 시 ×, ー 데이터 관리 필요