diff --git a/app/admin/AdminLayoutClient.tsx b/app/admin/AdminLayoutClient.tsx new file mode 100644 index 0000000..ddb161d --- /dev/null +++ b/app/admin/AdminLayoutClient.tsx @@ -0,0 +1,22 @@ +'use client'; + +import { SessionProvider } from 'next-auth/react'; +import { Suspense } from 'react'; +import ProtectedRoute from '@/app/entities/common/Layout/ProtectedRoute'; +import SVGLoadingSpinner from '@/app/entities/common/Loading/SVGLoadingSpinner'; + +interface AdminLayoutClientProps { + children: React.ReactNode; +} + +const AdminLayoutClient = ({ children }: AdminLayoutClientProps) => { + return ( + + + }>{children} + + + ); +}; + +export default AdminLayoutClient; diff --git a/app/admin/layout.tsx b/app/admin/layout.tsx index d3236e2..8fea74c 100644 --- a/app/admin/layout.tsx +++ b/app/admin/layout.tsx @@ -1,21 +1,21 @@ -'use client'; -import { SessionProvider } from 'next-auth/react'; -import { Suspense } from 'react'; -import ProtectedRoute from '@/app/entities/common/Layout/ProtectedRoute'; -import SVGLoadingSpinner from '@/app/entities/common/Loading/SVGLoadingSpinner'; +import type { Metadata } from 'next'; +import AdminLayoutClient from './AdminLayoutClient'; + +export const metadata: Metadata = { + title: '관리자 | ShipFriend TechBlog', + robots: { + index: false, + follow: false, + googleBot: { index: false, follow: false }, + }, +}; interface AdminPageLayoutProps { children: React.ReactNode; } const AdminPageLayout = ({ children }: AdminPageLayoutProps) => { - return ( - - - }>{children} - - - ); + return {children}; }; export default AdminPageLayout; diff --git a/app/api/portfolio/data.ts b/app/api/portfolio/data.ts index 4ab18fa..5ff74fc 100644 --- a/app/api/portfolio/data.ts +++ b/app/api/portfolio/data.ts @@ -39,7 +39,7 @@ const shipfriend: PortfolioItem = { url: '/posts/%EB%8B%A4%ED%81%AC%EB%AA%A8%EB%93%9C-fouc-%EA%B9%9C%EB%B9%A1%EC%9E%84-%ED%98%84%EC%83%81-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0', }, ], - mainImage: '/plane.png', + mainImage: '/images/projects/shipfriend/main.webp', images: [ '/images/projects/shipfriend/bloglist.webp', '/images/projects/shipfriend/blog-detail.webp', diff --git a/app/atelier/layout.tsx b/app/atelier/layout.tsx index c7b99e4..63af642 100644 --- a/app/atelier/layout.tsx +++ b/app/atelier/layout.tsx @@ -1,4 +1,5 @@ import { Metadata } from 'next'; +import { SITE_URL } from '@/app/lib/site'; import AtelierClientLayout from './AtelierClientLayout'; export const metadata: Metadata = { @@ -7,12 +8,12 @@ export const metadata: Metadata = { openGraph: { title: 'Atelier - ShipFriend TechBlog', description: '생각들을 던져두는 곳, Atelier 페이지입니다.', - url: 'https://shipfriend.dev/atelier', + url: `${SITE_URL}/atelier`, siteName: 'ShipFriend TechBlog', type: 'website', images: [ { - url: 'https://shipfriend.dev/images/atelier/atelier-og-thumbnail.webp', + url: `${SITE_URL}/images/atelier/atelier-og-thumbnail.webp`, width: 1200, height: 630, alt: 'Atelier', @@ -23,7 +24,10 @@ export const metadata: Metadata = { card: 'summary_large_image', title: 'Atelier - ShipFriend TechBlog', description: '생각들을 던져두는 곳, Atelier 페이지입니다.', - images: ['https://shipfriend.dev/images/atelier/atelier-og-thumbnail.webp'], + images: [`${SITE_URL}/images/atelier/atelier-og-thumbnail.webp`], + }, + alternates: { + canonical: `${SITE_URL}/atelier`, }, }; diff --git a/app/entities/common/NavBar.tsx b/app/entities/common/NavBar.tsx index fac6331..84322ae 100644 --- a/app/entities/common/NavBar.tsx +++ b/app/entities/common/NavBar.tsx @@ -52,11 +52,12 @@ const NavBar = () => { className={`${fixedStyle} fixed h-16 top-0 px-4 w-screen inline-flex items-center justify-center z-40 backdrop-blur-sm`} >
- + + ShipFriend TechBlog