- Backend: NestJS + Prisma 7 (MariaDB adapter) scaffold - PrismaService with @prisma/adapter-mariadb driver - SistersService: SSH 상태 체크 with graceful fallback - HealthController: GET /health - 시드 스크립트: 자매 4명 초기 데이터 - 테스트 5/5 pass - Frontend: Next.js 16 + styled-components - styled-components SSR registry (next.config 컴파일러) - 다크 테마 글로벌 스타일 + 테마 토큰 - SisterCard: glassmorphism 상태 카드 (온라인 pulse 애니메이션) - StatusBadge: 상태 표시 컴포넌트 - Sidebar: 접이식 네비게이션 - 대시보드 메인 페이지 (API 미연결 시 mock 데이터 fallback) - build 성공 확인 - DB credential 이랑이 대기 중
44 lines
1007 B
TypeScript
44 lines
1007 B
TypeScript
import type { Metadata } from 'next';
|
|
import StyledComponentsRegistry from '@/lib/registry';
|
|
import GlobalStyle from '@/styles/GlobalStyle';
|
|
import Sidebar from '@/components/common/Sidebar';
|
|
import styled from 'styled-components';
|
|
|
|
export const metadata: Metadata = {
|
|
title: '하나랑 대시보드',
|
|
description: '4자매 멀티에이전트 파이프라인 관제 대시보드',
|
|
};
|
|
|
|
const LayoutRoot = styled.div`
|
|
display: flex;
|
|
min-height: 100vh;
|
|
background: #0D1117;
|
|
`;
|
|
|
|
const MainContent = styled.main`
|
|
flex: 1;
|
|
margin-left: 220px;
|
|
min-height: 100vh;
|
|
transition: margin-left 0.2s ease;
|
|
`;
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="ko">
|
|
<body>
|
|
<StyledComponentsRegistry>
|
|
<GlobalStyle />
|
|
<LayoutRoot>
|
|
<Sidebar />
|
|
<MainContent>{children}</MainContent>
|
|
</LayoutRoot>
|
|
</StyledComponentsRegistry>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|