diff --git a/components/common/comment/CommentUserInfo.tsx b/components/common/comment/CommentUserInfo.tsx
index ce76a5a8..bda37cfa 100644
--- a/components/common/comment/CommentUserInfo.tsx
+++ b/components/common/comment/CommentUserInfo.tsx
@@ -17,7 +17,9 @@ export default function CommentUserInfo({ className }: { className?: string }) {
) : (
// TODO: 추후 서버 수정되면 익명회원 ID를 보여주는 문구 추가
- <>>
+
-
+
);
}
+
+export function getStaticProps() {
+ return {
+ props: {
+ meta: META.MAIN,
+ },
+ };
+}
\ No newline at end of file
diff --git a/pages/pickpickpick/[id]/index.page.tsx b/pages/pickpickpick/[id]/index.page.tsx
index 95e0f51a..59e4725d 100644
--- a/pages/pickpickpick/[id]/index.page.tsx
+++ b/pages/pickpickpick/[id]/index.page.tsx
@@ -1,4 +1,5 @@
import Link from 'next/link';
+import type { NextPage } from 'next';
import { useRouter } from 'next/router';
import DevLoadingComponent from '@pages/loading/index.page';
@@ -16,7 +17,9 @@ import {
PICK_VOTE_MODIFIED_MODAL,
} from '@components/common/modals/modalConfig/pickVote';
import MoreButton from '@components/common/moreButton';
+import type { MetaHeadProps } from '@components/meta/MetaHead';
+import { META } from '@/constants/metaData';
import { ROUTES } from '@/constants/routes';
import { useMediaQueryContext } from '@/contexts/MediaQueryContext';
@@ -27,7 +30,9 @@ import SimilarPick from './components/SimilarPick';
import VoteCard from './components/VoteCard';
import usePickDetailHandlers from './handlers/usePickDetailHandlers';
-export default function Index() {
+type NextPageWithMeta = NextPage & { meta?: MetaHeadProps };
+
+const PickDetailPage: NextPageWithMeta = () => {
const router = useRouter();
const { id } = router.query;
@@ -148,4 +153,8 @@ export default function Index() {
>
);
-}
+};
+
+PickDetailPage.meta = META.PICK;
+
+export default PickDetailPage;
diff --git a/pages/pickpickpick/index.page.tsx b/pages/pickpickpick/index.page.tsx
index b9d59de7..7ffc280d 100644
--- a/pages/pickpickpick/index.page.tsx
+++ b/pages/pickpickpick/index.page.tsx
@@ -17,7 +17,6 @@ import { Dropdown } from '@components/common/dropdowns/dropdown';
import MobileDropdown from '@components/common/dropdowns/mobileDropdown';
import { LoginModal } from '@components/common/modals/modal';
import { MobilePickSkeletonList, PickSkeletonList } from '@components/common/skeleton/pickSkeleton';
-import MetaHead from '@components/meta/MetaHead';
import IconPencil from '@public/image/pencil-alt.svg';
@@ -42,8 +41,6 @@ export default function Index() {
const { isMobile } = useMediaQueryContext();
- const { title, description, keyword, url } = META.PICK;
-
const { pickData, isFetchingNextPage, hasNextPage, status, onIntersect } = useInfinitePickData(
sortOption as PickDropdownProps,
);
@@ -105,63 +102,68 @@ export default function Index() {
};
return (
- <>
-
-
-
- 픽픽픽 💘
-
-
- {!isMobile && (
-
-
-
- {loginStatus === 'login' ? (
-
-
}
- type='button'
- />
-
- ) : (
+
+
+
+ 픽픽픽 💘
+
+
+ {!isMobile && (
+
+
+
+ {loginStatus === 'login' ? (
+
}
- onClick={() => {
- openLoginModal();
- setDescription('댑댑이가 되면 픽픽픽을 작성할 수 있어요 🥳');
- }}
type='button'
/>
- )}
-
- )}
-
- {getStatusComponent()}
-
- {isMobile &&
- (loginStatus === 'login' ? (
-
-
-
- ) : (
-
{
- openLoginModal();
- setDescription('댑댑이가 되면 픽픽픽을 작성할 수 있어요 🥳');
- }}
- />
- ))}
- {isLoginModalOpen && loginStatus !== 'login' && }
+
+ ) : (
+ }
+ onClick={() => {
+ openLoginModal();
+ setDescription('댑댑이가 되면 픽픽픽을 작성할 수 있어요 🥳');
+ }}
+ type='button'
+ />
+ )}
+
+ )}
- >
+ {getStatusComponent()}
+
+ {isMobile &&
+ (loginStatus === 'login' ? (
+
+
+
+ ) : (
+
{
+ openLoginModal();
+ setDescription('댑댑이가 되면 픽픽픽을 작성할 수 있어요 🥳');
+ }}
+ />
+ ))}
+ {isLoginModalOpen && loginStatus !== 'login' && }
+
);
}
+
+export function getStaticProps() {
+ return {
+ props: {
+ meta: META.PICK,
+ },
+ };
+}
\ No newline at end of file
diff --git a/pages/techblog/[id]/index.page.tsx b/pages/techblog/[id]/index.page.tsx
index b367cd6b..cbb22eb3 100644
--- a/pages/techblog/[id]/index.page.tsx
+++ b/pages/techblog/[id]/index.page.tsx
@@ -1,5 +1,6 @@
import React from 'react';
+import type { NextPage } from 'next';
import { useRouter } from 'next/router';
import DevLoadingComponent from '@pages/loading/index.page';
@@ -13,7 +14,9 @@ import WritableComment from '@components/common/comment/WritableComment';
import DevGuriHorizontalError from '@components/common/error/DevGuriHorizontalError';
import MobileToListButton from '@components/common/mobile/mobileToListButton';
import { LoginModal } from '@components/common/modals/modal';
+import type { MetaHeadProps } from '@components/meta/MetaHead';
+import { META } from '@/constants/metaData';
import { ROUTES } from '@/constants/routes';
import { useMediaQueryContext } from '@/contexts/MediaQueryContext';
@@ -24,7 +27,9 @@ import CompanyInfoCard from '../components/CompanyInfoCard';
import TechDetailCard from '../components/TechDetailCard';
import { TechCardProps } from '../types/techBlogType';
-export default function Page() {
+type NextPageWithMeta = NextPage & { meta?: MetaHeadProps };
+
+const TechBlogDetailPage: NextPageWithMeta = () => {
const router = useRouter();
const techArticleId = router.query.id as string | undefined;
@@ -116,4 +121,8 @@ export default function Page() {
{isLoginModalOpen && loginStatus !== 'login' &&
}
>
);
-}
+};
+
+TechBlogDetailPage.meta = META.TECH;
+
+export default TechBlogDetailPage;
diff --git a/pages/techblog/index.page.tsx b/pages/techblog/index.page.tsx
index 8acc7712..05e00dcc 100644
--- a/pages/techblog/index.page.tsx
+++ b/pages/techblog/index.page.tsx
@@ -21,7 +21,6 @@ import {
TechSkeletonList,
} from '@components/common/skeleton/techBlogSkeleton';
import SearchInput from '@components/common/techSearchInput/searchInput';
-import MetaHead from '@components/meta/MetaHead';
import { INITIAL_TECH_SORT_OPTION, techBlogDropdownOptions } from '@/constants/DropdownOption';
import { ONE_DAY_IN_SECONDS } from '@/constants/TimeConstants';
@@ -62,8 +61,6 @@ export default function Index() {
const { companyId, resetCompanyInfo } = useCompanyInfoStore();
const { setToastInvisible } = useToastVisibleStore();
- const { title, description, keyword, url } = META.TECH;
-
const { techBlogData, isFetchingNextPage, hasNextPage, status, onIntersect } =
useInfiniteTechBlogData(sortOption as TechBlogDropdownProps, searchKeyword, companyId);
@@ -128,40 +125,37 @@ export default function Index() {
};
return (
- <>
-
-
-
- {/* 구독영역 */}
-
(
-
- )}
- >
-
-
- {/* 총갯수 & 드롭다운 영역 */}
-
-
- 총 {totalArticleCnt}건
-
- {isMobile ?
:
}
+
+
+
+
+ 기술블로그 🧪
+
+
- {/* 게시글 목록 */}
- {getStatusComponent(techBlogData, status)}
-
- >
+ {/* 구독영역 */}
+
(
+
+ )}
+ >
+
+
+ {/* 총갯수 & 드롭다운 영역 */}
+
+
+ 총 {totalArticleCnt}건
+
+ {isMobile ?
:
}
+
+ {/* 게시글 목록 */}
+ {getStatusComponent(techBlogData, status)}
+
+
);
}
@@ -201,6 +195,7 @@ export async function getStaticProps() {
return {
props: {
dehydratedState: dehydrate(queryClient),
+ meta: META.TECH,
},
revalidate: ONE_DAY_IN_SECONDS, // 페이지를 하루(24시간)마다 다시 생성
};
@@ -208,4 +203,4 @@ export async function getStaticProps() {
console.error('Error prefetching tech blog data:', error);
throw new Error('데이터를 프리패치 하는중 오류가 발생했습니다.');
}
-}
+}
\ No newline at end of file