diff --git a/src/components/seminar/toggle/SeminarToggle.tsx b/src/components/seminar/toggle/SeminarToggle.tsx new file mode 100644 index 0000000..8c83584 --- /dev/null +++ b/src/components/seminar/toggle/SeminarToggle.tsx @@ -0,0 +1,48 @@ +'use client'; + +import React, { useState } from 'react'; +import SeminarToggleMenu from './SeminarToggleMenu'; +import ChervonDownIcon from '@/svg/icons/common/chervon_down.svg'; +import { OPEN_SEMINAR_DATA } from '@/constants/seminar/openSeminarData'; + +/** + * @description + * 세미나 페이지 오픈 세미나 토클 버튼 + * @component SeminarToggle + * @returns {JSX.Element} SeminarToggle + * @since 2024.04.18 + */ +/** + * Renders the header component for the recruitment section. + * @returns The rendered header component. + */ +const SeminarToggle = () => { + const [isMenuVisible, setIsMenuVisible] = useState(false); // 오픈 세미나 목록 토클 버튼 + const toggleMenuVisibility = () => { + setIsMenuVisible(!isMenuVisible); + }; + + return ( +
+
+ +
+
+ {isMenuVisible && ( +
+ {OPEN_SEMINAR_DATA.map((openSeminar) => ( + + ))} +
+ )} +
+
+ ); +}; +export default SeminarToggle; diff --git a/src/components/seminar/toggle/SeminarToggleMenu.tsx b/src/components/seminar/toggle/SeminarToggleMenu.tsx new file mode 100644 index 0000000..39b0d44 --- /dev/null +++ b/src/components/seminar/toggle/SeminarToggleMenu.tsx @@ -0,0 +1,32 @@ +/** + * @description + * 세미나 페이지 오픈 세미나 토클 메뉴 + * @component SeminarToggleMenu + * @returns {JSX.Element} SeminarToggleMenu + * @since 2024.04.18 + */ + +import { OpenSeminar } from "@/interfaces/seminar/openSeminar"; + +/** + * Renders the header component for the recruitment section. + * @returns The rendered header component. + */ +const SeminarToggleMenu = ({data}: {data:OpenSeminar}) => { + return ( +
+
+
+

{data.opening_date}{" "}{data.type}

+

{data.seminar_date}

+
+

+ {data.status === false ? "종료" : "진행중"} +

+
+

+

+ ); +}; +export default SeminarToggleMenu; diff --git a/src/constants/seminar/openSeminarData.ts b/src/constants/seminar/openSeminarData.ts new file mode 100644 index 0000000..b3c10a3 --- /dev/null +++ b/src/constants/seminar/openSeminarData.ts @@ -0,0 +1,26 @@ +import SeoHuiChan from '@/images/seminar/presenter/seohuichan.png'; +import { OpenSeminar } from '@/interfaces/seminar/openSeminar'; + +export const OPEN_SEMINAR_DATA: OpenSeminar[] = [ + { + id: 1, + flag: 1, + type: 'Open Seminar', + topic: 'DevTalk', + opening_date: '2023/5', + seminar_date: '2023.09.22 (FRI) 19:30', + location: '동국대학교 원흥관 PBL', + title: ` + 휴, 하마터면 + 의사 될 뻔... + `, + description: ` + 의사를 목표로 공부를 하다가, + 프로그래밍을 시작한 과정들을 토대로 개발 공부를 하며 깨달은 것들 + `, + presenter: '서희찬', + role: 'Lead', + profile_image_url: SeoHuiChan.src, + status: false + }, +] \ No newline at end of file diff --git a/src/interfaces/seminar/openSeminar.ts b/src/interfaces/seminar/openSeminar.ts new file mode 100644 index 0000000..e619caa --- /dev/null +++ b/src/interfaces/seminar/openSeminar.ts @@ -0,0 +1,16 @@ +export interface OpenSeminar { + id: number; + flag: number; + type: string; + topic: string; + opening_date: string; + seminar_date: string; + location: string; + title: string; + description: string; + presenter: string; + role: string; + profile_image_url: string; + status: boolean; +} + \ No newline at end of file