1- import React , { useEffect , useState } from 'react'
1+ import React , { useState , useEffect } from 'react'
22import { Header } from '../components/UI/Header'
33import { Cover } from '../components/UI/cover'
44import MobileLayout from '../components/layout/MobileLayout'
@@ -11,9 +11,11 @@ import pythonPlus from '../assets/images/pythonPlus.svg'
1111import pythonRunAll from '../assets/images/pythonRunAll.svg'
1212import pythonMain from '../assets/images/pythonMain.svg'
1313import pythonDown from '../assets/images/pythonDown.svg'
14- import pythonStart from '../assets/images/pythonStart.svg'
1514import pythonFocus from '../assets/images/pythonFocus.svg'
1615import ActivityStatus from '../components/UI/ActivityStatus'
16+ import dasomInstagram from '../assets/images/instagram.svg'
17+ import dasomGithub from '../assets/images/github.svg'
18+ import Recruit from './Recruit'
1719
1820const TypingEffect = ( { text } : { text : string } ) => {
1921 const [ displayText , setDisplayText ] = useState ( '' )
@@ -51,6 +53,13 @@ const TypingEffect = ({ text }: { text: string }) => {
5153}
5254
5355const Main : React . FC = ( ) => {
56+ //코드블럭 클릭이벤트용
57+ const [ selectedCode , setSelectedCode ] = useState < number | null > ( null )
58+
59+ const handleCodeClick = ( index : number ) => {
60+ setSelectedCode ( selectedCode === index ? null : index )
61+ }
62+
5463 return (
5564 < MobileLayout >
5665 < Header />
@@ -103,31 +112,34 @@ const Main: React.FC = () => {
103112 < div className = 'text-2xl font-semibold text-white flex items-center' >
104113 < img src = { pythonDown } className = 'h-4 w-4 mr-2.5' alt = 'Python Scroll Down Icon' />
105114 DASOM 34기 부원 모집
106- </ div >
107- < div className = 'text-xl font-semibold text-stone-300 flex items-center' >
108- < img src = { pythonDown } className = 'h-4 w-4 mr-2.5' alt = 'Python Scroll Down Icon' />
109- WHY NOT?!
110- </ div >
111- < div className = 'flex items-stretch w-full' >
112- < img src = { pythonFocus } className = 'h-40 flex-none object-contain' alt = 'Python Focus Icon' />
113- < div className = 'w-full flex-1' >
114- < pre className = 'relative flex-1 flex flex-col h-full text-xs bg-neutral-800 border border-neutral-700 p-3 text-zinc-300 rounded overflow-auto min-h-[10rem]' >
115- < code >
116- < span className = 'text-[#C586C0]' > import</ span > pandas < span className = 'text-[#C586C0]' > as</ span > pd{ '\n' }
117- < span className = 'text-[#C586C0]' > import</ span > numpy < span className = 'text-[#C586C0]' > as</ span > np{ '\n' }
118- < span className = 'text-[#C586C0]' > import</ span > seaborn < span className = 'text-[#C586C0]' > as</ span > sns{ '\n' }
119- < span className = 'text-[#C586C0]' > import</ span > matplotlib.pyplot < span className = 'text-[#C586C0]' > as</ span > plt{ '\n\n' }
120- sns.set(< span className = 'text-[#9CDCF2]' > style</ span > =< span className = 'text-[#D69D85]' > 'darkgrid' </ span > )
121- </ code >
122- < div className = 'absolute bottom-1 left-2 text-xs font-medium text-emerald-300' > ✔ 0.3s</ div >
115+ </ div >
116+ < div className = 'text-xl font-semibold text-stone-300 flex items-center' >
117+ < img src = { pythonDown } className = 'h-4 w-4 mr-2.5' alt = 'Python Scroll Down Icon' />
118+ WHY NOT?!
119+ </ div >
120+ < div className = 'flex items-stretch w-full' >
121+ < img src = { pythonFocus } className = 'h-40 flex-none object-contain' alt = 'Python Focus Icon' />
122+ < div className = 'w-full flex-1' >
123+ < pre className = 'relative flex-1 flex flex-col h-full text-xs bg-neutral-800 border border-neutral-700 p-3 text-zinc-300 rounded overflow-auto min-h-[10rem]' >
124+ < code >
125+ < span className = 'text-[#C586C0]' > import</ span > pandas < span className = 'text-[#C586C0]' > as</ span > pd{ '\n' }
126+ < span className = 'text-[#C586C0]' > import</ span > numpy < span className = 'text-[#C586C0]' > as</ span > np{ '\n' }
127+ < span className = 'text-[#C586C0]' > import</ span > seaborn < span className = 'text-[#C586C0]' > as</ span > sns{ '\n' }
128+ < span className = 'text-[#C586C0]' > import</ span > matplotlib.pyplot < span className = 'text-[#C586C0]' > as</ span > plt{ '\n\n' }
129+ sns.set(< span className = 'text-[#9CDCF2]' > style</ span > =< span className = 'text-[#D69D85]' > 'darkgrid' </ span > )
130+ </ code >
131+ < div className = 'absolute bottom-1 left-2 text-xs font-medium text-emerald-300' > ✔ 0.3s</ div >
123132 < div className = 'absolute bottom-1 right-2 text-xs font-medium text-gray-500' > Python</ div >
124133 </ pre >
125134 </ div >
126135 </ div >
127136 </ div >
128137 < div >
129- < pre className = 'text-xs bg-neutral-800 border border-neutral-700 p-3 text-zinc-300 rounded' >
130- < code > print(< span className = 'text-[#D69D85]' > < TypingEffect text = '"Join DASOM"' /> </ span > )</ code >
138+ < pre
139+ className = { `text-xs p-3 rounded ${ selectedCode === 0 ? 'border-[#007ACC]' : 'border-neutral-700' } border-2` }
140+ onClick = { ( ) => handleCodeClick ( 0 ) }
141+ >
142+ < code className = 'text-zinc-300' > print(< span className = 'text-[#D69D85]' > < TypingEffect text = '"Join DASOM"' /> </ span > )</ code >
131143 </ pre >
132144 < div className = 'text-xs font-medium text-zinc-500' > Ctrl + Enter to run</ div >
133145 </ div >
@@ -143,6 +155,21 @@ const Main: React.FC = () => {
143155 < div className = 'flex items-center justify-center w-full text-[12px] font-pretendardRegular text-white text-center' >
144156 © 2025 DASOM. ALL RIGHTS RESERVED.
145157 </ div >
158+ { /* 바텀마진용 */ }
159+ < div className = 'flex w-full bg-mainBlack min-h-[20px] mb-50' />
160+
161+ { /* 인스타&깃헙 */ }
162+ < div className = 'flex w-full justify-center items-center gap-4 mb-20' >
163+ < a href = 'https://www.instagram.com/dasom___official/' target = '_blank' rel = "noopener noreferrer" >
164+ < img src = { dasomInstagram } className = 'w-6 h-6' />
165+ </ a >
166+ < a href = 'https://github.com/DASOM-GitHub' target = '_blank' rel = "noopener noreferrer" >
167+ < img src = { dasomGithub } className = 'w-6 h-6' />
168+ </ a >
169+ </ div >
170+
171+ { /* 바텀마진용용 */ }
172+ < div className = 'flex w-full bg-mainBlack min-h-[2px]' />
146173 </ div >
147174 </ MobileLayout >
148175 )
0 commit comments