- lib/alerts.ts: id/code/op(gte|lte)/target/triggered 저장소, watchlist/recent 와 동일 pub/sub - AlertsPanel: 종목 사이드바에 ≥/≤ 토글 + 목표가 입력 + 활성 알람 리스트(재무장/삭제) - AlertsToaster: layout 전역 마운트, 미발사 알람 코드만 폴링, 조건 충족시 markTriggered + 우측 하단 토스트(6s), Notification 권한 허용 시 브라우저 알림 병행
22 lines
538 B
TypeScript
22 lines
538 B
TypeScript
import "./globals.css";
|
|
import type { Metadata } from "next";
|
|
import { AlertsToaster } from "../components/AlertsToaster";
|
|
import { TopNav } from "../components/TopNav";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Stock Chart Site",
|
|
description: "개인용 주식 예측 차트",
|
|
};
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="ko">
|
|
<body className="min-h-screen">
|
|
<TopNav />
|
|
{children}
|
|
<AlertsToaster />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|