Skip to content

Commit dbe5326

Browse files
committed
refact: 이벤트 상세 정보 수정 간 관련 링크 예외처리 구현
1 parent 80ad3ee commit dbe5326

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

src/pages/dashboard/ui/EventDetailPage.tsx

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@ const EventDetailPage = () => {
2020
const [bannerImageUrl, setBannerImageUrl] = useState('');
2121
const [description, setDescription] = useState('');
2222
const [referenceLinks, setReferenceLinks] = useState<Link[]>([]);
23+
const [isLinkValid, setIsLinkValid] = useState(true);
2324

2425
const queryClient = useQueryClient();
25-
26+
2627
useEffect(() => {
2728
console.log(data?.result.bannerImageUrl)
2829
if (data?.result) {
@@ -68,16 +69,29 @@ const EventDetailPage = () => {
6869
});
6970
};
7071

72+
const handleLinkValidation = (valid: boolean) => {
73+
setIsLinkValid(valid);
74+
};
75+
7176
return (
7277
<DashboardLayout centerContent="DASHBOARD">
7378
<div className="flex flex-col gap-5 mt-8 px-7">
7479
<h1 className="text-center text-xl font-bold mb-5">이벤트 상세 정보</h1>
7580
<FileUpload value={bannerImageUrl} onChange={setBannerImageUrl} useDefaultImage={false} />
76-
<TextEditor value={description} onChange={setDescription}/>
77-
<LinkInput value={referenceLinks} onChange={setReferenceLinks} />
81+
<TextEditor value={description} onChange={setDescription} />
82+
<LinkInput
83+
value={referenceLinks}
84+
onChange={setReferenceLinks}
85+
onValidationChange={handleLinkValidation}
86+
/>
7887
</div>
7988
<div className="w-full p-7">
80-
<Button label="저장하기" onClick={handleSave} className="w-full h-12 rounded-full" />
89+
<Button
90+
label="저장하기"
91+
onClick={handleSave}
92+
className="w-full h-12 rounded-full"
93+
disabled={!isLinkValid}
94+
/>
8195
</div>
8296
</DashboardLayout>
8397
);

src/pages/event/ui/create-event/EventInfoPage.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const EventInfoPage = ({ onValidationChange }: EventInfoPageProps) => {
1212
const { eventState, setEventState } = useFunnelState();
1313
const [isFileValid, setIsFileValid] = useState(false);
1414
const [isTextValid, setIsTextValid] = useState(false);
15-
const [isLinkValid, setIsLinkValid] = useState(false);
15+
const [isLinkValid, setIsLinkValid] = useState(true);
1616

1717
const handleFileValidation = (valid: boolean) => {
1818
setIsFileValid(valid);
@@ -46,7 +46,12 @@ const EventInfoPage = ({ onValidationChange }: EventInfoPageProps) => {
4646
setEventState={setEventState}
4747
onValidationChange={handleTextValidation}
4848
/>
49-
<LinkInput eventState={eventState} setEventState={setEventState} onValidationChange={handleLinkValidation} />
49+
<LinkInput
50+
eventState={eventState}
51+
setEventState={setEventState}
52+
onValidationChange={handleLinkValidation}
53+
value={eventState?.referenceLinks}
54+
/>
5055
</div>
5156
);
5257
};

0 commit comments

Comments
 (0)