Skip to content

Commit

Permalink
๐Ÿ’„ Style - ์„ธ๋ฏธ๋‚˜ ์ธ๋„ค์ผ ๋ฐ˜์‘ํ˜•, ์Šคํƒ€์ผ ์–‘์‹ ๋งž์ถค #40
Browse files Browse the repository at this point in the history
- ์„ธ๋ฏธ๋‚˜ ์ธ๋„ค์ผ svg -> png ์ด๋ฏธ์ง€๋กœ ๋ณ€๊ฒฝ
- ํ”ผ๊ทธ๋งˆ์— ๋งž์ถฐ ํฐํŠธ ๊ตต๊ธฐ, ํฌ๊ธฐ, ์ƒ‰์ƒ ๋“ฑ ์Šคํƒ€์ผ ์–‘์‹์œผ๋กœ ์ˆ˜์ •
- ์„ธ๋ฏธ๋‚˜ interface, ๋”๋ฏธ ๋ฐ์ดํ„ฐ ์ˆ˜์ •
- desktop, tablet, mobile์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€๋„ค์ด์…˜, ๋ฌดํ•œ ์Šคํฌ๋กค ๋ฐ˜์‘ํ˜• ์ฒ˜๋ฆฌ
  • Loading branch information
bianbbc87 committed May 1, 2024
1 parent a2044d8 commit f35911d
Show file tree
Hide file tree
Showing 7 changed files with 348 additions and 114 deletions.
9 changes: 0 additions & 9 deletions public/svg/seminar/gdsc_logo.svg

This file was deleted.

Binary file added public/svg/seminar/seminar_thumbnail_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 9 additions & 3 deletions src/app/seminar/[id]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ const SeminarDetailPage = () => {
}


return <div className="w-4/5 px-10 my-20 mx-auto">
return <section className="flex justify-center">
<div className="max-w-[1200px] desktop:px-10 tablet:px-10 px-4 bg-mono_black">
<div className="w-full">
{/* header */}
<SeminarDetailHeader key={`${seminar.id}_header`} data={seminar}/>

Expand All @@ -33,8 +35,12 @@ const SeminarDetailPage = () => {
<SeminarDetailPdf key={`${seminar.id}_pdf`}/>

{/* review */}
<SeminarDetailReview />
</div>;
<SeminarDetailReview key={`${seminar.id}_review`} />

</div>
<div className="h-[120px]"></div>
</div>
</section>;
};

export default SeminarDetailPage;
49 changes: 10 additions & 39 deletions src/components/seminar/thumbnail/SeminarThumbnail.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React, { useState } from 'react';
import GDSCLOGO from '@/svg/seminar/gdsc_logo.svg';
import { SeminarThumnail } from '@/interfaces/seminar/seminarThumbnail';
import Image from 'next/image';

/**
* @description
Expand All @@ -15,43 +14,15 @@ import { SeminarThumnail } from '@/interfaces/seminar/seminarThumbnail';
*/
const SeminarThumbnail = ({ data }: { data: SeminarThumnail }) => {
return (
<div className="scale-container flex relative p-2">
{/* ์™ผ์ชฝ ์ปจํ…์ธ  */}
<div className="flex-6 mr-10">
<GDSCLOGO />
<p className="text-md font-bold tracking-wide truncate">GDSC DGU {data.flag}st</p>
<p className="mt-1 text-md font-bold tracking-wide truncate">{data.type}</p>
<p className="mt-1 text-sm font-thin tracking-wide truncate">{data.date}</p>
<p className="mt-2 w-14 border border-solid text-zinc-500 h-0 tracking-wide"></p>
<p className="text-2xl font-normal mt-[1rem] tracking-wide">{data.title}</p>
<p className="mt-2 text-xs font-thin tracking-wide">{data.description}</p>
</div>
{/* ์˜ค๋ฅธ์ชฝ ์ปจํ…์ธ  */}
<div className='flex flex-col justify-between text-end align-end h-full'>
<p className="py-2 px-5 text-md font-normal rounded-xl bg-zinc-900">
{data.topic}
</p>
<div
className="relative"
style={{
backgroundImage: `url(${data.profile_image_url})`,
backgroundSize: "cover",
borderRadius: 100,
aspectRatio: 1/1,
height: 100,
width: 100,
}}
>
<div className="flex flex-col absolute bottom-0 right-0 gap-1.5">
<p className="text-center py-0.5 px-1 bg-[#fff] text-[#000] text-[0.6rem] font-bold rounded-2xl">
{data.presenter}
</p>
<p className="text-center py-0.5 px-1 bg-[#fff] text-[#000] text-[0.6rem] font-bold rounded-2xl">
{data.flag}st {data.role}
</p>
</div>
</div>
</div>
<div className="w-full aspect-w-16 aspect-h-9">
<Image
src={data.image_url}
alt={`${data.presenter}'s_seminarimage`}
width={1600}
height={900}
quality={100}
priority
/>
</div>
);
};
Expand Down
33 changes: 25 additions & 8 deletions src/components/seminar/thumbnail/SeminarThumbnailList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const SeminarThumbnailList = ({ selectedCategory }: { selectedCategory: string }

// ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ ๊ณ„์‚ฐ
const pageNumbers = [];
for (let i = 1; i <= Math.ceil(SEMINAR_DATA.length / itemsPerPage); i++) {
for (let i = 1; i <= Math.ceil(filteredData.length / itemsPerPage); i++) {
pageNumbers.push(i);
}

Expand All @@ -47,11 +47,11 @@ const SeminarThumbnailList = ({ selectedCategory }: { selectedCategory: string }


return (
<div className="w-full mt-20">
{/* ์ธ๋„ค์ผ ๋ ˆ์ŠคํŠธ */}
<div className="grid grid-cols-2 lg:grid-cols-3 gap-10 mb-20" style={{
aspectRatio: 16/9,
}}>
<div className="mt-10">
{/* ์ธ๋„ค์ผ ๋ฆฌ์ŠคํŠธ */}

{/* desktop์ธ ๊ฒฝ์šฐ */}
<div className="desktop:grid tablet:hidden hidden desktop:grid-cols-3 gap-x-8 gap-y-10">
{currentItems.map((seminar) => (
<Link
href={`/seminar/${seminar.id}`}
Expand All @@ -63,14 +63,31 @@ const SeminarThumbnailList = ({ selectedCategory }: { selectedCategory: string }
/>
</Link>
))}
</div>

{/*tablet, mobile์ธ ๊ฒฝ์šฐ */}
<div className="desktop:hidden grid tablet:grid-cols-2 grid-cols-1 gap-x-8 gap-y-10">
{SEMINAR_DATA.map((seminar) => (
<Link
href={`/seminar/${seminar.id}`}
key={seminar.id}
>
<SeminarThumbnail
key={seminar.id}
data={seminar}
/>
</Link>
))}
</div>
{/* ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฒ„ํŠผ */}
<div className="flex justify-center gap-4">

{/* desktop์ธ ๊ฒฝ์šฐ์—๋งŒ ๋ณด์ด๊ธฐ */}
<div className="pt-10 mt-5 desktop:flex tablet:hidden hidden justify-center gap-3">
{pageNumbers.map(number => (
<button
key={number}
onClick={() => paginate(number)}
className={`px-2 py-1 text-xs border border-2 rounded-lg ${currentPage === number ? 'text-zinc-1000' : 'text-zinc-500 border-zinc-500'}`}
className={`text-[0.75rem] font-medium w-5 y-5 justify-center items-center text-center border rounded ${currentPage === number ? 'text-mono_white border-mono_white' : 'text-mono_500 border-mono_500'}`}
>
{number}
</button>
Expand Down
Loading

0 comments on commit f35911d

Please sign in to comment.