Skip to content

Commit d9f5f2d

Browse files
committed
fix: svg 제거
1 parent 7b6a21c commit d9f5f2d

12 files changed

Lines changed: 32 additions & 32 deletions

File tree

next.config.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,6 @@ const nextConfig: NextConfig = {
1818
{ protocol: 'https', hostname: 'ca.slack-edge.com' },
1919
],
2020
},
21-
22-
turbopack: {
23-
rules: {
24-
'**/*.svg': {
25-
loaders: ['@svgr/webpack'],
26-
as: '*.js',
27-
},
28-
},
29-
},
3021
};
3122

3223
export default nextConfig;

src/app/activity/components/ImageModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ export default function ImageModal({ images, alt, initialIndex, onClose }: Image
107107
className="absolute top-3 right-3 z-10 rounded-full bg-black/55 p-2"
108108
aria-label="닫기"
109109
>
110-
<CloseIcon />
110+
<Image src={CloseIcon} alt="" aria-hidden />
111111
</button>
112112
</div>
113113
</div>

src/app/layout.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,13 +128,13 @@ export default function RootLayout({ children }: Readonly<{ children: React.Reac
128128
</div>
129129
<div className="flex items-center justify-center gap-4">
130130
<Link href={URLS.SOCIAL.FACEBOOK}>
131-
<FacebookIcon />
131+
<Image src={FacebookIcon} alt="" aria-hidden />
132132
</Link>
133133
<Link href={URLS.SOCIAL.INSTAGRAM}>
134-
<InstagramIcon />
134+
<Image src={InstagramIcon} alt="" aria-hidden />
135135
</Link>
136136
<Link href={URLS.SOCIAL.YOUTUBE}>
137-
<YoutubeIcon />
137+
<Image src={YoutubeIcon} alt="" aria-hidden />
138138
</Link>
139139
</div>
140140
</footer>

src/app/recruit/components/BenefitCards.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import Image from 'next/image';
12
import clsx from 'clsx';
23
import { type Benefit, BENEFITS } from '@/static/recruit/benefit';
34

4-
function BenefitCard({ title, descriptions, Icon, offset }: Benefit) {
5+
function BenefitCard({ title, descriptions, iconSrc, offset }: Benefit) {
56
return (
67
<div
78
className={clsx(
@@ -14,7 +15,7 @@ function BenefitCard({ title, descriptions, Icon, offset }: Benefit) {
1415
<div className="mt-1.5 pb-25 text-center text-[17px] leading-[150%] whitespace-pre-line text-neutral-200">
1516
{descriptions}
1617
</div>
17-
<Icon />
18+
<Image src={iconSrc} alt="" aria-hidden />
1819
</div>
1920
);
2021
}

src/app/track/components/TechStack.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import type { ComponentType, SVGProps } from 'react';
1+
import Image, { type StaticImageData } from 'next/image';
22
import clsx from 'clsx';
33

44
interface TechStackProps {
5-
techStack: ComponentType<SVGProps<SVGSVGElement>>[];
5+
techStack: StaticImageData[];
66
}
77

88
export default function TechStack({ techStack }: TechStackProps) {
@@ -26,9 +26,9 @@ export default function TechStack({ techStack }: TechStackProps) {
2626
!isEvenGrid && (techStack.length === 7 ? 'max-w-190' : 'max-w-250'),
2727
)}
2828
>
29-
{techStack.map((Icon, i) => (
29+
{techStack.map((iconSrc, i) => (
3030
<div key={i} className="flex items-center justify-center">
31-
<Icon aria-hidden />
31+
<Image src={iconSrc} alt="" aria-hidden />
3232
</div>
3333
))}
3434
</div>

src/components/MentorSlider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export default function MentorSlider() {
6767
className="cursor-pointer"
6868
onClick={handleTogglePlay}
6969
>
70-
{isPlaying ? <StopButtonIcon /> : <PlayButtonIcon />}
70+
<Image src={isPlaying ? StopButtonIcon : PlayButtonIcon} alt="" aria-hidden />
7171
</button>
7272
</div>
7373
</div>

src/components/QnADropdown.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use client';
22

3+
import Image from 'next/image';
34
import Link from 'next/link';
45
import { useRef, useState, useLayoutEffect, type MouseEvent } from 'react';
56
import DownArrow from '@/assets/svg/main/dropdown-down-arrow.svg';
@@ -63,7 +64,7 @@ export default function QnADropdown() {
6364
>
6465
<span className="text-[20px] leading-[130%] font-medium">{qna.question}</span>
6566
<span className={`transition-transform duration-300 ${isDropDownOpen ? 'rotate-180' : ''}`}>
66-
<DownArrow />
67+
<Image src={DownArrow} alt="" aria-hidden />
6768
</span>
6869
</button>
6970

src/components/ScrollUpButton.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use client';
22

3+
import Image from 'next/image';
34
import { useEffect, useState } from 'react';
45
import UpButton from '@/assets/svg/track/up-icon.svg';
56

@@ -27,7 +28,7 @@ export default function ScrollUpButton() {
2728

2829
return (
2930
<button type="button" aria-label="맨 위로 이동" onClick={scrollToTop} className="fixed right-30 bottom-20 z-10">
30-
<UpButton />
31+
<Image src={UpButton} alt="" aria-hidden />
3132
</button>
3233
);
3334
}

src/components/Selector.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use client';
22

3+
import Image from 'next/image';
34
import { useId, useRef, type KeyboardEvent, type MouseEvent } from 'react';
45
import useHandleOutside from '@/hooks/useOutsideClick';
56
import ArrowDown from '@/assets/svg/polygon-icon.svg';
@@ -79,7 +80,10 @@ export default function Selector({ options, value, onSelect }: SelectorProps) {
7980
className="relative flex w-full items-center justify-center rounded-full bg-[#f4f4f4] py-2"
8081
>
8182
<div className="mx-auto text-[17px]">{showLabel}</div>
82-
<ArrowDown
83+
<Image
84+
src={ArrowDown}
85+
alt=""
86+
aria-hidden
8387
className={`absolute right-4 transform transition-transform duration-200 ${
8488
isOpen ? 'rotate-180' : 'rotate-0'
8589
}`}

src/static/recruit/benefit.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { ComponentType, SVGProps } from 'react';
1+
import type { StaticImageData } from 'next/image';
22
import Group from '@/assets/svg/recruit/group-icon.svg';
33
import Graph from '@/assets/svg/recruit/graph-icon.svg';
44
import Up from '@/assets/svg/recruit/up-icon.svg';
@@ -7,31 +7,31 @@ import Chat from '@/assets/svg/recruit/chat-icon.svg';
77
export interface Benefit {
88
title: string;
99
descriptions: string;
10-
Icon: ComponentType<SVGProps<SVGSVGElement>>;
10+
iconSrc: StaticImageData;
1111
offset?: boolean;
1212
}
1313

1414
export const BENEFITS: Benefit[] = [
1515
{
1616
title: '온/오프라인 병행',
1717
descriptions: '모교 출신 멘토들과의\n 24시간 질의응답',
18-
Icon: Group,
18+
iconSrc: Group,
1919
},
2020
{
2121
title: '효율적인 프로세스',
2222
descriptions: '실제 스타트업에서 쓰이는\n 프로세스 차용',
23-
Icon: Graph,
23+
iconSrc: Graph,
2424
offset: true,
2525
},
2626
{
2727
title: '포트폴리오 강화',
2828
descriptions: '학부생으로서 가질 수 있는\n 최대의 프로젝트 경험',
29-
Icon: Up,
29+
iconSrc: Up,
3030
},
3131
{
3232
title: '취업 멘토링',
3333
descriptions: '서류와 면접 준비에\n 대한 멘토들과의 커피챗',
34-
Icon: Chat,
34+
iconSrc: Chat,
3535
offset: true,
3636
},
3737
];

0 commit comments

Comments
 (0)