Skip to content

Commit

Permalink
refactor: add loading
Browse files Browse the repository at this point in the history
  • Loading branch information
swgvenghy committed Aug 2, 2024
1 parent df1a5a6 commit 0c2da62
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
12 changes: 11 additions & 1 deletion src/store/chat-store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,22 @@ import { create } from 'zustand';

interface ChatState {
messages: { content: string; role: 'user' | 'system' }[];
loading: boolean;
addMessage: (message: { content: string; role: 'user' | 'system' }) => void;
setLoading: (loading: boolean) => void;
updateLastMessage: (content: string) => void;
}

const useChatStore = create<ChatState>((set) => ({
messages: [],
loading: false,
addMessage: (message) => set((state) => ({ messages: [...state.messages, message] })),
setLoading: (loading) => set({ loading }),
updateLastMessage: (content) =>
set((state) => {
const updatedMessages = [...state.messages];
updatedMessages[updatedMessages.length - 1].content = content;
return { messages: updatedMessages };
}),
}));

export default useChatStore;
11 changes: 7 additions & 4 deletions src/ui/components/molecule/user/chat-form/chat-form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,16 @@ const ChatForm = ({ type, category }: ChatFormProps) => {
e.preventDefault();
try {
useChatStore.getState().addMessage({ content, role: 'user' });
const response = await postQuestion(category, type, content);
console.log('전송 성공:', response);
useChatStore.getState().addMessage({ content: response.answer.content, role: 'system' });
useChatStore.getState().addMessage({ content: '답변을 생성중입니다...', role: 'system' });
useChatStore.getState().setLoading(true);
setContent('');
const response = await postQuestion(category, type, content);
useChatStore.getState().updateLastMessage(response.answer.content);
useChatStore.getState().setLoading(false);
setDisabled(true);
} catch (error) {
console.error('전송 실패:', error);
useChatStore.getState().setLoading(false);
useChatStore.getState().updateLastMessage('답변 생성에 실패했습니다. 새로고침해주세요');
}
};

Expand Down

0 comments on commit 0c2da62

Please sign in to comment.