diff --git a/app/admin/applications/page.tsx b/app/admin/applications/page.tsx new file mode 100644 index 0000000..6087a1a --- /dev/null +++ b/app/admin/applications/page.tsx @@ -0,0 +1,58 @@ +export default function ApplicationsPage() { + const applications = [ + { + id: 1, + name: "Jane Doe", + email: "jane@example.com", + role: "Frontend Engineer", + status: "Pending", + }, + { + id: 2, + name: "John Smith", + email: "john@example.com", + role: "Backend Engineer", + status: "Accepted", + }, + { + id: 3, + name: "Alice Johnson", + email: "alice@example.com", + role: "Product Designer", + status: "Rejected", + }, + ]; + + return ( +
+

+ Applications +

+ +
+ + + + + + + + + + + + {applications.map((app) => ( + + + + + + + ))} + +
NameEmailRoleStatus
{app.name}{app.email}{app.role}{app.status}
+
+
+ ); + } + \ No newline at end of file diff --git a/app/admin/layout.tsx b/app/admin/layout.tsx new file mode 100644 index 0000000..1b7703b --- /dev/null +++ b/app/admin/layout.tsx @@ -0,0 +1,6 @@ +import React from "react"; +import AdminLayout from "@/components/admin/AdminLayout"; + +export default function Layout({ children }: { children: React.ReactNode }) { + return {children}; +} diff --git a/app/admin/page.tsx b/app/admin/page.tsx new file mode 100644 index 0000000..16a284c --- /dev/null +++ b/app/admin/page.tsx @@ -0,0 +1,11 @@ +export default function AdminPage() { + return ( +
+

Admin Dashboard

+

+ Base admin layout shell is working & No auth yet. +

+
+ ); + } + \ No newline at end of file diff --git a/components/admin/AdminLayout.tsx b/components/admin/AdminLayout.tsx new file mode 100644 index 0000000..14de68d --- /dev/null +++ b/components/admin/AdminLayout.tsx @@ -0,0 +1,20 @@ +import React from "react"; + +export default function AdminLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( +
+ {/* Sidebar placeholder */} + + + {/* Content area */} +
{children}
+
+ ); +} diff --git a/package-lock.json b/package-lock.json index 2fcab37..7ff0144 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,8 +16,8 @@ "mongoose": "^8.9.0", "next": "^15.0.3", "playwright": "^1.49.0", - "react": "19.0.0-rc-66855b96-20241106", - "react-dom": "19.0.0-rc-66855b96-20241106", + "react": "^19.0.0-rc-66855b96-20241106", + "react-dom": "^19.0.0-rc-66855b96-20241106", "tailwind-merge": "^2.5.5", "zod": "^4.1.12" }, @@ -95,8 +95,7 @@ "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.3.15.tgz", "integrity": "sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@electric-sql/pglite-socket": { "version": "0.0.20", @@ -957,7 +956,6 @@ "version": "1.49.0", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.49.0.tgz", "integrity": "sha512-DMulbwQURa8rNIQrf94+jPJQ4FmOVdpE5ZppRNvWVjvhC+6sOeo28r8MgIpQRYouXRtt/FCCXU7zn20jnHR4Qw==", - "peer": true, "dependencies": { "playwright": "1.49.0" }, @@ -1180,7 +1178,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "devOptional": true, - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -1246,7 +1243,6 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.15.0.tgz", "integrity": "sha512-7n59qFpghG4uazrF9qtGKBZXn7Oz4sOMm8dwNWDQY96Xlm2oX67eipqcblDj+oY1lLCbf1oltMZFpUso66Kl1A==", "dev": true, - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.15.0", "@typescript-eslint/types": "8.15.0", @@ -1422,7 +1418,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2536,7 +2531,6 @@ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -2712,7 +2706,6 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.8", @@ -3576,7 +3569,6 @@ "integrity": "sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=16.9.0" } @@ -5078,7 +5070,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.1.1", @@ -5329,7 +5320,8 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/prop-types": { "version": "15.8.1", @@ -5421,7 +5413,7 @@ "version": "19.0.0-rc-66855b96-20241106", "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-66855b96-20241106.tgz", "integrity": "sha512-klH7xkT71SxRCx4hb1hly5FJB21Hz0ACyxbXYAECEqssUjtJeFUAaI2U1DgJAzkGEnvEm3DkxuBchMC/9K4ipg==", - "peer": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -5430,7 +5422,7 @@ "version": "19.0.0-rc-66855b96-20241106", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-66855b96-20241106.tgz", "integrity": "sha512-D25vdaytZ1wFIRiwNU98NPQ/upS2P8Co4/oNoa02PzHbh8deWdepjm5qwZM/46OdSiGv4WSWwxP55RO9obqJEQ==", - "peer": true, + "license": "MIT", "dependencies": { "scheduler": "0.25.0-rc-66855b96-20241106" }, @@ -6169,7 +6161,6 @@ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.15.tgz", "integrity": "sha512-r4MeXnfBmSOuKUWmXe6h2CcyfzJCEk4F0pptO5jlnYSIViUkVmsawj80N5h2lO3gwcmSb4n3PuN+e+GC1Guylw==", "dev": true, - "peer": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -6407,7 +6398,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "dev": true, - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" diff --git a/package.json b/package.json index 3f76db9..33bd87a 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ "mongoose": "^8.9.0", "next": "^15.0.3", "playwright": "^1.49.0", - "react": "19.0.0-rc-66855b96-20241106", - "react-dom": "19.0.0-rc-66855b96-20241106", + "react": "^19.0.0-rc-66855b96-20241106", + "react-dom": "^19.0.0-rc-66855b96-20241106", "tailwind-merge": "^2.5.5", "zod": "^4.1.12" },