import type { ChatMessage, UserButtonConfig } from '@/features/chat/types' export const GO_TO_LIST_TEXT = '상품 목록으로 가기' // 마지막 봇 메시지의 next_input_mode 로 하단 입력 UI 구성을 결정한다. export function deriveUserButtonConfig( messages: ChatMessage[], isLoading: boolean, priceErrorMessage: string, ): UserButtonConfig { if (isLoading) return { type: 'loading' } if (!messages || messages.length === 0) return { type: '', text: '' } const last = messages[messages.length - 1] const mode = last.next_input_mode const options = last.next_input_type if (last.chat_end) return { type: 'one-black', text: GO_TO_LIST_TEXT } if (mode === 'confirm') return { type: 'one-black', text: options?.[0] || '' } if (mode === 'yes_no') return { type: 'black-white', textList: options || [] } if (mode === 'percent') return { type: 'percent' } if (mode === 'price') return { type: 'price', priceErrorMessage: priceErrorMessage || undefined } if (mode === 'delivery_type') return { type: 'three-black', textList: options || [] } return { type: '', text: '' } }