diff --git a/findd/dowork/__pycache__/__init__.cpython-39.pyc b/findd/dowork/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..768aecec Binary files /dev/null and b/findd/dowork/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd/dowork/__pycache__/admin.cpython-39.pyc b/findd/dowork/__pycache__/admin.cpython-39.pyc new file mode 100644 index 00000000..3445273b Binary files /dev/null and b/findd/dowork/__pycache__/admin.cpython-39.pyc differ diff --git a/findd/dowork/__pycache__/apps.cpython-39.pyc b/findd/dowork/__pycache__/apps.cpython-39.pyc new file mode 100644 index 00000000..c09a5a1a Binary files /dev/null and b/findd/dowork/__pycache__/apps.cpython-39.pyc differ diff --git a/findd/dowork/__pycache__/models.cpython-39.pyc b/findd/dowork/__pycache__/models.cpython-39.pyc new file mode 100644 index 00000000..7137f67b Binary files /dev/null and b/findd/dowork/__pycache__/models.cpython-39.pyc differ diff --git a/findd/dowork/__pycache__/urls.cpython-39.pyc b/findd/dowork/__pycache__/urls.cpython-39.pyc new file mode 100644 index 00000000..9053c8d3 Binary files /dev/null and b/findd/dowork/__pycache__/urls.cpython-39.pyc differ diff --git a/findd/dowork/__pycache__/views.cpython-39.pyc b/findd/dowork/__pycache__/views.cpython-39.pyc new file mode 100644 index 00000000..6008a37a Binary files /dev/null and b/findd/dowork/__pycache__/views.cpython-39.pyc differ diff --git a/findd/dowork/migrations/__pycache__/__init__.cpython-39.pyc b/findd/dowork/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..5d75d47b Binary files /dev/null and b/findd/dowork/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd/findd/__pycache__/__init__.cpython-39.pyc b/findd/findd/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..9f6006b7 Binary files /dev/null and b/findd/findd/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd/findd/__pycache__/settings.cpython-39.pyc b/findd/findd/__pycache__/settings.cpython-39.pyc new file mode 100644 index 00000000..711f0fc0 Binary files /dev/null and b/findd/findd/__pycache__/settings.cpython-39.pyc differ diff --git a/findd/findd/__pycache__/urls.cpython-39.pyc b/findd/findd/__pycache__/urls.cpython-39.pyc new file mode 100644 index 00000000..a3087da5 Binary files /dev/null and b/findd/findd/__pycache__/urls.cpython-39.pyc differ diff --git a/findd/findd/__pycache__/views.cpython-39.pyc b/findd/findd/__pycache__/views.cpython-39.pyc new file mode 100644 index 00000000..563d3b38 Binary files /dev/null and b/findd/findd/__pycache__/views.cpython-39.pyc differ diff --git a/findd/findd/settings.py b/findd/findd/settings.py index f8c668db..919b2478 100644 --- a/findd/findd/settings.py +++ b/findd/findd/settings.py @@ -82,7 +82,7 @@ "default": { "ENGINE": "django.db.backends.mysql", "NAME": "findd", - "PASSWORD": "yourpassword", + "PASSWORD": "Sakshi@2001", "USER": "root", "HOST": "localhost", } diff --git a/findd/frontend/FINDD/package-lock.json b/findd/frontend/FINDD/package-lock.json index 641f1f8f..3741be88 100644 --- a/findd/frontend/FINDD/package-lock.json +++ b/findd/frontend/FINDD/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "dependencies": { "firebase": "^11.3.1", - "framer-motion": "^12.4.7", + "framer-motion": "^12.5.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.2.0", @@ -3290,13 +3290,13 @@ } }, "node_modules/framer-motion": { - "version": "12.4.7", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.4.7.tgz", - "integrity": "sha512-VhrcbtcAMXfxlrjeHPpWVu2+mkcoR31e02aNSR7OUS/hZAciKa8q6o3YN2mA1h+jjscRsSyKvX6E1CiY/7OLMw==", + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.5.0.tgz", + "integrity": "sha512-buPlioFbH9/W7rDzYh1C09AuZHAk2D1xTA1BlounJ2Rb9aRg84OXexP0GLd+R83v0khURdMX7b5MKnGTaSg5iA==", "license": "MIT", "dependencies": { - "motion-dom": "^12.4.5", - "motion-utils": "^12.0.0", + "motion-dom": "^12.5.0", + "motion-utils": "^12.5.0", "tslib": "^2.4.0" }, "peerDependencies": { @@ -4260,18 +4260,18 @@ } }, "node_modules/motion-dom": { - "version": "12.4.5", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.4.5.tgz", - "integrity": "sha512-Q2xmhuyYug1CGTo0jdsL05EQ4RhIYXlggFS/yPhQQRNzbrhjKQ1tbjThx5Plv68aX31LsUQRq4uIkuDxdO5vRQ==", + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.5.0.tgz", + "integrity": "sha512-uH2PETDh7m+Hjd1UQQ56yHqwn83SAwNjimNPE/kC+Kds0t4Yh7+29rfo5wezVFpPOv57U4IuWved5d1x0kNhbQ==", "license": "MIT", "dependencies": { - "motion-utils": "^12.0.0" + "motion-utils": "^12.5.0" } }, "node_modules/motion-utils": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz", - "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==", + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.5.0.tgz", + "integrity": "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA==", "license": "MIT" }, "node_modules/ms": { diff --git a/findd/frontend/FINDD/package.json b/findd/frontend/FINDD/package.json index 200d2198..56ac401a 100644 --- a/findd/frontend/FINDD/package.json +++ b/findd/frontend/FINDD/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "firebase": "^11.3.1", - "framer-motion": "^12.4.7", + "framer-motion": "^12.5.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.2.0", diff --git a/findd/frontend/FINDD/src/pages/Jobs.css b/findd/frontend/FINDD/src/pages/Jobs.css index d15b534a..9356b391 100644 --- a/findd/frontend/FINDD/src/pages/Jobs.css +++ b/findd/frontend/FINDD/src/pages/Jobs.css @@ -17,7 +17,7 @@ .job-box { width: 1278px; height: 1200px; - background: #fdbf62; + background: #f0f0dd; border-radius: 10px; padding: 20px; padding-top: 220px; @@ -31,8 +31,18 @@ font-family: Arial, sans-serif; font-size: 18px; margin-top: 700px; + transition: transform 0.3s ease-in-out; } +.job-box.left { + transform: translateX(-100%) rotate(-10deg); + opacity: 0; +} + +.job-box.right { + transform: translateX(100%) rotate(10deg); + opacity: 0; +} .job-header { text-align: center; padding: 20px 0; @@ -73,7 +83,7 @@ width: 1278px; max-height: 1200px; overflow-y: auto; - background: #fdbf62; + background: #f5d00328; border-radius: 10px; padding: 15px; /* margin-top: 10px; */ @@ -165,33 +175,45 @@ display: flex; align-items: center; justify-content: center; - margin-top: 62px; + margin-top: 93px; + /* border: 2px solid #222; */ + border-radius: 1rem; } .divider { margin-top: 150px; /* Increased margin to push it further down */ margin-bottom: 20px; + height: 5px; } .job-box { - width: 100vw; - height: calc(100vh - 60px); - max-height: calc(100vh - 60px); - font-size: 16px; + width: 97.5vw; + /* height: calc(100vh - 60px); */ + /* max-height: calc(100vh - 60px); */ + font-size: 26px; padding: 15px; + padding-top: 130px; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; align-items: center; + color: black; + border: 2px solid #555; + border-radius: 8px; } .applied-job-popup { font-size: 12px; } .job-description-container { - width: 90vw; - max-height: 180px; /* Slightly increased for better readability */ + width: 85vw; + height: auto; + min-height: 150px; + max-height: 60vh; /* Slightly increased for better readability */ overflow-y: auto; - padding: 10px; + /* padding: 10px; */ + border: 2px solid #888; + border-radius: 6px; + margin: 10px ; } } diff --git a/findd/frontend/FINDD/src/pages/Jobs.jsx b/findd/frontend/FINDD/src/pages/Jobs.jsx index 5f6a197a..202b6828 100644 --- a/findd/frontend/FINDD/src/pages/Jobs.jsx +++ b/findd/frontend/FINDD/src/pages/Jobs.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect, useRef } from "react"; import "./Jobs.css"; const jobsData = [ @@ -37,7 +37,7 @@ const jobsData = [ }, { id: 4, - title: "Cybersecurity Expert", + title: "Security expert", company: "Tesla", description: "Secure networks, prevent cyber attacks, and analyze threats.", location: "Austin, TX", @@ -48,7 +48,6 @@ const jobsData = [ } ]; - const JobsPage = () => { const [jobs, setJobs] = useState(jobsData); const [currentJobIndex, setCurrentJobIndex] = useState(0); @@ -56,6 +55,8 @@ const JobsPage = () => { const [startX, setStartX] = useState(null); const [isMobile, setIsMobile] = useState(window.innerWidth <= 768); const [showDescription, setShowDescription] = useState(false); + const [swipeDirection, setSwipeDirection] = useState(""); // 🔹 Track swipe animation + const jobBoxRef = useRef(null); // Detect screen size change useEffect(() => { @@ -72,14 +73,22 @@ const JobsPage = () => { setRecentlyApplied(jobs[currentJobIndex]); setTimeout(() => setRecentlyApplied(null), 500); } - handleNext(); + setSwipeDirection("right"); // 🔹 Trigger right swipe animation + setTimeout(() => { + handleNext(); + setSwipeDirection(""); // Reset animation class + }, 300); }; // Function to move to the next job const handleNext = () => { if (currentJobIndex < jobs.length - 1) { - setCurrentJobIndex(currentJobIndex + 1); - setShowDescription(false); // Reset description visibility when switching jobs + setSwipeDirection("left"); // 🔹 Trigger left swipe animation + setTimeout(() => { + setCurrentJobIndex(currentJobIndex + 1); + setSwipeDirection(""); // Reset animation class + setShowDescription(false); + }, 300); } }; @@ -106,8 +115,22 @@ const JobsPage = () => { // Swipe events for mobile const handleTouchStart = (e) => { if (!isMobile) return; + + const jobBox = jobBoxRef.current; + const divider = document.querySelector(".divider"); + + if (!jobBox || !divider) return; + + // Get the Y position of the divider relative to the viewport + const dividerRect = divider.getBoundingClientRect(); + const touchY = e.touches[0].clientY; // Get the Y position of the touch event + + // If touch starts below the divider, disable swipe + if (touchY > dividerRect.bottom) return; + setStartX(e.touches[0].clientX); }; + const handleTouchEnd = (e) => { if (!isMobile || !startX) return; @@ -138,53 +161,48 @@ const JobsPage = () => { )} -
- {jobs[currentJobIndex] ? ( - <> - {/* 🔹 Job Title & Company Section */} -
-

{jobs[currentJobIndex].title}

-

{jobs[currentJobIndex].company}

+
+ {jobs[currentJobIndex] ? ( + <> + {/* 🔹 Job Title & Company Section */} +
+

{jobs[currentJobIndex].title}

+

{jobs[currentJobIndex].company}

+
+ + {/* 🔹 Black Divider */} +
+ + {/* 🔹 Job Description Section */} +
+

Title of Job:

+

{jobs[currentJobIndex].title}

+ +

Job Description:

+

{jobs[currentJobIndex].description}

+ +

Location:

+

{jobs[currentJobIndex].location}

+ +

Years of Experience Required:

+

{jobs[currentJobIndex].experience}

+ +

Salary:

+

{jobs[currentJobIndex].salary}

+ +

Mode of Job:

+

{jobs[currentJobIndex].mode}

+ +

Time Duration of Job:

+

{jobs[currentJobIndex].duration}

+
+ + ) : ( +

No more jobs available

+ )}
- - {/* 🔹 Black Divider */} -
- - {/* 🔹 Job Description Section */} -
-

Title of Job:

-

{jobs[currentJobIndex].title}

- -

Job Description:

-

{jobs[currentJobIndex].description}

- -

Location:

-

{jobs[currentJobIndex].location}

- -

Years of Experience Required:

-

{jobs[currentJobIndex].experience}

- -

Salary:

-

{jobs[currentJobIndex].salary}

- -

Mode of Job:

-

{jobs[currentJobIndex].mode}

- -

Time Duration of Job:

-

{jobs[currentJobIndex].duration}

-
- - - ) : ( -

No more jobs available

- )} -
-
); }; export default JobsPage; - - - diff --git a/findd/frontend/FINDD/src/pages/Login.css b/findd/frontend/FINDD/src/pages/Login.css index 5c291742..b7374cbe 100644 --- a/findd/frontend/FINDD/src/pages/Login.css +++ b/findd/frontend/FINDD/src/pages/Login.css @@ -23,10 +23,11 @@ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; - width: 100%; + width: 95%; max-width: 400px; /* margin-top: -250px; */ gap: 10px; + padding-left: 20px; } .login-container label { @@ -43,6 +44,8 @@ border: 1px solid #ccc; border-radius: 5px; font-size: 14px; + background-color: white; + color: black; } .login-container button { @@ -61,4 +64,10 @@ .login-container button:hover { background-color: #1a252f; } - \ No newline at end of file + + @media (max-width: 600px) { + .login-container { + width: 115%; + padding: 20px; + } +} diff --git a/findd/frontend/FINDD/src/pages/RecruiterForm.css b/findd/frontend/FINDD/src/pages/RecruiterForm.css index ce246089..c9a4e607 100644 --- a/findd/frontend/FINDD/src/pages/RecruiterForm.css +++ b/findd/frontend/FINDD/src/pages/RecruiterForm.css @@ -42,9 +42,12 @@ width: 100%; padding: 10px; margin-bottom: 15px; + padding-left: 1px; border: 1px solid #ccc; border-radius: 5px; font-size: 14px; + background-color: white; + color: black; } /* Buttons */ @@ -85,10 +88,12 @@ margin-top: 10px; text-align: center; font-size: 14px; + padding-right: 100px; + color: black; } .login-link a { - color: #2c3e50; + color: #3491ee; font-weight: bold; text-decoration: none; } @@ -118,7 +123,7 @@ /* Responsive Design */ @media (max-width: 600px) { .recruiter-form-container form { - width: 90%; + width: 85%; padding: 20px; } diff --git a/findd/frontend/FINDD/vite.config.js b/findd/frontend/FINDD/vite.config.js index 7fc5d9cb..f075fa1d 100644 --- a/findd/frontend/FINDD/vite.config.js +++ b/findd/frontend/FINDD/vite.config.js @@ -5,12 +5,12 @@ import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()], // base: '/static/frontend/dev/', - // server: { - // cors: { - // // the origin you will be accessing via browser - // origin: 'http://my-backend.example.com', - // }, - // }, + server: { + host: '0.0.0.0', // Allows access from other devices + port: 5173, // Default Vite port, change if needed + strictPort: true, // Ensures the port does not change + cors: true, // Allows cross-origin requests if needed + }, build: { // generate .vite/manifest.json in outDir manifest: true, diff --git a/findd/frontend/__pycache__/__init__.cpython-39.pyc b/findd/frontend/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..bfd22dde Binary files /dev/null and b/findd/frontend/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd/frontend/__pycache__/admin.cpython-39.pyc b/findd/frontend/__pycache__/admin.cpython-39.pyc new file mode 100644 index 00000000..d9cd3978 Binary files /dev/null and b/findd/frontend/__pycache__/admin.cpython-39.pyc differ diff --git a/findd/frontend/__pycache__/apps.cpython-39.pyc b/findd/frontend/__pycache__/apps.cpython-39.pyc new file mode 100644 index 00000000..a2739623 Binary files /dev/null and b/findd/frontend/__pycache__/apps.cpython-39.pyc differ diff --git a/findd/frontend/__pycache__/models.cpython-39.pyc b/findd/frontend/__pycache__/models.cpython-39.pyc new file mode 100644 index 00000000..a3dbc384 Binary files /dev/null and b/findd/frontend/__pycache__/models.cpython-39.pyc differ diff --git a/findd/frontend/__pycache__/urls.cpython-39.pyc b/findd/frontend/__pycache__/urls.cpython-39.pyc new file mode 100644 index 00000000..97e54d60 Binary files /dev/null and b/findd/frontend/__pycache__/urls.cpython-39.pyc differ diff --git a/findd/frontend/__pycache__/views.cpython-39.pyc b/findd/frontend/__pycache__/views.cpython-39.pyc new file mode 100644 index 00000000..7b88a2dd Binary files /dev/null and b/findd/frontend/__pycache__/views.cpython-39.pyc differ diff --git a/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc b/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..8d28ef20 Binary files /dev/null and b/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd/getwork/__pycache__/__init__.cpython-39.pyc b/findd/getwork/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..7946f9b0 Binary files /dev/null and b/findd/getwork/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd/getwork/__pycache__/urls.cpython-39.pyc b/findd/getwork/__pycache__/urls.cpython-39.pyc new file mode 100644 index 00000000..8f5b7e6c Binary files /dev/null and b/findd/getwork/__pycache__/urls.cpython-39.pyc differ diff --git a/findd/getwork/__pycache__/views.cpython-39.pyc b/findd/getwork/__pycache__/views.cpython-39.pyc new file mode 100644 index 00000000..eb08f100 Binary files /dev/null and b/findd/getwork/__pycache__/views.cpython-39.pyc differ diff --git a/findd/home/__pycache__/__init__.cpython-39.pyc b/findd/home/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..b90c3f0c Binary files /dev/null and b/findd/home/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd/home/__pycache__/admin.cpython-39.pyc b/findd/home/__pycache__/admin.cpython-39.pyc new file mode 100644 index 00000000..7eac7312 Binary files /dev/null and b/findd/home/__pycache__/admin.cpython-39.pyc differ diff --git a/findd/home/__pycache__/apps.cpython-39.pyc b/findd/home/__pycache__/apps.cpython-39.pyc new file mode 100644 index 00000000..4111602f Binary files /dev/null and b/findd/home/__pycache__/apps.cpython-39.pyc differ diff --git a/findd/home/__pycache__/models.cpython-39.pyc b/findd/home/__pycache__/models.cpython-39.pyc new file mode 100644 index 00000000..5a6be344 Binary files /dev/null and b/findd/home/__pycache__/models.cpython-39.pyc differ diff --git a/findd/home/__pycache__/urls.cpython-39.pyc b/findd/home/__pycache__/urls.cpython-39.pyc new file mode 100644 index 00000000..cb3f0d8b Binary files /dev/null and b/findd/home/__pycache__/urls.cpython-39.pyc differ diff --git a/findd/home/__pycache__/views.cpython-39.pyc b/findd/home/__pycache__/views.cpython-39.pyc new file mode 100644 index 00000000..00a8c885 Binary files /dev/null and b/findd/home/__pycache__/views.cpython-39.pyc differ diff --git a/findd/home/migrations/__pycache__/__init__.cpython-39.pyc b/findd/home/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 00000000..7c0942c1 Binary files /dev/null and b/findd/home/migrations/__pycache__/__init__.cpython-39.pyc differ diff --git a/findd_frontend/FINDD/package-lock.json b/findd_frontend/FINDD/package-lock.json index 641f1f8f..bcb38201 100644 --- a/findd_frontend/FINDD/package-lock.json +++ b/findd_frontend/FINDD/package-lock.json @@ -25,7 +25,7 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", - "vite": "^6.1.0" + "vite": "^6.2.2" } }, "node_modules/@ampproject/remapping": { @@ -325,9 +325,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", "cpu": [ "ppc64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", "cpu": [ "arm" ], @@ -359,9 +359,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", "cpu": [ "arm64" ], @@ -376,9 +376,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", "cpu": [ "x64" ], @@ -393,9 +393,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", "cpu": [ "arm64" ], @@ -410,9 +410,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", "cpu": [ "x64" ], @@ -427,9 +427,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", "cpu": [ "arm64" ], @@ -444,9 +444,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", "cpu": [ "x64" ], @@ -461,9 +461,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", "cpu": [ "arm" ], @@ -478,9 +478,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", "cpu": [ "arm64" ], @@ -495,9 +495,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", "cpu": [ "ia32" ], @@ -512,9 +512,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", "cpu": [ "loong64" ], @@ -529,9 +529,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", "cpu": [ "mips64el" ], @@ -546,9 +546,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", "cpu": [ "ppc64" ], @@ -563,9 +563,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", "cpu": [ "riscv64" ], @@ -580,9 +580,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", "cpu": [ "s390x" ], @@ -597,9 +597,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", "cpu": [ "x64" ], @@ -614,9 +614,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", "cpu": [ "arm64" ], @@ -631,9 +631,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", "cpu": [ "x64" ], @@ -648,9 +648,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", "cpu": [ "arm64" ], @@ -665,9 +665,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", "cpu": [ "x64" ], @@ -682,9 +682,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", "cpu": [ "x64" ], @@ -699,9 +699,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", "cpu": [ "arm64" ], @@ -716,9 +716,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", "cpu": [ "ia32" ], @@ -733,9 +733,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", "cpu": [ "x64" ], @@ -2881,9 +2881,9 @@ } }, "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2894,31 +2894,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" } }, "node_modules/escalade": { @@ -5445,14 +5445,14 @@ } }, "node_modules/vite": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.1.tgz", - "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.2.tgz", + "integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.5.2", + "esbuild": "^0.25.0", + "postcss": "^8.5.3", "rollup": "^4.30.1" }, "bin": { diff --git a/findd_frontend/FINDD/package.json b/findd_frontend/FINDD/package.json index 200d2198..40788426 100644 --- a/findd_frontend/FINDD/package.json +++ b/findd_frontend/FINDD/package.json @@ -28,6 +28,6 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", - "vite": "^6.1.0" + "vite": "^6.2.2" } } diff --git a/findd_frontend/FINDD/src/pages/Jobs.css b/findd_frontend/FINDD/src/pages/Jobs.css index c0ec8bd3..d15b534a 100644 --- a/findd_frontend/FINDD/src/pages/Jobs.css +++ b/findd_frontend/FINDD/src/pages/Jobs.css @@ -10,30 +10,46 @@ background-color: white; padding-left: 6px; padding-right: 5px; + margin-top: 65px; } /* Centered Job Box */ .job-box { - width: 1290px; - height: 640px; + width: 1278px; + height: 1200px; background: #fdbf62; border-radius: 10px; padding: 20px; + padding-top: 220px; text-align: center; box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; justify-content: center; + align-items: center; position: relative; font-family: Arial, sans-serif; font-size: 18px; - margin-top: 35px; + margin-top: 700px; +} + +.job-header { + text-align: center; + padding: 20px 0; +} + +.divider { + width: 100%; + height: 2px; + background-color: black; + margin-top: 190px; + margin-bottom: 50px; } /* Applied Job Notification */ .applied-job-popup { position: absolute; - top: 20px; + top: 100px; left: 50%; transform: translateX(-50%); background: green; @@ -43,106 +59,49 @@ font-size: 16px; animation: fadeOut 2s; z-index: 10; - display: none; - /* margin-top: 100px; */ + display: block; + transition: opacity 0.2s ease-in-out; + opacity: 0; } @keyframes fadeOut { 0% { opacity: 1; } - 100% { opacity: 0; } -} - -/* More Details Clickable Text */ -.more-details { - color: blue; - text-decoration: none; - cursor: pointer; - font-size: 16px; - margin-top: 10px; -} - -.more-details:hover { - text-decoration: underline; } -/* Mobile Overlay (Covers only 50% of screen) */ -.job-overlay { - display: none; /* Hidden by default */ - position: fixed; - bottom: 0; - left: 0; - width: 100%; - height: 50vh; /* Covers only half of the screen */ - background: rgba(0, 0, 0, 0.8); - backdrop-filter: blur(5px); - color: white; - align-items: center; - justify-content: center; - font-size: 18px; - text-align: center; - padding: 20px; - z-index: 999; -} - -/* Show Overlay when Active */ -.job-overlay.active { - display: flex; -} - -/* Close Button for Popup */ -.close-overlay, .close-popup { - position: absolute; - top: 10px; - right: 15px; - font-size: 24px; - cursor: pointer; - color: white; -} - -/* Desktop Popup */ -.popup { - display: none; /* Initially hidden */ - position: fixed; - top: 58%; - left: 50%; - transform: translate(-50%, -50%); - width: 400px; - height: 150px; - max-width: 90%; - background: white; - padding: 20px; - box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2); +/* ✅ New Feature: Scrollable Job Description */ +.job-description-container { + width: 1278px; + max-height: 1200px; + overflow-y: auto; + background: #fdbf62; border-radius: 10px; - z-index: 1000; - text-align: center; + padding: 15px; + /* margin-top: 10px; */ + text-align: left; + /* box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); */ + /* margin-top: 20px; */ + transition: opacity 0.3s ease-in-out; } -/* Show Popup */ -.popup.active { - display: block; +.job-description-container h3 { + font-size: 18px; + font-weight: bold; + margin-bottom: 5px; + color: #222; } -/* Close Button for Popup */ -.close-popup { - color: black; - position: absolute; - font-size: 24px; - font-weight: bold; - top: 10px; - right: 10px; - cursor: pointer; +.job-description-container p { + font-size: 16px; + color: #333; + line-height: 1.5; + margin-bottom: 10px; } -/* Base Styles (Applies to Mobile) */ -.jobs-container { - padding-top: 60px; /* Adjust based on navbar height */ - height: calc(100vh - 60px); /* Full height minus navbar */ - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 100%; - background-color: white; +.job-description { + font-size: 16px; + color: #333; + line-height: 1.5; + /* margin-top: 600px; */ } /* Responsive Adjustments */ @@ -158,52 +117,122 @@ top: 15%; left: 50%; } + .job-description-container { + width: 60%; + } } /* Small Tablets & Large Phones (768px and below) */ @media (max-width: 768px) { .jobs-container { - padding: 50px 20px; + padding: 0; + margin: 0; + height: 100vh; + width: 100vw; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; } .job-box { - width: 90%; - height: 100%; + width: 100vw; + height: calc(100vh - 60px); max-height: calc(100vh - 60px); /* Full screen minus navbar */ - padding: 20px; display: flex; flex-direction: column; justify-content: center; text-align: center; font-size: 18px; + box-sizing: border-box; + margin: 0; } .applied-job-popup { font-size: 14px; } + .job-description-container { + width: 90vw; + max-height: 180px; + } } /* ✅ Mobile Screens (480px and below) */ @media (max-width: 480px) { .jobs-container { - height: auto; - padding: 20px; + height: 100%; + width: 100vw; + margin: 0; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + margin-top: 62px; + } + + .divider { + margin-top: 150px; /* Increased margin to push it further down */ + margin-bottom: 20px; } .job-box { - width: 95%; + width: 100vw; + height: calc(100vh - 60px); + max-height: calc(100vh - 60px); font-size: 16px; padding: 15px; + box-sizing: border-box; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } .applied-job-popup { font-size: 12px; } + .job-description-container { + width: 90vw; + max-height: 180px; /* Slightly increased for better readability */ + overflow-y: auto; + padding: 10px; + } } /* ✅ Extra Small Screens (360px and below) */ @media (max-width: 360px) { + .jobs-container { + width: 100vw; + height: 1200px; + padding: 0; + margin: 0; + margin-top: -165px; + display: flex; + align-items: center; + justify-content: center; + } + .job-box { - width: 95%; - font-size: 16px; + width: 100vw; + min-height: 1200px; /* Increase height dynamically */ + font-size: 14px; + padding: 10px; + padding-top: 465px; + display: flex; + flex-direction: column; + justify-content: center; + } + + .divider { + margin-top: 300px; /* Keep reasonable margin */ + margin-bottom: 20px; } + .applied-job-popup { font-size: 10px; + padding: 5px; + margin-top: 150px; + } + + .job-description-container { + width: 90vw; + max-height: 400px; /* Adjusted for small screens */ + overflow-y: auto; } -} \ No newline at end of file +} diff --git a/findd_frontend/FINDD/src/pages/Jobs.jsx b/findd_frontend/FINDD/src/pages/Jobs.jsx index 609c4931..5f6a197a 100644 --- a/findd_frontend/FINDD/src/pages/Jobs.jsx +++ b/findd_frontend/FINDD/src/pages/Jobs.jsx @@ -2,20 +2,60 @@ import React, { useState, useEffect } from "react"; import "./Jobs.css"; const jobsData = [ - { id: 1, title: "Software Engineer", company: "Google", description: "Develop scalable applications using React and Node.js." }, - { id: 2, title: "Frontend Developer", company: "Amazon", description: "Build interactive UIs using modern frameworks like React and Vue." }, - { id: 3, title: "Data Analyst", company: "Microsoft", description: "Analyze data trends using Python, SQL, and Power BI." }, - { id: 4, title: "Cybersecurity Expert", company: "Tesla", description: "Secure networks, prevent cyber attacks, and analyze threats." }, + { + id: 1, + title: "Software Engineer", + company: "Google", + description: "Develop scalable applications using React and Node.js.", + location: "Mountain View, CA", + experience: "2+ years", + salary: "$120,000 - $150,000 per year", + mode: "Full-time", + duration: "Permanent" + }, + { + id: 2, + title: "Frontend Developer", + company: "Amazon", + description: "Build interactive UIs using modern frameworks like React and Vue.", + location: "Seattle, WA", + experience: "1-3 years", + salary: "$100,000 - $130,000 per year", + mode: "Hybrid", + duration: "Permanent" + }, + { + id: 3, + title: "Data Analyst", + company: "Microsoft", + description: "Analyze data trends using Python, SQL, and Power BI.", + location: "Redmond, WA", + experience: "3+ years", + salary: "$90,000 - $120,000 per year", + mode: "Remote", + duration: "6-month contract" + }, + { + id: 4, + title: "Cybersecurity Expert", + company: "Tesla", + description: "Secure networks, prevent cyber attacks, and analyze threats.", + location: "Austin, TX", + experience: "4+ years", + salary: "$130,000 - $160,000 per year", + mode: "Full-time", + duration: "Permanent" + } ]; + const JobsPage = () => { const [jobs, setJobs] = useState(jobsData); const [currentJobIndex, setCurrentJobIndex] = useState(0); const [recentlyApplied, setRecentlyApplied] = useState(null); const [startX, setStartX] = useState(null); const [isMobile, setIsMobile] = useState(window.innerWidth <= 768); - const [overlayJob, setOverlayJob] = useState(null); - const [popupJob, setPopupJob] = useState(null); // Popup for Desktop + const [showDescription, setShowDescription] = useState(false); // Detect screen size change useEffect(() => { @@ -28,19 +68,18 @@ const JobsPage = () => { // Function to handle applying for a job const handleApply = () => { - if(popupJob) return; if (currentJobIndex < jobs.length) { setRecentlyApplied(jobs[currentJobIndex]); - setTimeout(() => setRecentlyApplied(null), 3000); + setTimeout(() => setRecentlyApplied(null), 500); } handleNext(); }; // Function to move to the next job const handleNext = () => { - if(popupJob) return; if (currentJobIndex < jobs.length - 1) { setCurrentJobIndex(currentJobIndex + 1); + setShowDescription(false); // Reset description visibility when switching jobs } }; @@ -48,7 +87,8 @@ const JobsPage = () => { useEffect(() => { if (!isMobile) { const handleClick = (e) => { - if(popupJob) return; + const jobsContainer = document.querySelector(".jobs-container"); + if (!jobsContainer.contains(e.target)) return; if (e.clientX < window.innerWidth / 2) { handleNext(); // Left click → next job } else { @@ -61,7 +101,7 @@ const JobsPage = () => { document.removeEventListener("click", handleClick); }; } - }, [currentJobIndex, isMobile, popupJob]); + }, [currentJobIndex, isMobile]); // Swipe events for mobile const handleTouchStart = (e) => { @@ -84,69 +124,67 @@ const JobsPage = () => { setStartX(null); }; - // Show overlay for mobile - const showOverlay = (job) => { - if (isMobile) { - setOverlayJob(job); - } else { - setPopupJob(job); // Open popup on desktop - } - }; - - // Close overlay - const closeOverlay = (e) => { - e.stopPropagation(); - setOverlayJob(null); - setPopupJob(null); + // Handle Scroll to Show Description + const handleScroll = (e) => { + const scrollTop = e.target.scrollTop; + setShowDescription(scrollTop > 50); }; return ( -
+
{recentlyApplied && (
Applied to {recentlyApplied.title} at {recentlyApplied.company}
)} -
- {jobs[currentJobIndex] ? ( - <> -

{jobs[currentJobIndex].title}

-

{jobs[currentJobIndex].company}

- showOverlay(jobs[currentJobIndex])}> - More Details - - - ) : ( -

No more jobs available

- )} +
+ {jobs[currentJobIndex] ? ( + <> + {/* 🔹 Job Title & Company Section */} +
+

{jobs[currentJobIndex].title}

+

{jobs[currentJobIndex].company}

- {/* Overlay for Mobile */} - {overlayJob && ( -
- × -

{overlayJob.title}

-

Company: {overlayJob.company}

-

{overlayJob.description}

-
- )} + {/* 🔹 Black Divider */} +
+ + {/* 🔹 Job Description Section */} +
+

Title of Job:

+

{jobs[currentJobIndex].title}

+ +

Job Description:

+

{jobs[currentJobIndex].description}

+ +

Location:

+

{jobs[currentJobIndex].location}

+ +

Years of Experience Required:

+

{jobs[currentJobIndex].experience}

+ +

Salary:

+

{jobs[currentJobIndex].salary}

+ +

Mode of Job:

+

{jobs[currentJobIndex].mode}

+ +

Time Duration of Job:

+

{jobs[currentJobIndex].duration}

+
+ + + ) : ( +

No more jobs available

+ )} +
- {/* Popup for Desktop */} - {popupJob && !isMobile && ( -
- × -

{popupJob.title}

-

Company: {popupJob.company}

-

{popupJob.description}

-
- )}
); }; -export default JobsPage; \ No newline at end of file +export default JobsPage; + + +