Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added public/meta.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions src/app/(after-login)/dashboard/[id]/edit/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { ReactNode } from 'react';
import { Metadata } from 'next';
import axiosServerHelper from '@/utils/network/axiosServerHelper';
import { Dashboard, dashboardSchema } from '@/apis/dashboards/types';
import { safeResponse } from '@/utils/network/safeResponse';

export async function generateMetadata({ params }: { params: Promise<{ id: string }> }): Promise<Metadata> {
const resolvedParams = await params;
const id = resolvedParams.id;
const response = await axiosServerHelper<Dashboard>(`/dashboards/${id}`);
const dashboardDetail = safeResponse(response.data, dashboardSchema);
return {
title: `Taskify - ${dashboardDetail.title} 수정`,
description: 'Taskify 대시보드에서 커뮤니티 일정을 한눈에 관리해 보세요.',
keywords: ['일정', '공유', '커뮤니티', '할 일', 'Taskify'],
openGraph: {
title: `Taskify - ${dashboardDetail.title} 수정`,
description: 'Taskify 대시보드에서 커뮤니티 일정을 한눈에 관리해 보세요.',
url: `https://taskify-lab.vercel.app/dashboard/${id}/edit`,
type: 'website',
images: [
{
url: 'https://taskify-lab.vercel.app/meta.png',
width: 1200,
height: 630,
alt: 'Taskify 대시보드 수정 페이지 이미지',
},
],
},
};
}

export default function Layout({ children }: { children: ReactNode }) {
return <>{children}</>;
}
32 changes: 31 additions & 1 deletion src/app/(after-login)/dashboard/[id]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
import ColumnList from '@/components/columns/ColumnList';
import { Metadata } from 'next';
import axiosServerHelper from '@/utils/network/axiosServerHelper';
import { Dashboard, dashboardSchema } from '@/apis/dashboards/types';
import { safeResponse } from '@/utils/network/safeResponse';

export default function DashboardDetailPage() {
export async function generateMetadata({ params }: { params: Promise<{ id: string }> }): Promise<Metadata> {
const resolvedParams = await params;
const id = resolvedParams.id;
const response = await axiosServerHelper<Dashboard>(`/dashboards/${id}`);
const dashboardDetail = safeResponse(response.data, dashboardSchema);
return {
title: `Taskify - ${dashboardDetail.title}`,
description: 'Taskify 대시보드에서 커뮤니티 일정을 한눈에 관리해 보세요.',
keywords: ['일정', '공유', '커뮤니티', '할 일', 'Taskify'],
openGraph: {
title: `Taskify - ${dashboardDetail.title}`,
description: 'Taskify 대시보드에서 커뮤니티 일정을 한눈에 관리해 보세요.',
url: `https://taskify-lab.vercel.app/dashboard/${id}`,
type: 'website',
images: [
{
url: 'https://taskify-lab.vercel.app/meta.png',
width: 1200,
height: 630,
alt: 'Taskify 대시보드 페이지 이미지',
},
],
},
};
}

export default async function DashboardDetailPage() {
return <ColumnList />;
}
20 changes: 20 additions & 0 deletions src/app/(after-login)/mydashboard/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@ import MyDashboard from '@/components/dashboard/MyDashboard';
import MyInvitedDashboardList from '@/components/dashboard/MyInvitedDashboardList';
import { Page, PageInner } from '@/components/layout/Page';

export const metadata = {
title: 'Taskify - 내 대시보드',
description: 'Taskify 내 대시보드에서 개인 일정을 쉽고 편하게 관리해 보세요.',
keywords: ['일정', '공유', '커뮤니티', '할 일', 'Taskify'],
openGraph: {
title: 'Taskify - 내 대시보드',
description: 'Taskify 내 대시보드에서 개인 일정을 쉽고 편하게 관리해 보세요.',
url: 'https://taskify-lab.vercel.app/mydashboard',
type: 'website',
images: [
{
url: 'https://taskify-lab.vercel.app/meta.png',
width: 1200,
height: 630,
alt: 'Taskify 내 대시보드 이미지',
},
],
},
};

export default function MydashboardPage() {
return (
<Page>
Expand Down
20 changes: 20 additions & 0 deletions src/app/(after-login)/mypage/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,26 @@ import GoBackLink from '@/components/ui/Link/GoBackLink';
import axiosServerHelper from '@/utils/network/axiosServerHelper';
import { safeResponse } from '@/utils/network/safeResponse';

export const metadata = {
title: 'Taskify - 마이페이지',
description: 'Taskify 마이페이지에서 계정 정보와 활동 내역을 한눈에 확인해 보세요.',
keywords: ['일정', '공유', '커뮤니티', '할 일', 'Taskify'],
openGraph: {
title: 'Taskify - 마이페이지',
description: 'Taskify 마이페이지에서 계정 정보와 활동 내역을 한눈에 확인해 보세요.',
url: 'https://taskify-lab.vercel.app/mypage',
type: 'website',
images: [
{
url: 'https://taskify-lab.vercel.app/meta.png',
width: 1200,
height: 630,
alt: 'Taskify 마이페이지 이미지',
},
],
},
};

export default async function MyPage() {
const response = await axiosServerHelper<User>('/users/me');
const userData = safeResponse(response.data, userSchema);
Expand Down
20 changes: 20 additions & 0 deletions src/app/(before-login)/(auth)/login/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@ import Link from 'next/link';
import LoginForm from '@/components/auth/LoginForm';
import Header from '@/components/auth/Header';

export const metadata = {
title: 'Taskify - 로그인',
description: 'Taskify에 로그인하고, 함께 일정을 공유하며 더 나은 하루를 시작해 보세요.',
keywords: ['일정', '공유', '커뮤니티', '할 일', 'Taskify'],
openGraph: {
title: 'Taskify - 로그인',
description: 'Taskify에 로그인하고, 함께 일정을 공유하며 더 나은 하루를 시작해 보세요.',
url: 'https://taskify-lab.vercel.app/login',
type: 'website',
images: [
{
url: 'https://taskify-lab.vercel.app/meta.png',
width: 1200,
height: 630,
alt: 'Taskify 로그인 이미지',
},
],
},
};

export default function Login() {
return (
<>
Expand Down
20 changes: 20 additions & 0 deletions src/app/(before-login)/(auth)/signup/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@ import Link from 'next/link';
import SignupForm from '@/components/auth/SignupForm';
import Header from '@/components/auth/Header';

export const metadata = {
title: 'Taskify - 회원가입',
description: '새 계정을 만들고 Taskify와 함께 일정을 공유하며 즐겁게 관리해 보세요.',
keywords: ['일정', '공유', '커뮤니티', '할 일', 'Taskify'],
openGraph: {
title: 'Taskify - 회원가입',
description: '새 계정을 만들고 Taskify와 함께 일정을 공유하며 즐겁게 관리해 보세요.',
url: 'https://taskify-lab.vercel.app/signup',
type: 'website',
images: [
{
url: 'https://taskify-lab.vercel.app/meta.png',
width: 1200,
height: 630,
alt: 'Taskify 회원가입 이미지',
},
],
},
};

export default function Signup() {
return (
<>
Expand Down
20 changes: 20 additions & 0 deletions src/app/(before-login)/(landings)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,26 @@ const SNS_LIST: IconLinkItem[] = [
},
];

export const metadata = {
title: 'Taskify',
description: 'Taskify는 가족, 회사, 친구들과 함께 일정을 쉽고 즐겁게 관리할 수 있는 서비스입니다.',
keywords: ['일정', '공유', '커뮤니티', '할 일', 'Taskify'],
openGraph: {
title: 'Taskify',
description: 'Taskify는 가족, 회사, 친구들과 함께 일정을 쉽고 즐겁게 관리할 수 있는 서비스입니다.',
url: 'https://taskify-lab.vercel.app/',
type: 'website',
images: [
{
url: 'https://taskify-lab.vercel.app/meta.png',
width: 1200,
height: 630,
alt: 'Taskify 랜딩 페이지 이미지',
},
],
},
};

export default function layout({ children }: PropsWithChildren) {
return (
<SmoothScroll>
Expand Down