Skip to content

Commit 186dfe3

Browse files
committed
Merge branch 'pre-production' into production
2 parents cdd8f03 + c18371e commit 186dfe3

File tree

4 files changed

+46
-13
lines changed

4 files changed

+46
-13
lines changed

apps/service/src/app/(home)/page.tsx

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use client';
22
import { useRouter } from 'next/navigation';
33
import dayjs from 'dayjs';
4+
import { useEffect, useState } from 'react';
45

56
import { Button } from '@components';
67
import { IcCalendar } from '@svg';
@@ -17,16 +18,24 @@ import {
1718

1819
const Page = () => {
1920
const router = useRouter();
20-
const { data } = useGetHomeFeed();
21+
const { data, isLoading } = useGetHomeFeed();
2122
const homeFeedData = data?.data;
2223

2324
const dailyProgresses = homeFeedData?.dailyProgresses;
2425
const problemSets = homeFeedData?.problemSets;
2526

26-
const startDate = dayjs(dailyProgresses?.[0]?.date).format('MM/DD');
27-
const endDate = dayjs(dailyProgresses?.[dailyProgresses.length - 1]?.date).format('DD');
28-
const progress: DailyProgress[] =
29-
dailyProgresses?.map((progress) => progress.progressStatus ?? 'NOT_STARTED') ?? [];
27+
const [dateRange, setDateRange] = useState({ startDate: '', endDate: '' });
28+
const [progress, setProgress] = useState<DailyProgress[]>([]);
29+
30+
useEffect(() => {
31+
if (dailyProgresses?.length) {
32+
setDateRange({
33+
startDate: dayjs(dailyProgresses[0]?.date).format('MM/DD'),
34+
endDate: dayjs(dailyProgresses[dailyProgresses.length - 1]?.date).format('DD'),
35+
});
36+
setProgress(dailyProgresses.map((progress) => progress.progressStatus ?? 'NOT_STARTED'));
37+
}
38+
}, [dailyProgresses]);
3039

3140
const handleClickAllProblem = () => {
3241
trackEvent('home_all_problem_button_click');
@@ -43,11 +52,21 @@ const Page = () => {
4352
{false && <NoticeButton count={1} />}
4453
<div className='flex w-full items-center gap-[1.2rem] pt-[1.6rem]'>
4554
<GuideButton />
46-
<WeekProgress startDate={startDate} endDate={endDate} progress={progress} />
55+
<WeekProgress
56+
startDate={dateRange.startDate}
57+
endDate={dateRange.endDate}
58+
progress={progress}
59+
/>
4760
</div>
4861
</main>
4962
<div className='mt-[2.4rem]'>
50-
<ProblemSwiper problemSets={problemSets ?? []} />
63+
{isLoading ? (
64+
<div className='h-[456px] w-full' />
65+
) : problemSets ? (
66+
<ProblemSwiper problemSets={problemSets} />
67+
) : (
68+
<></>
69+
)}
5170
</div>
5271
<footer className='bg-background mt-[2.4rem] px-[2rem] pb-[3.3rem]'>
5372
<Button variant='light' onClick={handleClickAllProblem}>

apps/service/src/app/layout.tsx

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Suspense } from 'react';
22
import type { Metadata, Viewport } from 'next';
3-
import { GoogleAnalytics } from '@next/third-parties/google';
3+
import Script from 'next/script';
44

55
import Providers from './providers';
66

@@ -40,8 +40,6 @@ export const metadata: Metadata = {
4040
export const viewport: Viewport = {
4141
width: 'device-width',
4242
initialScale: 1,
43-
maximumScale: 1,
44-
userScalable: false,
4543
};
4644

4745
export default function RootLayout({
@@ -53,6 +51,10 @@ export default function RootLayout({
5351
}>) {
5452
return (
5553
<html lang='ko'>
54+
<head>
55+
<link rel='preconnect' href='https://www.google-analytics.com' crossOrigin='anonymous' />
56+
<link rel='preconnect' href='https://prod.math-pointer.com' crossOrigin='anonymous' />
57+
</head>
5658
<body className={`antialiased`}>
5759
<Providers>
5860
<Suspense fallback={<></>}>
@@ -61,7 +63,18 @@ export default function RootLayout({
6163
</Suspense>
6264
<div id='modal'></div>
6365
</Providers>
64-
<GoogleAnalytics gaId='G-7C9ETDHB0G' />
66+
<Script
67+
src={`https://www.googletagmanager.com/gtag/js?id=G-7C9ETDHB0G`}
68+
strategy='lazyOnload'
69+
/>
70+
<Script id='google-analytics' strategy='lazyOnload'>
71+
{`
72+
window.dataLayer = window.dataLayer || [];
73+
function gtag(){dataLayer.push(arguments);}
74+
gtag('js', new Date());
75+
gtag('config', 'G-7C9ETDHB0G');
76+
`}
77+
</Script>
6578
</body>
6679
</html>
6780
);

apps/service/src/components/home/HomeHeader.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const HomeHeader = () => {
1717
return (
1818
<header className='bg-background fixed inset-0 z-40 mx-auto flex h-[6rem] max-w-[768px] items-center justify-between px-[2rem]'>
1919
<Link href='/'>
20-
<LogoHeader width={106} height={24} />
20+
<LogoHeader width={106} height={24} title='로고' titleId='logo-icon' />
2121
</Link>
2222
<div className='flex items-center gap-[0.8rem]'>
2323
{/* <div className='font-medium-12 text-main bg-sub2 flex h-[2.2rem] items-center justify-center rounded-[0.4rem] px-[0.8rem]'>
@@ -31,7 +31,7 @@ const HomeHeader = () => {
3131
)}
3232
</div>
3333
<Link href='/my-page'>
34-
<IcSetting width={24} height={24} />
34+
<IcSetting width={24} height={24} title='설정' titleId='setting-icon' />
3535
</Link>
3636
</div>
3737
</header>

apps/service/src/components/home/ProblemCard/ProblemCard.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const ProblemCard = ({ publishId, dateString, title, image, solvedCount }: Props
3737
className='w-full object-contain object-top'
3838
width={264}
3939
height={157}
40+
priority
4041
/>
4142

4243
<div

0 commit comments

Comments
 (0)