-
- 나는 어떤 미식가인가요?
+
+ 어떤 말투로 작성할까요?
- 선택지에 따라 리뷰 어조가 달라져요
+ 선택지에 따라 리뷰 말투가 달라져요
diff --git a/src/components/SelectTag/SelectTag.module.scss b/src/components/SelectTag/SelectTag.module.scss
index 0342d81..16a0eda 100644
--- a/src/components/SelectTag/SelectTag.module.scss
+++ b/src/components/SelectTag/SelectTag.module.scss
@@ -36,7 +36,7 @@
display: flex;
flex-wrap: wrap;
gap: 0.625rem;
- margin-top: 2.5rem;
+ margin-top: 1.5rem;
}
}
diff --git a/src/components/SelectTag/SelectTag.tsx b/src/components/SelectTag/SelectTag.tsx
index 606cb3f..3733a60 100644
--- a/src/components/SelectTag/SelectTag.tsx
+++ b/src/components/SelectTag/SelectTag.tsx
@@ -87,6 +87,7 @@ const SelectTag = () => {
diff --git a/src/components/SelectTag/TagSheet/TagSheet.module.scss b/src/components/SelectTag/TagSheet/TagSheet.module.scss
index 5bad5c9..1e67aeb 100644
--- a/src/components/SelectTag/TagSheet/TagSheet.module.scss
+++ b/src/components/SelectTag/TagSheet/TagSheet.module.scss
@@ -51,6 +51,7 @@
.LengthText {
display: flex;
margin-top: 0.625rem;
+ font-family: "Pretendard", sans-serif;
}
@keyframes slide-in-from-bottom {
diff --git a/src/components/SelectTag/TagSheet/TagSheet.tsx b/src/components/SelectTag/TagSheet/TagSheet.tsx
index 86d4050..9d48911 100644
--- a/src/components/SelectTag/TagSheet/TagSheet.tsx
+++ b/src/components/SelectTag/TagSheet/TagSheet.tsx
@@ -15,16 +15,19 @@ import { useFocus } from "@/hooks/common/useFocus";
interface TagSheetProps {
isOpen: boolean;
+ tagList: string[];
handleClose: () => void;
handleTagAdd: (newTag: string) => void;
}
-const TagSheet = ({ isOpen, handleClose, handleTagAdd }: TagSheetProps) => {
+const TagSheet = ({ isOpen, tagList, handleClose, handleTagAdd }: TagSheetProps) => {
const { isFocus, onFocus, onBlur } = useFocus({ defaultFocus: true });
const [newTag, setNewTag] = useState("");
- const isInputError = newTag.length > 20;
+ const modalRef = useRef
(null);
+
+ const isInputError = newTag.length > 20 || tagList.includes(newTag);
const isInputEmpty = newTag.length === 0;
useEffect(() => {
@@ -37,7 +40,12 @@ const TagSheet = ({ isOpen, handleClose, handleTagAdd }: TagSheetProps) => {
setNewTag(e.target.value);
};
- const modalRef = useRef(null);
+ const handleAddTag = () => {
+ if (!isInputError) {
+ handleTagAdd(newTag);
+ setNewTag("");
+ }
+ };
useOnClickOutside(modalRef, handleClose);
@@ -78,7 +86,7 @@ const TagSheet = ({ isOpen, handleClose, handleTagAdd }: TagSheetProps) => {
{isInputError ? (
- *20글자 이내로 입력할 수 있어요.
+ *{newTag.length > 20 ? "20글자 이내로 입력할 수 있어요." : "이미 있는 키워드에요."}
) : (
<>
@@ -95,11 +103,7 @@ const TagSheet = ({ isOpen, handleClose, handleTagAdd }: TagSheetProps) => {
)}
-