Skip to content

Commit eb7635d

Browse files
authored
Merge pull request #84 from SWMTheFirstTake/dev
Dev
2 parents e75bb08 + ebe2cc8 commit eb7635d

File tree

17 files changed

+82
-82
lines changed

17 files changed

+82
-82
lines changed

app/chat/[roomId]/page.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,9 @@ export default function ChatRoomPage({ params }: ChatRoomPageProps) {
3636
setTempMessage(null);
3737
}, [roomId, mutate, setTempMessage, tempMessage?.roomId, tempMessage?.userMessage]);
3838

39-
4039
return (
4140
<Suspense>
42-
<div className="flex flex-col">
41+
<div className="flex flex-col max-w-[1024px]">
4342
{/* 상단에 메뉴 표시 */}
4443
<div>
4544
<ChatMenu />

app/layout.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,14 @@ export default function RootLayout({
9090
</head>
9191
<body className={`${plus_jakarta_sans.variable} ${noto_sans_kr.variable} antialiased min-h-screen flex flex-col`}>
9292
<main className="flex-grow text-blue dark:text-blue-250">
93-
<div className="w-full max-w-[1024px] mx-auto">
94-
<JotaiProvider>
95-
<QueryProvider>
96-
<ServerAuthProvider>
97-
<StorageInitializer>{children}</StorageInitializer>
98-
</ServerAuthProvider>
99-
</QueryProvider>
100-
</JotaiProvider>
93+
<div className="w-full mx-auto">
94+
<JotaiProvider>
95+
<QueryProvider>
96+
<ServerAuthProvider>
97+
<StorageInitializer>{children}</StorageInitializer>
98+
</ServerAuthProvider>
99+
</QueryProvider>
100+
</JotaiProvider>
101101
</div>
102102
</main>
103103
<Suspense fallback={null}>

app/page.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ export default function Home() {
77
return (
88
<div className="font-sans">
99
<section className="h-screen flex items-center justify-center relative ">
10-
<div className="absolute inset-x-0 top-0 h-1/2 bg-blue -z-20 pointer-events-none">
11-
<Image className="object-cover opacity-60" src={'/logo1.png'} alt={'logo'} fill />
10+
<div className="absolute inset-x-0 top-0 h-1/2 bg-blue dark:bg-blue-800 -z-20 pointer-events-none">
11+
<Image className="object-cover opacity-60 dark:opacity-30" src={'/logo1.png'} alt={'logo'} fill />
1212
</div>
1313
<div className="absolute inset-0 -z-10 pointer-events-none"></div>
14-
<div className="max-w-5xl mx-auto pb-24 px-4 w-full bg-white rounded-4xl shadow-2xl">
14+
<div className="max-w-5xl mx-auto pb-24 px-4 w-full bg-white dark:bg-slate-800 rounded-4xl shadow-2xl">
1515
<HeroSection />
1616
<NextChat />
1717
</div>
@@ -40,7 +40,7 @@ export default function Home() {
4040
</div>
4141
</section>
4242

43-
<section id="about" className="py-20 md:py-28 bg-white">
43+
<section id="about" className="py-20 md:py-28">
4444
<div className="max-w-6xl mx-auto px-4">
4545
<Explanation />
4646
</div>

app/signin/page.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
import SigninSNSForm from '@/components/auth/SigninSNSForm';
22
import LoginBackground from '@/components/auth/LoginBackground';
33
import Image from 'next/image';
4+
import LoginBackgroundDark from '@/components/auth/LoginBackgroundDark';
45

56
export default function SigninPage() {
67
return (
78
<div className="min-h-screen flex items-center justify-center relative overflow-hidden">
89
<LoginBackground />
10+
<LoginBackgroundDark />
911

1012
{/* 메인 컨텐츠 */}
1113
<div className="relative z-10 w-full max-w-4xl mx-4">
12-
<div className="bg-white/70 backdrop-blur-xl rounded-3xl shadow-2xl border border-white/20 p-16 space-y-12">
14+
<div className="bg-white/70 dark:bg-slate-800 backdrop-blur-xl rounded-3xl shadow-2xl p-16 space-y-12">
1315
{/* 헤더 섹션 */}
1416
<div className="text-center space-y-8">
15-
<div className="inline-flex items-center justify-center w-32 h-32 bg-white rounded-3xl shadow-lg p-4">
17+
<div className="inline-flex items-center justify-center w-32 h-32 bg-white dark:bg-slate-800 rounded-3xl shadow-lg dark:shadow-none p-4">
1618
<Image
1719
src="/TFT_icon.png"
1820
alt="The First Take"

src/components/auth/LoginBackground.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default function LoginBackground() {
22
return (
3-
<div className="fixed inset-0 w-screen h-screen z-0">
3+
<div className="dark:hidden fixed inset-0 w-screen h-screen z-0">
44
<svg
55
viewBox="0 0 1920 1080"
66
xmlns="http://www.w3.org/2000/svg"

src/components/auth/LoginBackgroundDark.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default function LoginBackgroundDark() {
22
return (
3-
<div className="fixed inset-0 w-screen h-screen z-0">
3+
<div className="hidden dark:block fixed inset-0 w-screen h-screen z-0">
44
<svg
55
viewBox="0 0 1920 1080"
66
xmlns="http://www.w3.org/2000/svg"
@@ -157,5 +157,3 @@ export default function LoginBackgroundDark() {
157157
</div>
158158
);
159159
}
160-
161-

src/components/chat/ChatMenu.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export default function ChatMenu() {
4141
<div className="flex items-center justify-around h-16 w-full">
4242
<button
4343
aria-label="Chat"
44-
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'chat' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
44+
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'chat' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
4545
onClick={handleChat}
4646
>
4747
<span className="inline-flex">
@@ -51,7 +51,7 @@ export default function ChatMenu() {
5151
</button>
5252
<button
5353
aria-label="Closet"
54-
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'closet' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
54+
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'closet' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
5555
onClick={handleCloset}
5656
>
5757
<span className="inline-flex">
@@ -61,7 +61,7 @@ export default function ChatMenu() {
6161
</button>
6262
<button
6363
aria-label="Codination"
64-
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'codination' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
64+
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'codination' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
6565
onClick={handleCodination}
6666
>
6767
<span className="inline-flex">
@@ -71,7 +71,7 @@ export default function ChatMenu() {
7171
</button>
7272
<button
7373
aria-label="Fitting"
74-
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'fitting' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
74+
className={`w-16 flex flex-col items-center gap-1 ${isClient && panel == 'fitting' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
7575
onClick={handleFitting}
7676
>
7777
<span className="inline-flex">
@@ -82,7 +82,7 @@ export default function ChatMenu() {
8282
<SettingsPanel>
8383
<button
8484
aria-label="Settings"
85-
className="w-16 flex flex-col items-center gap-1 text-slate-400 dark:text-slate-600"
85+
className="w-16 flex flex-col items-center gap-1 text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100"
8686
>
8787
<span className="inline-flex">
8888
<LucideIcon name={'Settings'} size={24} />
@@ -98,7 +98,7 @@ export default function ChatMenu() {
9898
<div className="flex flex-col items-center justify-center gap-10 w-full h-full">
9999
<button
100100
aria-label="Chat"
101-
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'chat' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
101+
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'chat' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
102102
onClick={handleChat}
103103
>
104104
<span className="inline-flex">
@@ -108,7 +108,7 @@ export default function ChatMenu() {
108108
</button>
109109
<button
110110
aria-label="Closet"
111-
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'closet' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
111+
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'closet' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
112112
onClick={handleCloset}
113113
>
114114
<span className="inline-flex">
@@ -118,7 +118,7 @@ export default function ChatMenu() {
118118
</button>
119119
<button
120120
aria-label="Codination"
121-
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'codination' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
121+
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'codination' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
122122
onClick={handleCodination}
123123
>
124124
<span className="inline-flex">
@@ -128,7 +128,7 @@ export default function ChatMenu() {
128128
</button>
129129
<button
130130
aria-label="Fitting"
131-
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'fitting' ? 'font-bold text-blue-600 dark:text-blue-400' : 'text-slate-400 dark:text-slate-600'}`}
131+
className={`w-full flex flex-col items-center gap-1 ${isClient && panel == 'fitting' ? 'font-bold text-blue-600 dark:text-slate-100 rounded-md' : 'text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100 rounded-md transition-colors'}`}
132132
onClick={handleFitting}
133133
>
134134
<span className="inline-flex">
@@ -139,7 +139,7 @@ export default function ChatMenu() {
139139
<SettingsPanel>
140140
<button
141141
aria-label="Settings"
142-
className="w-full flex flex-col items-center gap-1 text-slate-400 dark:text-slate-600"
142+
className="w-full flex flex-col items-center gap-1 text-slate-500 dark:text-slate-400 hover:text-slate-700 dark:hover:text-slate-100"
143143
>
144144
<span className="inline-flex">
145145
<LucideIcon name={'Settings'} size={24} />

src/components/chat/closet/ClosetPanel.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ export default function ClosetPanel() {
1919
};
2020

2121
return (
22-
<div className="h-full flex flex-col">
22+
<div className="h-full flex flex-col dark:bg-slate-800">
2323
<div className="overflow-y-auto p-4 h-11/12">
2424
{closet.length === 0 ? (
2525
<div className="flex flex-col items-center justify-center h-full text-center">
26-
<h3 className="text-xl font-semibold text-blue dark:text-white mb-2">옷장이 비어있습니다</h3>
27-
<p className="text-blue mb-4">AI와 대화하여 패션 아이템을 옷장에 추가해보세요</p>
28-
<p className="text-sm text-blue">추천받은 아이템을 클릭하면 옷장에 자동으로 추가됩니다</p>
26+
<h3 className="text-2xl font-semibold mb-4">옷장이 비어있습니다</h3>
27+
<p className="">AI와 대화하여 패션 아이템을 옷장에 추가해보세요</p>
28+
<p className="">추천받은 아이템을 클릭하면 옷장에 자동으로 추가됩니다</p>
2929
</div>
3030
) : (
3131
<div className="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4">
@@ -36,7 +36,7 @@ export default function ClosetPanel() {
3636
)}
3737
</div>
3838
<button
39-
className="cursor-pointer h-1/12 btn bg-blue-700 text-2xl text-white hover:bg-blue-800 transition-colors"
39+
className="cursor-pointer h-1/12 btn bg-blue-600 text-2xl text-white hover:bg-blue-700 dark:hover:bg-blue-500 transition-colors"
4040
onClick={handleOpenModal}
4141
>
4242
코디하기

src/components/chat/codination/CodinationPanel.tsx

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ export default function CodinationPanel() {
1515
const [closetCodination, setClosetCodination] = useAtom(closetCodinationAtom);
1616
const [activeCodination] = useAtom(activeCodinationAtom);
1717
const [user] = useAtom(userAtom);
18-
18+
1919
// 스토리지 훅 사용
2020
const { codinations, updateCodination } = useCodination();
21-
const { executeVirtualFitting } = useVirtualFitting({
22-
codinationId: closetCodination?.id || activeCodination?.id || ''
21+
const { executeVirtualFitting } = useVirtualFitting({
22+
codinationId: closetCodination?.id || activeCodination?.id || '',
2323
});
2424
// 상의와 하의가 모두 선택되었는지 확인
2525
const hasUpperAndLower =
@@ -58,30 +58,31 @@ export default function CodinationPanel() {
5858

5959
// 가상피팅 실행
6060
const success = await executeVirtualFitting(closetCodination.cloths);
61-
61+
6262
if (success) {
6363
// 즉시 fitting 패널로 이동
6464
setPanel('fitting');
6565
setActiveCodination(closetCodination);
6666
setClosetCodination(null);
67-
67+
6868
// 코디네이션 업데이트
6969
await updateCodination(closetCodination);
7070
}
7171
};
7272

7373
if (codinations.length === 0)
7474
return (
75-
<div className="h-full flex flex-col">
75+
<div className="h-full flex flex-col dark:bg-slate-800">
7676
<div className="flex-1 flex flex-col items-center justify-center text-center p-8">
77-
<div className="w-24 h-24 bg-slate-100 dark:bg-slate-800 rounded-full flex items-center justify-center mb-6">
78-
<Plus className="w-12 h-12 text-slate-400" />
77+
<div className="w-24 h-24 bg-slate-100 dark:bg-slate-700 rounded-full flex items-center justify-center mb-6">
78+
<Plus className="w-12 h-12 " />
7979
</div>
80-
<h3 className="text-xl font-semibold text-slate-900 dark:text-white mb-3">아직 코디가 없습니다</h3>
81-
<p className="text-slate-600 dark:text-slate-400 mb-6 max-w-md">
82-
AI와 대화하여 가상피팅에 사용할 옷 조합들을 추가해보세요
83-
</p>
84-
<Button onClick={handleAddNewCodination} className="bg-blue-600 dark:bg-blue-500 hover:bg-blue-700 dark:hover:bg-blue-600 text-white px-6 py-3">
80+
<h3 className="text-xl font-semibold mb-3">아직 코디가 없습니다</h3>
81+
<p className="mb-6 max-w-md">AI와 대화하여 가상피팅에 사용할 옷 조합들을 추가해보세요</p>
82+
<Button
83+
onClick={handleAddNewCodination}
84+
className="bg-blue-600 hover:bg-blue-700 dark:hover:bg-blue-500 text-white px-6 py-3"
85+
>
8586
<Plus className="w-4 h-4 mr-2" />
8687
코디 추가하기
8788
</Button>
@@ -113,9 +114,7 @@ export default function CodinationPanel() {
113114
<div className="p-4 border-t border-slate-200 dark:border-slate-700">
114115
<button
115116
className={`w-full cursor-pointer h-12 btn ${
116-
closetCodination.fitting_image
117-
? 'bg-green-600 hover:bg-green-700'
118-
: 'bg-navy'
117+
closetCodination.fitting_image ? 'bg-green-600 hover:bg-green-700' : 'bg-navy'
119118
} text-lg text-white disabled:bg-blue-50`}
120119
disabled={isDisabled}
121120
onClick={handleSubmitFitting}

src/components/chat/fitting/FittingCard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default function FittingCard() {
1515
const displayImage = activeCodination?.fitting_image || fittingStatus.resultUrl;
1616

1717
return (
18-
<div className="flex bg-gray-100 dark:bg-slate-700 flex-col h-full min-h-[400px]">
18+
<div className="flex bg-gray-100 dark:bg-slate-800 flex-col h-full min-h-[400px]">
1919
<div className="flex h-full items-center justify-center">
2020
<FittingStatus
2121
status={fittingStatus.status}

0 commit comments

Comments
 (0)