diff --git a/package-lock.json b/package-lock.json index 375c14a..6045d87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1539,6 +1539,7 @@ "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.18.0" } @@ -1549,6 +1550,7 @@ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "devOptional": true, "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1559,6 +1561,7 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "devOptional": true, "license": "MIT", + "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -1583,6 +1586,7 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1783,6 +1787,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", @@ -2110,6 +2115,7 @@ "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", @@ -2684,6 +2690,7 @@ "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -3135,6 +3142,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -3311,6 +3319,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -3323,6 +3332,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -3885,6 +3895,7 @@ "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", diff --git a/src/App.tsx b/src/App.tsx index 80ddde8..6994472 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,6 +4,7 @@ import { BrowserRouter, Route, Routes } from "react-router-dom"; import Index from "./pages/Index"; import Worlds from "./pages/Worlds"; import FitnessWorld from "./pages/FitnessWorld"; +import FinanceWorld from "./pages/FinanceWorld"; import StudyWorld from "./pages/StudyWorld"; import NotFound from "./pages/NotFound"; import SocialWorld from "./pages/SocialWorld"; @@ -25,6 +26,7 @@ const App = () => ( } /> } /> } /> + } /> } /> } /> } /> diff --git a/src/data/financeQuests.ts b/src/data/financeQuests.ts new file mode 100644 index 0000000..6ad37f5 --- /dev/null +++ b/src/data/financeQuests.ts @@ -0,0 +1,15 @@ +export interface Quest { + id: string; + title: string; +} + +export const financeQuests = [ + { id: "f1", title: "Track today's expenses" }, + { id: "f2", title: "Save ₹50" }, + { id: "f3", title: "Avoid impulse buying" }, + { id: "f4", title: "Review bank balance" }, + { id: "f5", title: "Learn one finance concept" }, + { id: "f6", title: "Set a weekly budget" }, + { id: "f7", title: "Cook instead of ordering" }, + { id: "f8", title: "Compare prices before buying" }, +]; \ No newline at end of file diff --git a/src/pages/FinanceWorld.tsx b/src/pages/FinanceWorld.tsx new file mode 100644 index 0000000..af4bcd8 --- /dev/null +++ b/src/pages/FinanceWorld.tsx @@ -0,0 +1,17 @@ +import WorldLayout from "@/components/WorldLayout"; +import QuestList from "@/components/QuestList"; +import { financeQuests } from "@/data/financeQuests"; + +const FinanceWorld = () => { + return ( + + + + ); +}; + +export default FinanceWorld; \ No newline at end of file diff --git a/src/pages/Worlds.tsx b/src/pages/Worlds.tsx index 4ccdcb1..a0b056a 100644 --- a/src/pages/Worlds.tsx +++ b/src/pages/Worlds.tsx @@ -16,6 +16,9 @@ const worlds: WorldCard[] = [ { id: "study", name: "Study World", emoji: "📚", description: "Learn something new every day.", active: true, path: "/worlds/study" }, { id: "social", name: "Social World", emoji: "🤝", description: "Build connections, grow your network.", active: true, path: "/worlds/social" }, { id: "creative", name: "Creative World", emoji: "🎨", description: "Express yourself through creation.", active: true, path: "/worlds/creative" }, + { + id: "finance", name: "Finance World", emoji: "💰", description: "Build smart money habits.", active: true, path: "/worlds/finance", + }, ]; const triggerConfetti = () => { @@ -72,7 +75,7 @@ const Worlds = () => { navigate(world.path!); }, 150); }; - + return (
{/* Header */} @@ -134,7 +137,7 @@ const Worlds = () => { return (
{ })} {/* Add world */} + +