+
{keywords.map(keyword => (
onSelect(keyword)}
+ variant="long"
+ className="w-35"
/>
))}
diff --git a/src/features/instructor/write/ui/ConceptResult.tsx b/src/features/instructor/write/ui/ConceptResult.tsx
new file mode 100644
index 0000000..19e27a8
--- /dev/null
+++ b/src/features/instructor/write/ui/ConceptResult.tsx
@@ -0,0 +1,26 @@
+import Chip from "@/shared/ui/Chip";
+
+interface ConceptResultProps {
+ selectedKeywords: string[];
+ onRemove: (keyword: string) => void;
+}
+
+const ConceptResult = ({ selectedKeywords, onRemove }: ConceptResultProps) => {
+ return (
+
+
선택한 컨셉
+
+ {selectedKeywords.map(keyword => (
+ onRemove(keyword)}
+ />
+ ))}
+
+
+ );
+};
+
+export default ConceptResult;
diff --git a/src/features/instructor/write/ui/PaymentModal/Step1.tsx b/src/features/instructor/write/ui/PaymentModal/Step1.tsx
index 4230f20..6c2591c 100644
--- a/src/features/instructor/write/ui/PaymentModal/Step1.tsx
+++ b/src/features/instructor/write/ui/PaymentModal/Step1.tsx
@@ -1,4 +1,4 @@
-import { useState } from "react";
+import { useEffect, useState } from "react";
import {
PLAN_LABEL_MAP,
@@ -10,6 +10,7 @@ import { useWriteFormStore } from "@/features/instructor/write/model/writeFormSt
import { ArrowDownIcon, CheckboxFillIcon, CheckboxGrayIcon } from "@/shared/assets/icons";
import Button from "@/shared/ui/Button";
import Chip from "@/shared/ui/Chip";
+import Toast from "@/shared/ui/Toast";
/* ─────────────────────────────────────────────
InfoRow
@@ -123,6 +124,20 @@ const Step1 = ({ onNext, errorMessage }: { onNext: () => void; errorMessage?: st
setIsTermsAgreed,
} = useWriteFormStore();
+ const [prevErrorMessage, setPrevErrorMessage] = useState(errorMessage);
+ const [autoHide, setAutoHide] = useState(false);
+ if (errorMessage !== prevErrorMessage) {
+ setPrevErrorMessage(errorMessage);
+ setAutoHide(false);
+ }
+ const showError = !!errorMessage && !autoHide;
+
+ useEffect(() => {
+ if (!showError) return;
+ const timeout = setTimeout(() => setAutoHide(true), 2500);
+ return () => clearTimeout(timeout);
+ }, [showError]);
+
return (
<>
@@ -166,25 +181,27 @@ const Step1 = ({ onNext, errorMessage }: { onNext: () => void; errorMessage?: st