o2o-negosium-original/frontend/src/features/chat/stores/useChatInitStore.ts
민헌 482c8ed97c feat(chat): 반응형 레이아웃(~1024px) + 리드타임 "일" 표시 + 완료세션 인디케이터 숨김
- 반응형: 최소 폭 1350→1024px, max-[1350px]/max-[1180px] 2단계 축소
  - 사이드바 350→310→280, 우측 메뉴 360→320→280, 채팅 거터 140/126→80/72→48/40 (헤더 패딩 동기)
  - 가격·할인율 입력 min-w 480→420→320, 가운데 버튼 패딩·최소폭 축소, 상품목록 버튼 1180px 미만 아이콘만
  - 상품 이미지 220→200, 사이드바 정보 행 값 영역 고정 150px → flex-1
- 리드타임: formatLeadTime 헬퍼 신설 — 좌측 상품정보·협상 결과 요약 카드에 "일" 접미 표시
- 인디케이터: init 의 session_status 를 스토어에 적재, 협상중(IN_PROGRESS) 세션에서만 표시
- 사이드바 정보 영역 의미 없는 가로 스크롤 제거 (shrink 금지 컬럼 + overflow-x 자동 계산이 원인)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:37:18 +09:00

34 lines
768 B
TypeScript

import { create } from 'zustand'
import type { ChatInitData } from '@/features/chat/types'
interface ChatInitStore extends ChatInitData {
setInitData: (data: Partial<ChatInitData>) => void
reset: () => void
}
const initialState: ChatInitData = {
session_id: '',
session_status: 0,
item_id: '',
quotation_id: '',
item_name: '',
item_code: '',
item_image: '',
item_price: 0,
item_model_name: '',
item_maker_name: '',
item_vat_yn: '',
item_delivery_fee_yn: '',
item_min_order_quantity: '',
item_lead_time: '',
item_spec: '',
quotation_memo: '',
quotation_end_time: '',
}
export const useChatInitStore = create<ChatInitStore>((set) => ({
...initialState,
setInitData: (data) => set(data),
reset: () => set(initialState),
}))