Skip to content

Commit

Permalink
(#79) 🎨 design: 챗봇 ν΄λ‘œλ°” λ‹΅λ³€ λ Œλ”λ§
Browse files Browse the repository at this point in the history
  • Loading branch information
inaemon committed Nov 28, 2024
1 parent 568f1d7 commit 17a3c53
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 298 deletions.
287 changes: 0 additions & 287 deletions src/pages/Chatbot/Chatbot copy κΈ°μ‘΄ λ°±μ—….tsx

This file was deleted.

31 changes: 22 additions & 9 deletions src/pages/Chatbot/Chatbot.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import ChatbotInputField from "./components/input/ChatbotInputField";
import DateBanner from "./components/DateBanner";

import { questionCategories, GuideResponseData } from "@/src/constants/ChatbotData";
import { GuideGetResponseType } from "@/src/api/ChatbotApiType";
import { GuideGetResponseType, ClovaPostResponseType } from "@/src/api/ChatbotApiType";

import RookieChat from "./components/chat/RookieChat";
import UserChat from "./components/chat/UserChat";
Expand Down Expand Up @@ -189,12 +189,25 @@ const Chatbot = () => {
}


// ν΄λ‘œλ°” 챗봇 λ‹΅λ³€ κ΄€λ ¨
const [responseClovaData, setResponseClovaData] = useState<string>(); // μ„ΈλΆ€ μΉ΄ν…Œκ³ λ¦¬ index와 λ§€ν•‘ν•˜μ—¬ API 응닡 μ €μž₯
// Clova API 응닡을 category index에 λ§€ν•‘ν•˜μ—¬ μ €μž₯
// μ±„νŒ…μ°½μ— λ Œλ”λ§ν•˜κ²Œ μœ„ν•œ μš©λ„
const handleClovaResponseUpdate = (answer: string) => {
setResponseClovaData(answer);
// μΏ¨λ‘œλ°” λ‹΅λ³€ λžœλ”λ§
const renderClovaAnswerData = (question: string, answer: ClovaPostResponseType) => {
const answerList = [
{ type: "preformattedTextWithTail", content: answer },
];

// λ Œλ”λ§ν•  μ±— μ»΄ν¬λ„ŒνŠΈ μΆ”κ°€
addChatComponent(
<>
{/* μ‚¬μš©μž 질문 좜λ ₯ */}
<UserChat
messageList={[question]}
/>
{/* ν΄λ‘œλ°” λ‹΅λ³€ 좜λ ₯ */}
<RookieChat
contentList={answerList}
/>
</>
);
};


Expand Down Expand Up @@ -261,15 +274,15 @@ const Chatbot = () => {
)}

{/* μΉ΄ν…Œκ³ λ¦¬ μ„ νƒμ‹œ 배열에 μ €μž₯ 및 순차 좜λ ₯ */}
{selectedStadium && chatComponents.map((chatComponent, index) => (
{chatComponents.map((chatComponent, index) => (
<React.Fragment key={index}>{chatComponent}</React.Fragment>
))}
</div>
</div>


{/* 4. μ±„νŒ… μž…λ ₯μ°½ */}
<ChatbotInputField isStadiumSelected={isStadiumSelected} onSelect={renderCategoryChat} onClovaResponseUpdate={null}/>
<ChatbotInputField isStadiumSelected={isStadiumSelected} onSelect={renderCategoryChat} onClovaResponseUpdate={renderClovaAnswerData}/>
</div>
</div>
</div>
Expand Down
8 changes: 6 additions & 2 deletions src/pages/Chatbot/components/input/ChatbotInputField.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ const ChatbotInputField = ({isStadiumSelected, onSelect, onClovaResponseUpdate}:
////// ν΄λ‘œλ°” κ΄€λ ¨
// 전솑 λ²„νŠΌ ν΄λ¦­μ‹œ ν΄λ‘œλ°”μ—κ²Œ λ©”μ‹œμ§€ 전솑
const handleSendButton = useCallback(async () => {
const inputQuestion = inputClovaMessage;

// 빈 λ©”μ‹œμ§€μΈ 경우 μ²˜λ¦¬ν•˜μ§€ μ•ŠμŒ
if (inputClovaMessage.trim() === "") {
return;
Expand All @@ -75,13 +77,15 @@ const ChatbotInputField = ({isStadiumSelected, onSelect, onClovaResponseUpdate}:

// λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈμ— μ—…λ°μ΄νŠΈ
onClovaResponseUpdate(
response.answer ?? "",
inputQuestion?? "",
response.answer ?? "",
);

} catch (error) {
// λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈμ— μ—…λ°μ΄νŠΈ
onClovaResponseUpdate(
response.answer ?? "ν΄λ‘œλ°” 닡변을 λ°›λŠ” 것에 μ‹€νŒ¨ν•˜μ˜€μŠ΅λ‹ˆλ‹€ (μ—λŸ¬λͺ…: "+error+")",
inputQuestion ?? "",
"ν΄λ‘œλ°” 닡변을 λ°›λŠ” 것에 μ‹€νŒ¨ν•˜μ˜€μŠ΅λ‹ˆλ‹€ (μ—λŸ¬λͺ…: "+error+")",
);

} finally {
Expand Down

0 comments on commit 17a3c53

Please sign in to comment.