diff --git "a/docs/architecture-guidelines \353\263\265\354\202\254\353\263\270.md" "b/docs/architecture-guidelines \353\263\265\354\202\254\353\263\270.md" new file mode 100644 index 0000000..5393360 --- /dev/null +++ "b/docs/architecture-guidelines \353\263\265\354\202\254\353\263\270.md" @@ -0,0 +1,48 @@ +# Architecture Guidelines + +This project uses three layers with fixed responsibilities. + +## Layer Rules + +- `src/components`: small, reusable UI building blocks only. +- `src/features`: domain logic, state, data access, and feature-level UI composition. +- `src/app`: routing, page entry, and feature composition only. + +## Allowed Imports + +- `src/app` -> `src/features`, `src/components`, `src/lib` +- `src/features` -> `src/components`, `src/lib`, same feature internals +- `src/components` -> `src/components/ui`, `src/lib` + +## Disallowed Imports + +- `src/components` -> `src/features` +- `src/components` -> `src/app` +- `src/lib` -> `src/app`, `src/features`, `src/components` + +## Import Pattern Examples + +Allowed: + +```ts +// src/app/page.tsx +import { ChatShell } from "@/features/shell/ui/chat-shell"; +``` + +```ts +// src/features/chat/ui/chat-thread.tsx +import { MessageBubble } from "@/features/chat/ui/message-bubble"; +import { cn } from "@/lib/utils"; +``` + +Disallowed: + +```ts +// src/components/ui/card.tsx +import { useChatStore } from "@/features/chat/model/store"; +``` + +```ts +// src/lib/date.ts +import { ChatShell } from "@/features/shell/ui/chat-shell"; +``` diff --git a/src/features/auth/ui/login-panel.tsx b/src/features/auth/ui/login-panel.tsx index 2413591..fa1aec9 100644 --- a/src/features/auth/ui/login-panel.tsx +++ b/src/features/auth/ui/login-panel.tsx @@ -8,6 +8,14 @@ import { useEffect, useState } from "react"; import { toast } from "sonner"; import { Button } from "@/components/ui/button"; +import { + Drawer, + DrawerClose, + DrawerContent, + DrawerHeader, + DrawerTitle, + DrawerTrigger, +} from "@/components/ui/drawer"; import { useAuthSession } from "@/features/auth/model/use-auth-session"; import { cn } from "@/lib/utils"; @@ -107,6 +115,65 @@ export function LoginPanel() { > 이용약관 + · + + + + + + + 사업자 정보 + +
+

+ 좋은공간 미디어 | 대표 : 윤성현 +

+

+ 부산광역시 북구 낙동북로 772번가길 28, 지하 1층(구포동) +

+

+ 사업자 등록번호 : 621-14-25692{" "} + + [사업자 번호 조회] + +

+

통신판매번호 : 2018-부산북구-0094

+

+ 이메일 문의 :{" "} + + ccc9020@hanmail.net + +

+
+
+

+ © {new Date().getFullYear()} 좋은공간 미디어. All rights + reserved. +

+ + + +
+
+