diff --git a/public/icons/mobile-thread.svg b/public/icons/mobile-thread.svg new file mode 100644 index 00000000..599c1752 --- /dev/null +++ b/public/icons/mobile-thread.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/thread.svg b/public/icons/thread.svg new file mode 100644 index 00000000..2b8c6a09 --- /dev/null +++ b/public/icons/thread.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/(main)/teampsylog/head/[uuid]/page.tsx b/src/app/(main)/teampsylog/head/[uuid]/page.tsx index 74beb20b..96d95749 100644 --- a/src/app/(main)/teampsylog/head/[uuid]/page.tsx +++ b/src/app/(main)/teampsylog/head/[uuid]/page.tsx @@ -2,11 +2,49 @@ import React from 'react'; import KeywordCard from './_components/KeywordCard'; import Button from '@/components/common/Button'; import Link from 'next/link'; +import axios from 'axios'; +import { Metadata } from 'next'; type Props = { params: Promise<{ uuid: string }>; }; +export async function generateMetadata({ params }: Props): Promise { + const { uuid } = await params; + let userName = '사용자'; + + try { + const res = await axios.get( + `${process.env.NEXT_PUBLIC_API_BASE_URL}/teamficial-log/requester`, + { + params: { + requesterUuid: uuid, + }, + }, + ); + + userName = res.data?.result?.requesterName ?? '사용자'; + } catch (error) { + console.error('Failed to fetch requester data:', error); + } + + return { + title: `${userName}님의 팀피셜록을 작성해볼까요?`, + description: `소프트스킬 팀빌딩 서비스, 팀피셜`, + openGraph: { + title: `${userName}님의 팀피셜록을 작성해볼까요?`, + description: `소프트스킬 팀빌딩 서비스, 팀피셜`, + images: [ + { + url: '/og/Teamficial_metatag_Image.jpg', + width: 1200, + height: 630, + }, + ], + }, + }; +} + const page = async ({ params }: Props) => { const { uuid } = await params; diff --git a/src/components/common/Footer.tsx b/src/components/common/Footer.tsx index 5f3a2ae8..3710ed53 100644 --- a/src/components/common/Footer.tsx +++ b/src/components/common/Footer.tsx @@ -3,6 +3,7 @@ import Image from 'next/image'; const Footer = () => { return ( <> + {/* 모바일 */} + {/* 데스크탑 */}