diff --git a/package-lock.json b/package-lock.json index 9c4600b..c259c77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,8 @@ "npm": "^11.4.1", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-icons": "^5.5.0" + "react-icons": "^5.5.0", + "react-router-dom": "^7.12.0" }, "devDependencies": { "@eslint/js": "^9.21.0", @@ -1806,6 +1807,19 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -5947,6 +5961,44 @@ "react": "*" } }, + "node_modules/react-router": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.12.0.tgz", + "integrity": "sha512-kTPDYPFzDVGIIGNLS5VJykK0HfHLY5MF3b+xj0/tTyNYL1gF1qs7u67Z9jEhQk2sQ98SUaHxlG31g1JtF7IfVw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.12.0.tgz", + "integrity": "sha512-pfO9fiBcpEfX4Tx+iTYKDtPbrSLLCbwJ5EqP+SPYQu1VYCXdy79GSj0wttR0U4cikVdlImZuEZ/9ZNCgoaxwBA==", + "license": "MIT", + "dependencies": { + "react-router": "7.12.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -6095,6 +6147,12 @@ "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", "license": "MIT" }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/package.json b/package.json index ef2d2bf..b6a59e8 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,8 @@ "npm": "^11.4.1", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-icons": "^5.5.0" + "react-icons": "^5.5.0", + "react-router-dom": "^7.12.0" }, "devDependencies": { "@eslint/js": "^9.21.0", diff --git a/src/App.jsx b/src/App.jsx index 7943bbe..d85b192 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,10 +1,19 @@ -import CompilerLandingPage from "./pages/CompilerLandingPage"; +// src/App.jsx +import { BrowserRouter, Routes, Route } from "react-router-dom"; + +import CompilerLandingPage from "./pages/CodeEditor"; +import CodeEditor from "./pages/CodeEditor"; function App() { return ( -
+ Select or create a file to start editing +
+ ); + } + + return (Select or create a file to start editing
); }; diff --git a/src/components/CompilerLandingPage.jsx b/src/components/CompilerLandingPage.jsx new file mode 100644 index 0000000..5008165 --- /dev/null +++ b/src/components/CompilerLandingPage.jsx @@ -0,0 +1,56 @@ +// src/pages/CompilerLandingPage.jsx +import { useNavigate } from "react-router-dom"; +import { motion } from "framer-motion"; +import { FiPlay } from "react-icons/fi"; +import { useTheme } from "../context/ThemeContext"; + +const CompilerLandingPage = () => { + const navigate = useNavigate(); + const { theme } = useTheme(); + + return ( +