diff --git a/frontend/src/app/(main)/chat/Home.tsx b/frontend/src/app/(main)/chat/Home.tsx index 2d8b9466..7f503899 100644 --- a/frontend/src/app/(main)/chat/Home.tsx +++ b/frontend/src/app/(main)/chat/Home.tsx @@ -1,6 +1,12 @@ // app/page.tsx or components/Home.tsx 'use client'; -import React, { useEffect, useState, useRef, useCallback } from 'react'; +import React, { + useEffect, + useState, + useRef, + useCallback, + useContext, +} from 'react'; import { ResizablePanelGroup, ResizablePanel, @@ -8,14 +14,15 @@ import { } from '@/components/ui/resizable'; import { CodeEngine } from '@/components/code-engine/code-engine'; import { GET_CHAT_HISTORY } from '@/graphql/request'; -import { useQuery } from '@apollo/client'; +import { useMutation, useQuery } from '@apollo/client'; import { toast } from 'sonner'; import { EventEnum } from '@/components/enum'; -import { useModels } from '../../../hooks/useModels'; -import { useChatList } from '../../../hooks/useChatList'; -import { useChatStream } from '../../../hooks/useChatStream'; +import { useModels } from '../../hooks/useModels'; +import { useChatList } from '../../hooks/useChatList'; +import { useChatStream } from '../../hooks/useChatStream'; import EditUsernameForm from '@/components/edit-username-form'; import ChatContent from '@/components/chat/chat'; +import { ProjectContext } from '@/components/code-engine/project-context'; export default function Home() { // Initialize state, refs, and custom hooks diff --git a/frontend/src/app/(main)/chat/main-layout.tsx b/frontend/src/app/(main)/chat/MainLayout.tsx similarity index 96% rename from frontend/src/app/(main)/chat/main-layout.tsx rename to frontend/src/app/(main)/chat/MainLayout.tsx index 4f4bb701..603406fb 100644 --- a/frontend/src/app/(main)/chat/main-layout.tsx +++ b/frontend/src/app/(main)/chat/MainLayout.tsx @@ -1,5 +1,6 @@ 'use client'; import React, { useEffect, useState } from 'react'; +import { useAuthContext } from '@/app/providers/AuthProvider'; import { useRouter } from 'next/navigation'; import { ResizablePanel, ResizablePanelGroup } from '@/components/ui/resizable'; import { SidebarProvider } from '@/components/ui/sidebar'; @@ -8,9 +9,8 @@ import { ChatSideBar } from '@/components/sidebar'; import ProjectModal from '@/components/project-modal'; import { useQuery } from '@apollo/client'; import { ProjectProvider } from '@/components/code-engine/project-context'; -import { useChatList } from '@/hooks/useChatList'; +import { useChatList } from '@/app/hooks/useChatList'; import { GET_USER_PROJECTS } from '@/graphql/request'; -import { useAuthContext } from '@/providers/AuthProvider'; export default function MainLayout({ children, diff --git a/frontend/src/app/(main)/chat/layout.tsx b/frontend/src/app/(main)/chat/layout.tsx index c465337d..86f489f4 100644 --- a/frontend/src/app/(main)/chat/layout.tsx +++ b/frontend/src/app/(main)/chat/layout.tsx @@ -1,4 +1,5 @@ -import MainLayout from './main-layout'; +import type { Metadata, Viewport } from 'next'; +import MainLayout from './MainLayout'; export default function Layout({ children, diff --git a/frontend/src/app/(main)/page.tsx b/frontend/src/app/(main)/page.tsx index bae0614a..7532cf71 100644 --- a/frontend/src/app/(main)/page.tsx +++ b/frontend/src/app/(main)/page.tsx @@ -6,10 +6,10 @@ import Image from 'next/image'; import Link from 'next/link'; import { useTheme } from 'next-themes'; -import { SignUpModal } from '@/components/sign-up-modal'; -import { SignInModal } from '@/components/sign-in-modal'; -import { AuthChoiceModal } from '@/components/auth-choice-modal'; -import { useAuthContext } from '@/providers/AuthProvider'; +import { SignUpModal } from '@/components/SignUpModal'; +import { SignInModal } from '@/components/SignInModal'; +import { AuthChoiceModal } from '@/components/AuthChoiceModal'; +import { useAuthContext } from '../providers/AuthProvider'; export default function HomePage() { const [message, setMessage] = useState(''); diff --git a/frontend/src/app/favicon.ico b/frontend/src/app/favicon.ico new file mode 100644 index 00000000..718d6fea Binary files /dev/null and b/frontend/src/app/favicon.ico differ diff --git a/frontend/src/hooks/useAuth.ts b/frontend/src/app/hooks/useAuth.ts similarity index 100% rename from frontend/src/hooks/useAuth.ts rename to frontend/src/app/hooks/useAuth.ts diff --git a/frontend/src/hooks/useChatList.ts b/frontend/src/app/hooks/useChatList.ts similarity index 100% rename from frontend/src/hooks/useChatList.ts rename to frontend/src/app/hooks/useChatList.ts diff --git a/frontend/src/hooks/useChatStore.ts b/frontend/src/app/hooks/useChatStore.ts similarity index 100% rename from frontend/src/hooks/useChatStore.ts rename to frontend/src/app/hooks/useChatStore.ts diff --git a/frontend/src/hooks/useChatStream.ts b/frontend/src/app/hooks/useChatStream.ts similarity index 100% rename from frontend/src/hooks/useChatStream.ts rename to frontend/src/app/hooks/useChatStream.ts diff --git a/frontend/src/hooks/useIsMobile.tsx b/frontend/src/app/hooks/useIsMobile.tsx similarity index 100% rename from frontend/src/hooks/useIsMobile.tsx rename to frontend/src/app/hooks/useIsMobile.tsx diff --git a/frontend/src/hooks/useLocalStorageData.ts b/frontend/src/app/hooks/useLocalStorageData.ts similarity index 100% rename from frontend/src/hooks/useLocalStorageData.ts rename to frontend/src/app/hooks/useLocalStorageData.ts diff --git a/frontend/src/hooks/useModels.ts b/frontend/src/app/hooks/useModels.ts similarity index 97% rename from frontend/src/hooks/useModels.ts rename to frontend/src/app/hooks/useModels.ts index b7ebb8d7..392af4ed 100644 --- a/frontend/src/hooks/useModels.ts +++ b/frontend/src/app/hooks/useModels.ts @@ -3,7 +3,7 @@ import { toast } from 'sonner'; import { useState, useEffect } from 'react'; import { LocalStore } from '@/lib/storage'; import { GET_MODEL_TAGS } from '@/graphql/request'; -import { useAuthContext } from '@/providers/AuthProvider'; +import { useAuthContext } from '@/app/providers/AuthProvider'; interface ModelsCache { models: string[]; diff --git a/frontend/src/hooks/useSpeechRecognition.ts b/frontend/src/app/hooks/useSpeechRecognition.ts similarity index 100% rename from frontend/src/hooks/useSpeechRecognition.ts rename to frontend/src/app/hooks/useSpeechRecognition.ts diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx index 35de5094..1be91492 100644 --- a/frontend/src/app/layout.tsx +++ b/frontend/src/app/layout.tsx @@ -1,7 +1,7 @@ import type { Metadata } from 'next'; import { Inter } from 'next/font/google'; import './globals.css'; -import { BaseProviders } from '@/providers/BaseProvider'; +import { BaseProviders } from './providers/BaseProvider'; const inter = Inter({ subsets: ['latin'] }); diff --git a/frontend/src/providers/AuthProvider.tsx b/frontend/src/app/providers/AuthProvider.tsx similarity index 100% rename from frontend/src/providers/AuthProvider.tsx rename to frontend/src/app/providers/AuthProvider.tsx diff --git a/frontend/src/providers/BaseProvider.tsx b/frontend/src/app/providers/BaseProvider.tsx similarity index 100% rename from frontend/src/providers/BaseProvider.tsx rename to frontend/src/app/providers/BaseProvider.tsx diff --git a/frontend/src/providers/DynamicApolloProvider.tsx b/frontend/src/app/providers/DynamicApolloProvider.tsx similarity index 100% rename from frontend/src/providers/DynamicApolloProvider.tsx rename to frontend/src/app/providers/DynamicApolloProvider.tsx diff --git a/frontend/src/components/auth-choice-modal.tsx b/frontend/src/components/AuthChoiceModal.tsx similarity index 100% rename from frontend/src/components/auth-choice-modal.tsx rename to frontend/src/components/AuthChoiceModal.tsx diff --git a/frontend/src/components/sign-in-modal.tsx b/frontend/src/components/SignInModal.tsx similarity index 98% rename from frontend/src/components/sign-in-modal.tsx rename to frontend/src/components/SignInModal.tsx index 6a1cffd5..dca7ff3a 100644 --- a/frontend/src/components/sign-in-modal.tsx +++ b/frontend/src/components/SignInModal.tsx @@ -17,7 +17,7 @@ import { useMutation } from '@apollo/client'; import { LOGIN_USER } from '@/graphql/mutations/auth'; import { toast } from 'sonner'; import { VisuallyHidden } from '@radix-ui/react-visually-hidden'; -import { useAuthContext } from '@/providers/AuthProvider'; +import { useAuthContext } from '@/app/providers/AuthProvider'; interface SignInModalProps { isOpen: boolean; diff --git a/frontend/src/components/sign-up-modal.tsx b/frontend/src/components/SignUpModal.tsx similarity index 100% rename from frontend/src/components/sign-up-modal.tsx rename to frontend/src/components/SignUpModal.tsx diff --git a/frontend/src/components/chat/chat-bottombar.tsx b/frontend/src/components/chat/chat-bottombar.tsx index 98e26d10..70852fa5 100644 --- a/frontend/src/components/chat/chat-bottombar.tsx +++ b/frontend/src/components/chat/chat-bottombar.tsx @@ -14,9 +14,9 @@ import { StopIcon, } from '@radix-ui/react-icons'; import { Mic, SendHorizonal } from 'lucide-react'; -import useSpeechToText from '@/hooks/useSpeechRecognition'; +import useSpeechToText from '@/app/hooks/useSpeechRecognition'; import MultiImagePicker from '../image-embedder'; -import useChatStore from '@/hooks/useChatStore'; +import useChatStore from '@/app/hooks/useChatStore'; import Image from 'next/image'; export default function ChatBottombar({ diff --git a/frontend/src/components/chat/chat-list.tsx b/frontend/src/components/chat/chat-list.tsx index fd65ed41..9e6da27d 100644 --- a/frontend/src/components/chat/chat-list.tsx +++ b/frontend/src/components/chat/chat-list.tsx @@ -10,7 +10,7 @@ import CodeDisplayBlock from '../code-display-block'; import { Message } from '../types'; import { Button } from '../ui/button'; import { Pencil } from 'lucide-react'; -import { useAuth } from '@/hooks/useAuth'; +import { useAuth } from '@/app/hooks/useAuth'; interface ChatListProps { messages: Message[]; diff --git a/frontend/src/components/chat/chat-topbar.tsx b/frontend/src/components/chat/chat-topbar.tsx index 89f1093c..55415c11 100644 --- a/frontend/src/components/chat/chat-topbar.tsx +++ b/frontend/src/components/chat/chat-topbar.tsx @@ -7,7 +7,7 @@ import { import React from 'react'; import { CaretSortIcon } from '@radix-ui/react-icons'; import { Button } from '../ui/button'; -import { useModels } from '@/hooks/useModels'; +import { useModels } from '@/app/hooks/useModels'; import { ScrollArea } from '@/components/ui/scroll-area'; import { Separator } from '@/components/ui/separator'; import { cn } from '@/lib/utils'; diff --git a/frontend/src/components/code-engine/project-context.tsx b/frontend/src/components/code-engine/project-context.tsx index 4e3a7cdb..f1609fa3 100644 --- a/frontend/src/components/code-engine/project-context.tsx +++ b/frontend/src/components/code-engine/project-context.tsx @@ -9,7 +9,7 @@ import React, { } from 'react'; import { useLazyQuery, useMutation, useQuery } from '@apollo/client'; import { Project } from '../project-modal'; -import { useAuth } from '@/hooks/useAuth'; +import { useAuth } from '@/app/hooks/useAuth'; import { CREATE_PROJECT, GET_CHAT_DETAILS, diff --git a/frontend/src/components/file-sidebar.tsx b/frontend/src/components/fileSidebar.tsx similarity index 100% rename from frontend/src/components/file-sidebar.tsx rename to frontend/src/components/fileSidebar.tsx diff --git a/frontend/src/components/ui/sidebar.tsx b/frontend/src/components/ui/sidebar.tsx index 90f4e5c1..70ebd1c1 100644 --- a/frontend/src/components/ui/sidebar.tsx +++ b/frontend/src/components/ui/sidebar.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import { Slot } from '@radix-ui/react-slot'; import { VariantProps, cva } from 'class-variance-authority'; -import { useIsMobile } from '@/hooks/useIsMobile'; +import { useIsMobile } from '@/app/hooks/useIsMobile'; import { cn } from '@/lib/utils'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; diff --git a/frontend/src/components/user-settings.tsx b/frontend/src/components/user-settings.tsx index f32d6b2e..21adee0b 100644 --- a/frontend/src/components/user-settings.tsx +++ b/frontend/src/components/user-settings.tsx @@ -15,7 +15,7 @@ import { } from '@/components/ui/avatar'; import { GearIcon } from '@radix-ui/react-icons'; import { Button } from '@/components/ui/button'; -import { useAuth } from '@/hooks/useAuth'; +import { useAuth } from '@/app/hooks/useAuth'; import { useRouter } from 'next/navigation'; import { useMemo, useState, memo } from 'react'; import { EventEnum } from './enum'; diff --git a/frontend/src/providers/ThemeProvider.tsx b/frontend/src/providers/theme-provider.tsx similarity index 100% rename from frontend/src/providers/ThemeProvider.tsx rename to frontend/src/providers/theme-provider.tsx