From 3c9b9d1673beaf67b71053e7a4a6dafca2bbbcb6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:33:13 +0000 Subject: [PATCH 1/7] Initial plan From e33c0bf5020d39282a6ea69040c4b1dd3aa11b5f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:40:41 +0000 Subject: [PATCH 2/7] Complete JSX to TSX migration: rename frontend to client and convert all JSX files to TSX Co-authored-by: Avdhesh-Varshney <114330097+Avdhesh-Varshney@users.noreply.github.com> --- {frontend => client}/.env.example | 0 {frontend => client}/.vercelignore | 0 {frontend => client}/eslint.config.js | 0 {frontend => client}/index.html | 2 +- {frontend => client}/package-lock.json | 15 +++++++++ {frontend => client}/package.json | 3 +- {frontend => client}/public/404.png | Bin {frontend => client}/public/full-logo.png | Bin {frontend => client}/public/logo.png | Bin {frontend => client}/public/vite.svg | 0 frontend/src/App.jsx => client/src/App.tsx | 0 {frontend => client}/src/assets/react.svg | 0 .../src/common/cloudinary.tsx | 0 .../date.jsx => client/src/common/date.tsx | 0 .../src/common/filter-pagination-data.tsx | 0 .../src/common/page-animation.tsx | 0 .../src/common/session.tsx | 0 .../src/components/AboutUser.tsx | 0 .../src/components/CommentCard.tsx | 0 .../src/components/CommentField.tsx | 0 .../src/components/Comments.tsx | 0 .../src/components/InPageNavigation.tsx | 0 .../src/components/InputBox.tsx | 0 .../src/components/LoadMoreData.tsx | 0 .../src/components/Loader.tsx | 0 .../src/components/ManageProjectCard.tsx | 0 .../src/components/Navbar.tsx | 0 .../src/components/NoBannerProjectPost.tsx | 0 .../src/components/NoData.tsx | 0 .../src/components/NotificationCard.tsx | 0 .../components/NotificationCommentField.tsx | 0 .../src/components/ProjectContent.tsx | 0 .../src/components/ProjectEditor.tsx | 0 .../src/components/ProjectInteraction.tsx | 0 .../src/components/ProjectPostCard.tsx | 0 .../src/components/PublishForm.tsx | 0 .../src/components/SideNavBar.tsx | 0 .../src/components/SubscribeModal.tsx | 0 .../src/components/Tags.tsx | 0 .../src/components/ThemeToggle.tsx | 0 .../src/components/Tools.tsx | 0 .../src/components/UserCard.tsx | 0 .../src/components/UserNavigationPanel.tsx | 0 .../skeletons/LatestProjectsSkeleton.tsx | 0 .../skeletons/ProjectLoadingSkeleton.tsx | 0 .../skeletons/TrendingProjectsSkeleton.tsx | 0 .../src/context/ThemeContext.tsx | 0 {frontend => client}/src/index.css | 0 frontend/src/main.jsx => client/src/main.tsx | 4 +-- .../pages/404.jsx => client/src/pages/404.tsx | 0 .../src/pages/ChangePassword.tsx | 0 .../src/pages/EditProfile.tsx | 0 .../Editor.jsx => client/src/pages/Editor.tsx | 0 .../Home.jsx => client/src/pages/Home.tsx | 0 .../src/pages/ManageProjects.tsx | 0 .../src/pages/Notifications.tsx | 0 .../src/pages/Profile.tsx | 0 .../src/pages/Project.tsx | 0 .../Search.jsx => client/src/pages/Search.tsx | 0 .../src/pages/UserAuthForm.tsx | 0 client/tsconfig.json | 29 ++++++++++++++++++ client/tsconfig.node.json | 11 +++++++ {frontend => client}/vercel.json | 0 {frontend => client}/vite.config.js | 0 package.json | 4 +-- 65 files changed, 62 insertions(+), 6 deletions(-) rename {frontend => client}/.env.example (100%) rename {frontend => client}/.vercelignore (100%) rename {frontend => client}/eslint.config.js (100%) rename {frontend => client}/index.html (84%) rename {frontend => client}/package-lock.json (99%) rename {frontend => client}/package.json (97%) rename {frontend => client}/public/404.png (100%) rename {frontend => client}/public/full-logo.png (100%) rename {frontend => client}/public/logo.png (100%) rename {frontend => client}/public/vite.svg (100%) rename frontend/src/App.jsx => client/src/App.tsx (100%) rename {frontend => client}/src/assets/react.svg (100%) rename frontend/src/common/cloudinary.jsx => client/src/common/cloudinary.tsx (100%) rename frontend/src/common/date.jsx => client/src/common/date.tsx (100%) rename frontend/src/common/filter-pagination-data.jsx => client/src/common/filter-pagination-data.tsx (100%) rename frontend/src/common/page-animation.jsx => client/src/common/page-animation.tsx (100%) rename frontend/src/common/session.jsx => client/src/common/session.tsx (100%) rename frontend/src/components/AboutUser.jsx => client/src/components/AboutUser.tsx (100%) rename frontend/src/components/CommentCard.jsx => client/src/components/CommentCard.tsx (100%) rename frontend/src/components/CommentField.jsx => client/src/components/CommentField.tsx (100%) rename frontend/src/components/Comments.jsx => client/src/components/Comments.tsx (100%) rename frontend/src/components/InPageNavigation.jsx => client/src/components/InPageNavigation.tsx (100%) rename frontend/src/components/InputBox.jsx => client/src/components/InputBox.tsx (100%) rename frontend/src/components/LoadMoreData.jsx => client/src/components/LoadMoreData.tsx (100%) rename frontend/src/components/Loader.jsx => client/src/components/Loader.tsx (100%) rename frontend/src/components/ManageProjectCard.jsx => client/src/components/ManageProjectCard.tsx (100%) rename frontend/src/components/Navbar.jsx => client/src/components/Navbar.tsx (100%) rename frontend/src/components/NoBannerProjectPost.jsx => client/src/components/NoBannerProjectPost.tsx (100%) rename frontend/src/components/NoData.jsx => client/src/components/NoData.tsx (100%) rename frontend/src/components/NotificationCard.jsx => client/src/components/NotificationCard.tsx (100%) rename frontend/src/components/NotificationCommentField.jsx => client/src/components/NotificationCommentField.tsx (100%) rename frontend/src/components/ProjectContent.jsx => client/src/components/ProjectContent.tsx (100%) rename frontend/src/components/ProjectEditor.jsx => client/src/components/ProjectEditor.tsx (100%) rename frontend/src/components/ProjectInteraction.jsx => client/src/components/ProjectInteraction.tsx (100%) rename frontend/src/components/ProjectPostCard.jsx => client/src/components/ProjectPostCard.tsx (100%) rename frontend/src/components/PublishForm.jsx => client/src/components/PublishForm.tsx (100%) rename frontend/src/components/SideNavBar.jsx => client/src/components/SideNavBar.tsx (100%) rename frontend/src/components/SubscribeModal.jsx => client/src/components/SubscribeModal.tsx (100%) rename frontend/src/components/Tags.jsx => client/src/components/Tags.tsx (100%) rename frontend/src/components/ThemeToggle.jsx => client/src/components/ThemeToggle.tsx (100%) rename frontend/src/components/Tools.jsx => client/src/components/Tools.tsx (100%) rename frontend/src/components/UserCard.jsx => client/src/components/UserCard.tsx (100%) rename frontend/src/components/UserNavigationPanel.jsx => client/src/components/UserNavigationPanel.tsx (100%) rename frontend/src/components/skeletons/LatestProjectsSkeleton.jsx => client/src/components/skeletons/LatestProjectsSkeleton.tsx (100%) rename frontend/src/components/skeletons/ProjectLoadingSkeleton.jsx => client/src/components/skeletons/ProjectLoadingSkeleton.tsx (100%) rename frontend/src/components/skeletons/TrendingProjectsSkeleton.jsx => client/src/components/skeletons/TrendingProjectsSkeleton.tsx (100%) rename frontend/src/context/ThemeContext.jsx => client/src/context/ThemeContext.tsx (100%) rename {frontend => client}/src/index.css (100%) rename frontend/src/main.jsx => client/src/main.tsx (79%) rename frontend/src/pages/404.jsx => client/src/pages/404.tsx (100%) rename frontend/src/pages/ChangePassword.jsx => client/src/pages/ChangePassword.tsx (100%) rename frontend/src/pages/EditProfile.jsx => client/src/pages/EditProfile.tsx (100%) rename frontend/src/pages/Editor.jsx => client/src/pages/Editor.tsx (100%) rename frontend/src/pages/Home.jsx => client/src/pages/Home.tsx (100%) rename frontend/src/pages/ManageProjects.jsx => client/src/pages/ManageProjects.tsx (100%) rename frontend/src/pages/Notifications.jsx => client/src/pages/Notifications.tsx (100%) rename frontend/src/pages/Profile.jsx => client/src/pages/Profile.tsx (100%) rename frontend/src/pages/Project.jsx => client/src/pages/Project.tsx (100%) rename frontend/src/pages/Search.jsx => client/src/pages/Search.tsx (100%) rename frontend/src/pages/UserAuthForm.jsx => client/src/pages/UserAuthForm.tsx (100%) create mode 100644 client/tsconfig.json create mode 100644 client/tsconfig.node.json rename {frontend => client}/vercel.json (100%) rename {frontend => client}/vite.config.js (100%) diff --git a/frontend/.env.example b/client/.env.example similarity index 100% rename from frontend/.env.example rename to client/.env.example diff --git a/frontend/.vercelignore b/client/.vercelignore similarity index 100% rename from frontend/.vercelignore rename to client/.vercelignore diff --git a/frontend/eslint.config.js b/client/eslint.config.js similarity index 100% rename from frontend/eslint.config.js rename to client/eslint.config.js diff --git a/frontend/index.html b/client/index.html similarity index 84% rename from frontend/index.html rename to client/index.html index 784d71fac..c8fb44594 100644 --- a/frontend/index.html +++ b/client/index.html @@ -10,7 +10,7 @@
- + \ No newline at end of file diff --git a/frontend/package-lock.json b/client/package-lock.json similarity index 99% rename from frontend/package-lock.json rename to client/package-lock.json index cb8a8ac40..cde5f968d 100644 --- a/frontend/package-lock.json +++ b/client/package-lock.json @@ -44,6 +44,7 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^15.15.0", + "typescript": "^5.9.2", "vite": "^6.2.0" } }, @@ -4254,6 +4255,20 @@ "node": ">= 0.8.0" } }, + "node_modules/typescript": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/undici-types": { "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", diff --git a/frontend/package.json b/client/package.json similarity index 97% rename from frontend/package.json rename to client/package.json index 5e7d3b079..61924fb40 100644 --- a/frontend/package.json +++ b/client/package.json @@ -1,5 +1,5 @@ { - "name": "frontend", + "name": "client", "author": "Avdhesh Varshney", "license": "ISC", "description": "Code A2Z is a collaborative blogging platform for developers and writers to create, manage, and share projects with markdown support, customizable templates, and community contributions.", @@ -56,6 +56,7 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^15.15.0", + "typescript": "^5.9.2", "vite": "^6.2.0" } } diff --git a/frontend/public/404.png b/client/public/404.png similarity index 100% rename from frontend/public/404.png rename to client/public/404.png diff --git a/frontend/public/full-logo.png b/client/public/full-logo.png similarity index 100% rename from frontend/public/full-logo.png rename to client/public/full-logo.png diff --git a/frontend/public/logo.png b/client/public/logo.png similarity index 100% rename from frontend/public/logo.png rename to client/public/logo.png diff --git a/frontend/public/vite.svg b/client/public/vite.svg similarity index 100% rename from frontend/public/vite.svg rename to client/public/vite.svg diff --git a/frontend/src/App.jsx b/client/src/App.tsx similarity index 100% rename from frontend/src/App.jsx rename to client/src/App.tsx diff --git a/frontend/src/assets/react.svg b/client/src/assets/react.svg similarity index 100% rename from frontend/src/assets/react.svg rename to client/src/assets/react.svg diff --git a/frontend/src/common/cloudinary.jsx b/client/src/common/cloudinary.tsx similarity index 100% rename from frontend/src/common/cloudinary.jsx rename to client/src/common/cloudinary.tsx diff --git a/frontend/src/common/date.jsx b/client/src/common/date.tsx similarity index 100% rename from frontend/src/common/date.jsx rename to client/src/common/date.tsx diff --git a/frontend/src/common/filter-pagination-data.jsx b/client/src/common/filter-pagination-data.tsx similarity index 100% rename from frontend/src/common/filter-pagination-data.jsx rename to client/src/common/filter-pagination-data.tsx diff --git a/frontend/src/common/page-animation.jsx b/client/src/common/page-animation.tsx similarity index 100% rename from frontend/src/common/page-animation.jsx rename to client/src/common/page-animation.tsx diff --git a/frontend/src/common/session.jsx b/client/src/common/session.tsx similarity index 100% rename from frontend/src/common/session.jsx rename to client/src/common/session.tsx diff --git a/frontend/src/components/AboutUser.jsx b/client/src/components/AboutUser.tsx similarity index 100% rename from frontend/src/components/AboutUser.jsx rename to client/src/components/AboutUser.tsx diff --git a/frontend/src/components/CommentCard.jsx b/client/src/components/CommentCard.tsx similarity index 100% rename from frontend/src/components/CommentCard.jsx rename to client/src/components/CommentCard.tsx diff --git a/frontend/src/components/CommentField.jsx b/client/src/components/CommentField.tsx similarity index 100% rename from frontend/src/components/CommentField.jsx rename to client/src/components/CommentField.tsx diff --git a/frontend/src/components/Comments.jsx b/client/src/components/Comments.tsx similarity index 100% rename from frontend/src/components/Comments.jsx rename to client/src/components/Comments.tsx diff --git a/frontend/src/components/InPageNavigation.jsx b/client/src/components/InPageNavigation.tsx similarity index 100% rename from frontend/src/components/InPageNavigation.jsx rename to client/src/components/InPageNavigation.tsx diff --git a/frontend/src/components/InputBox.jsx b/client/src/components/InputBox.tsx similarity index 100% rename from frontend/src/components/InputBox.jsx rename to client/src/components/InputBox.tsx diff --git a/frontend/src/components/LoadMoreData.jsx b/client/src/components/LoadMoreData.tsx similarity index 100% rename from frontend/src/components/LoadMoreData.jsx rename to client/src/components/LoadMoreData.tsx diff --git a/frontend/src/components/Loader.jsx b/client/src/components/Loader.tsx similarity index 100% rename from frontend/src/components/Loader.jsx rename to client/src/components/Loader.tsx diff --git a/frontend/src/components/ManageProjectCard.jsx b/client/src/components/ManageProjectCard.tsx similarity index 100% rename from frontend/src/components/ManageProjectCard.jsx rename to client/src/components/ManageProjectCard.tsx diff --git a/frontend/src/components/Navbar.jsx b/client/src/components/Navbar.tsx similarity index 100% rename from frontend/src/components/Navbar.jsx rename to client/src/components/Navbar.tsx diff --git a/frontend/src/components/NoBannerProjectPost.jsx b/client/src/components/NoBannerProjectPost.tsx similarity index 100% rename from frontend/src/components/NoBannerProjectPost.jsx rename to client/src/components/NoBannerProjectPost.tsx diff --git a/frontend/src/components/NoData.jsx b/client/src/components/NoData.tsx similarity index 100% rename from frontend/src/components/NoData.jsx rename to client/src/components/NoData.tsx diff --git a/frontend/src/components/NotificationCard.jsx b/client/src/components/NotificationCard.tsx similarity index 100% rename from frontend/src/components/NotificationCard.jsx rename to client/src/components/NotificationCard.tsx diff --git a/frontend/src/components/NotificationCommentField.jsx b/client/src/components/NotificationCommentField.tsx similarity index 100% rename from frontend/src/components/NotificationCommentField.jsx rename to client/src/components/NotificationCommentField.tsx diff --git a/frontend/src/components/ProjectContent.jsx b/client/src/components/ProjectContent.tsx similarity index 100% rename from frontend/src/components/ProjectContent.jsx rename to client/src/components/ProjectContent.tsx diff --git a/frontend/src/components/ProjectEditor.jsx b/client/src/components/ProjectEditor.tsx similarity index 100% rename from frontend/src/components/ProjectEditor.jsx rename to client/src/components/ProjectEditor.tsx diff --git a/frontend/src/components/ProjectInteraction.jsx b/client/src/components/ProjectInteraction.tsx similarity index 100% rename from frontend/src/components/ProjectInteraction.jsx rename to client/src/components/ProjectInteraction.tsx diff --git a/frontend/src/components/ProjectPostCard.jsx b/client/src/components/ProjectPostCard.tsx similarity index 100% rename from frontend/src/components/ProjectPostCard.jsx rename to client/src/components/ProjectPostCard.tsx diff --git a/frontend/src/components/PublishForm.jsx b/client/src/components/PublishForm.tsx similarity index 100% rename from frontend/src/components/PublishForm.jsx rename to client/src/components/PublishForm.tsx diff --git a/frontend/src/components/SideNavBar.jsx b/client/src/components/SideNavBar.tsx similarity index 100% rename from frontend/src/components/SideNavBar.jsx rename to client/src/components/SideNavBar.tsx diff --git a/frontend/src/components/SubscribeModal.jsx b/client/src/components/SubscribeModal.tsx similarity index 100% rename from frontend/src/components/SubscribeModal.jsx rename to client/src/components/SubscribeModal.tsx diff --git a/frontend/src/components/Tags.jsx b/client/src/components/Tags.tsx similarity index 100% rename from frontend/src/components/Tags.jsx rename to client/src/components/Tags.tsx diff --git a/frontend/src/components/ThemeToggle.jsx b/client/src/components/ThemeToggle.tsx similarity index 100% rename from frontend/src/components/ThemeToggle.jsx rename to client/src/components/ThemeToggle.tsx diff --git a/frontend/src/components/Tools.jsx b/client/src/components/Tools.tsx similarity index 100% rename from frontend/src/components/Tools.jsx rename to client/src/components/Tools.tsx diff --git a/frontend/src/components/UserCard.jsx b/client/src/components/UserCard.tsx similarity index 100% rename from frontend/src/components/UserCard.jsx rename to client/src/components/UserCard.tsx diff --git a/frontend/src/components/UserNavigationPanel.jsx b/client/src/components/UserNavigationPanel.tsx similarity index 100% rename from frontend/src/components/UserNavigationPanel.jsx rename to client/src/components/UserNavigationPanel.tsx diff --git a/frontend/src/components/skeletons/LatestProjectsSkeleton.jsx b/client/src/components/skeletons/LatestProjectsSkeleton.tsx similarity index 100% rename from frontend/src/components/skeletons/LatestProjectsSkeleton.jsx rename to client/src/components/skeletons/LatestProjectsSkeleton.tsx diff --git a/frontend/src/components/skeletons/ProjectLoadingSkeleton.jsx b/client/src/components/skeletons/ProjectLoadingSkeleton.tsx similarity index 100% rename from frontend/src/components/skeletons/ProjectLoadingSkeleton.jsx rename to client/src/components/skeletons/ProjectLoadingSkeleton.tsx diff --git a/frontend/src/components/skeletons/TrendingProjectsSkeleton.jsx b/client/src/components/skeletons/TrendingProjectsSkeleton.tsx similarity index 100% rename from frontend/src/components/skeletons/TrendingProjectsSkeleton.jsx rename to client/src/components/skeletons/TrendingProjectsSkeleton.tsx diff --git a/frontend/src/context/ThemeContext.jsx b/client/src/context/ThemeContext.tsx similarity index 100% rename from frontend/src/context/ThemeContext.jsx rename to client/src/context/ThemeContext.tsx diff --git a/frontend/src/index.css b/client/src/index.css similarity index 100% rename from frontend/src/index.css rename to client/src/index.css diff --git a/frontend/src/main.jsx b/client/src/main.tsx similarity index 79% rename from frontend/src/main.jsx rename to client/src/main.tsx index 5fc3b9e19..f639fa91b 100644 --- a/frontend/src/main.jsx +++ b/client/src/main.tsx @@ -2,8 +2,8 @@ import { StrictMode } from 'react' import { createRoot } from 'react-dom/client' import { BrowserRouter } from 'react-router-dom' import './index.css' -import App from './App.jsx' -import { ThemeProvider } from './context/ThemeContext.jsx' +import App from './App.tsx' +import { ThemeProvider } from './context/ThemeContext.tsx' createRoot(document.getElementById('root')).render( diff --git a/frontend/src/pages/404.jsx b/client/src/pages/404.tsx similarity index 100% rename from frontend/src/pages/404.jsx rename to client/src/pages/404.tsx diff --git a/frontend/src/pages/ChangePassword.jsx b/client/src/pages/ChangePassword.tsx similarity index 100% rename from frontend/src/pages/ChangePassword.jsx rename to client/src/pages/ChangePassword.tsx diff --git a/frontend/src/pages/EditProfile.jsx b/client/src/pages/EditProfile.tsx similarity index 100% rename from frontend/src/pages/EditProfile.jsx rename to client/src/pages/EditProfile.tsx diff --git a/frontend/src/pages/Editor.jsx b/client/src/pages/Editor.tsx similarity index 100% rename from frontend/src/pages/Editor.jsx rename to client/src/pages/Editor.tsx diff --git a/frontend/src/pages/Home.jsx b/client/src/pages/Home.tsx similarity index 100% rename from frontend/src/pages/Home.jsx rename to client/src/pages/Home.tsx diff --git a/frontend/src/pages/ManageProjects.jsx b/client/src/pages/ManageProjects.tsx similarity index 100% rename from frontend/src/pages/ManageProjects.jsx rename to client/src/pages/ManageProjects.tsx diff --git a/frontend/src/pages/Notifications.jsx b/client/src/pages/Notifications.tsx similarity index 100% rename from frontend/src/pages/Notifications.jsx rename to client/src/pages/Notifications.tsx diff --git a/frontend/src/pages/Profile.jsx b/client/src/pages/Profile.tsx similarity index 100% rename from frontend/src/pages/Profile.jsx rename to client/src/pages/Profile.tsx diff --git a/frontend/src/pages/Project.jsx b/client/src/pages/Project.tsx similarity index 100% rename from frontend/src/pages/Project.jsx rename to client/src/pages/Project.tsx diff --git a/frontend/src/pages/Search.jsx b/client/src/pages/Search.tsx similarity index 100% rename from frontend/src/pages/Search.jsx rename to client/src/pages/Search.tsx diff --git a/frontend/src/pages/UserAuthForm.jsx b/client/src/pages/UserAuthForm.tsx similarity index 100% rename from frontend/src/pages/UserAuthForm.jsx rename to client/src/pages/UserAuthForm.tsx diff --git a/client/tsconfig.json b/client/tsconfig.json new file mode 100644 index 000000000..86f448ba6 --- /dev/null +++ b/client/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "Bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noFallthroughCasesInSwitch": true, + "allowJs": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} \ No newline at end of file diff --git a/client/tsconfig.node.json b/client/tsconfig.node.json new file mode 100644 index 000000000..5d9a798fe --- /dev/null +++ b/client/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "allowSyntheticDefaultImports": true, + "strict": true + }, + "include": ["vite.config.js"] +} \ No newline at end of file diff --git a/frontend/vercel.json b/client/vercel.json similarity index 100% rename from frontend/vercel.json rename to client/vercel.json diff --git a/frontend/vite.config.js b/client/vite.config.js similarity index 100% rename from frontend/vite.config.js rename to client/vite.config.js diff --git a/package.json b/package.json index b6bbccbdf..06e2f33a9 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "frontend": "cd frontend && npm run dev", + "frontend": "cd client && npm run dev", "backend": "cd backend && npm run dev", "dev": "concurrently -n \"FRONTEND,BACKEND\" -c \"bgBlue.bold,bgMagenta.bold\" \"npm run frontend\" \"npm run backend\"", "prepare": "husky install" @@ -42,7 +42,7 @@ "prettier": "^3.6.2" }, "lint-staged": { - "frontend/src/**/*.{html,ts,scss,js,jsx,tsx}": [ + "client/src/**/*.{html,ts,scss,js,jsx,tsx}": [ "prettier --write", "eslint --fix" ], From 839ec39d080400a869692e6edb48c4ab09c1e144 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:42:03 +0000 Subject: [PATCH 3/7] Update SETUP.md to reflect directory rename from frontend to client Co-authored-by: Avdhesh-Varshney <114330097+Avdhesh-Varshney@users.noreply.github.com> --- SETUP.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SETUP.md b/SETUP.md index 76ed216be..b4442a44c 100644 --- a/SETUP.md +++ b/SETUP.md @@ -56,12 +56,12 @@ Open two terminals: Backend: ```bash -npm run server +npm run backend ``` Frontend: ```bash -npm run dev +npm run frontend ``` --- @@ -99,7 +99,7 @@ You do not need to set `MONGODB_URL` or run the backend. #### 4. Start the frontend ```bash -npm run dev +npm run frontend ``` Your app will connect directly to the deployed backend. From b4ec193ca130b092c4e3dba650999abf8167a839 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Sep 2025 17:59:13 +0000 Subject: [PATCH 4/7] Initial analysis: Found 187 TypeScript errors from JSX to TSX conversion Co-authored-by: Avdhesh-Varshney <114330097+Avdhesh-Varshney@users.noreply.github.com> --- client/package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/package-lock.json b/client/package-lock.json index cde5f968d..b2683e322 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,11 +1,11 @@ { - "name": "frontend", + "name": "client", "version": "1.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "frontend", + "name": "client", "version": "1.1.1", "license": "ISC", "dependencies": { From c17815827e06a70db951560bc6119f3edd312b0c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 8 Sep 2025 18:02:59 +0000 Subject: [PATCH 5/7] Fix core TypeScript errors: contexts, environment vars, and event handlers Co-authored-by: Avdhesh-Varshney <114330097+Avdhesh-Varshney@users.noreply.github.com> --- client/src/App.tsx | 23 +++++++- client/src/common/filter-pagination-data.tsx | 14 ++++- client/src/common/page-animation.tsx | 13 ++++- client/src/components/CommentCard.tsx | 2 +- client/src/components/InputBox.tsx | 12 +++- client/src/context/ThemeContext.tsx | 28 +++++++-- client/src/pages/Project.tsx | 61 +++++++++++++++++++- client/src/vite-env.d.ts | 10 ++++ 8 files changed, 144 insertions(+), 19 deletions(-) create mode 100644 client/src/vite-env.d.ts diff --git a/client/src/App.tsx b/client/src/App.tsx index 69e6c0424..2afddb430 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -1,7 +1,7 @@ import { Route, Routes } from "react-router-dom"; import Navbar from "./components/Navbar"; import UserAuthForm from "./pages/UserAuthForm"; -import { createContext, useEffect, useState } from "react"; +import { createContext, useEffect, useState, ReactNode } from "react"; import { lookInSession } from "./common/session"; import Editor from "./pages/Editor"; import Home from "./pages/Home"; @@ -15,11 +15,28 @@ import EditProfile from "./pages/EditProfile"; import Notifications from "./pages/Notifications"; import ManageProjects from "./pages/ManageProjects"; -export const UserContext = createContext({}); +interface UserAuth { + access_token?: string | null; + username?: string; + profile_img?: string; + fullname?: string; + email?: string; + [key: string]: any; +} + +interface UserContextType { + userAuth: UserAuth; + setUserAuth: (auth: UserAuth) => void; +} + +export const UserContext = createContext({ + userAuth: { access_token: null }, + setUserAuth: () => {} +}); function App() { - const [userAuth, setUserAuth] = useState({}); + const [userAuth, setUserAuth] = useState({ access_token: null }); useEffect(() => { let userInSession = lookInSession("user"); diff --git a/client/src/common/filter-pagination-data.tsx b/client/src/common/filter-pagination-data.tsx index 062591351..637d0f38f 100644 --- a/client/src/common/filter-pagination-data.tsx +++ b/client/src/common/filter-pagination-data.tsx @@ -1,10 +1,18 @@ import axios from "axios"; -export const filterPaginationData = async ({ create_new_arr = false, state, data, page, countRoute, data_to_send = {}, user = undefined }) => { +export const filterPaginationData = async ({ create_new_arr = false, state, data, page, countRoute, data_to_send = {}, user = undefined }: { + create_new_arr?: boolean; + state: any; + data: any; + page: number; + countRoute: string; + data_to_send?: any; + user?: string; +}) => { - let obj; + let obj: any; - let headers = {}; + let headers: { headers?: { Authorization: string } } = {}; if (user) { headers.headers = { diff --git a/client/src/common/page-animation.tsx b/client/src/common/page-animation.tsx index 08ad26ed2..61dbb1b0d 100644 --- a/client/src/common/page-animation.tsx +++ b/client/src/common/page-animation.tsx @@ -1,7 +1,16 @@ import { AnimatePresence, motion } from "framer-motion"; -import React from "react"; +import React, { ReactNode } from "react"; -const AnimationWrapper = ({ children, keyValue, initial = { opacity: 0 }, animate = { opacity: 1 }, transition = { duration: 1 }, className }) => { +interface AnimationWrapperProps { + children: ReactNode; + keyValue: any; + initial?: { opacity: number }; + animate?: { opacity: number }; + transition?: { duration: number }; + className: any; +} + +const AnimationWrapper = ({ children, keyValue, initial = { opacity: 0 }, animate = { opacity: 1 }, transition = { duration: 1 }, className }: AnimationWrapperProps) => { return ( { Hide Reply :