From d79ed4ffe9062805ed9a3378f2a7ac891c3a1d38 Mon Sep 17 00:00:00 2001 From: sidchigo Date: Sun, 18 May 2025 20:18:29 +0530 Subject: [PATCH 01/16] build: remove .env file --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index fd3dbb5..b9f8d23 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,5 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + +.env \ No newline at end of file From 14c1d3e8b33b444eb334b67177a1a8ae8b71b066 Mon Sep 17 00:00:00 2001 From: sidchigo Date: Tue, 20 May 2025 00:36:46 +0530 Subject: [PATCH 02/16] chore: add zustand and start template for proposal --- .env | 1 - .gitignore | 5 ++- package-lock.json | 32 ++++++++++++++++++- package.json | 3 +- src/app/page.js | 45 +++++++++++++++++++++++++- src/components/form.jsx | 5 ++- src/components/template.jsx | 59 +++++++++++++++++++++++++++++++++++ src/store/proposalSlice.js | 29 +++++++++++++++++ src/store/useProposalStore.js | 6 ++++ src/styles/globals.css | 2 +- 10 files changed, 178 insertions(+), 9 deletions(-) create mode 100644 src/components/template.jsx create mode 100644 src/store/proposalSlice.js create mode 100644 src/store/useProposalStore.js diff --git a/.env b/.env index 798560f..4ecf3cb 100644 --- a/.env +++ b/.env @@ -1,4 +1,3 @@ -MONGODB_URI = mongodb+srv://developersid20:ICoGNENuiwDgxb09@cluster-zero.ombtc.mongodb.net/?retryWrites=true&w=majority&appName=Cluster-Zero NEXT_PUBLIC_FIREBASE_API_KEY="AIzaSyDCq32D5XwWnkfmUuCzwVxhjddWdWwgGBM" NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN="project-proposal-gen.firebaseapp.com" NEXT_PUBLIC_FIREBASE_PROJECT_ID="project-proposal-gen" diff --git a/.gitignore b/.gitignore index b9f8d23..86f0706 100644 --- a/.gitignore +++ b/.gitignore @@ -27,12 +27,11 @@ yarn-error.log* # local env files .env*.local +.env # vercel .vercel # typescript *.tsbuildinfo -next-env.d.ts - -.env \ No newline at end of file +next-env.d.ts \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ae43758..23c2d18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,8 @@ "react": "^18", "react-dom": "^18", "react-firebase-hooks": "^5.1.1", - "react-hot-toast": "^2.4.1" + "react-hot-toast": "^2.4.1", + "zustand": "^5.0.4" }, "devDependencies": { "eslint": "^8", @@ -6931,6 +6932,35 @@ "resolved": "https://registry.npmjs.org/yoga-layout/-/yoga-layout-2.0.1.tgz", "integrity": "sha512-tT/oChyDXelLo2A+UVnlW9GU7CsvFMaEnd9kVFsaiCQonFAXd3xrHhkLYu+suwwosrAEQ746xBU+HvYtm1Zs2Q==", "license": "MIT" + }, + "node_modules/zustand": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.4.tgz", + "integrity": "sha512-39VFTN5InDtMd28ZhjLyuTnlytDr9HfwO512Ai4I8ZABCoyAj4F1+sr7sD1jP/+p7k77Iko0Pb5NhgBFDCX0kQ==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index 534bc93..efa7598 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,8 @@ "react": "^18", "react-dom": "^18", "react-firebase-hooks": "^5.1.1", - "react-hot-toast": "^2.4.1" + "react-hot-toast": "^2.4.1", + "zustand": "^5.0.4" }, "devDependencies": { "eslint": "^8", diff --git a/src/app/page.js b/src/app/page.js index 21e8cb2..d0c92d7 100644 --- a/src/app/page.js +++ b/src/app/page.js @@ -1,5 +1,48 @@ +"use client"; import Form from "@/components/form"; +import Template from "@/components/template"; +import { useProposalStore } from "@/store/useProposalStore"; + +const props = { + clientName: "Client Name", + projectTitle: "Project Title", + projectDescription: + "Project Description, Project Description, Project Description, Project Description, Project Description", + pricing: "Pricing", + termsConditions: "Terms and Conditions", + timeline: "6 months", + scope: "Scope of the project", +}; export default function Home() { - return
; + const proposal = useProposalStore((state) => state.proposal); + console.log({ proposal: JSON.stringify(proposal) }); + const { + clientName, + projectTitle, + projectDescription, + timeline, + scope, + pricing, + termsConditions, + } = proposal; + return ( +
+
+ +
+ +
+