From e3f649f292524857846dc9fbb40aee4b42a5001c Mon Sep 17 00:00:00 2001 From: Tal Jacob Date: Fri, 12 Sep 2025 14:32:55 +0300 Subject: [PATCH] Add Default Search Parameters For Recommended Jobs Signed-off-by: Tal Jacob --- .../src/components/LinkedinJobs.tsx | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/nextstep-frontend/src/components/LinkedinJobs.tsx b/nextstep-frontend/src/components/LinkedinJobs.tsx index 2a16744..78dc1c2 100644 --- a/nextstep-frontend/src/components/LinkedinJobs.tsx +++ b/nextstep-frontend/src/components/LinkedinJobs.tsx @@ -1,5 +1,5 @@ import type React from "react" -import { useState } from "react" +import { useState, useEffect } from "react" import { Box, Typography, @@ -74,11 +74,17 @@ const LinkedinJobs: React.FC = ({ skills, selectedRole, }) => { - const [settings, setSettings] = useState({ + const DEFAULTS: Omit = { location: "Israel", dateSincePosted: "past month", jobType: "full time", experienceLevel: "all", + } + const [settings, setSettings] = useState({ + location: DEFAULTS.location, + dateSincePosted: DEFAULTS.dateSincePosted, + jobType: DEFAULTS.jobType, + experienceLevel: DEFAULTS.experienceLevel, skills: skills.slice(0, 3), // Limit to first 3 skills }) const theme = useTheme() @@ -89,6 +95,21 @@ const LinkedinJobs: React.FC = ({ const [fullScreenSettings, setFullScreenSettings] = useState({ ...settings }) const [newSkill, setNewSkill] = useState("") + // Auto-fill compact settings when empty + useEffect(() => { + setSettings((prev) => { + if (prev.skills.length > 0) return prev + return { + ...prev, + location: prev.location || DEFAULTS.location, + dateSincePosted: prev.dateSincePosted || DEFAULTS.dateSincePosted, + jobType: prev.jobType || DEFAULTS.jobType, + experienceLevel: prev.experienceLevel || DEFAULTS.experienceLevel, + skills: prev.skills.length === 0 && skills.length > 0 ? skills.slice(0, 3) : prev.skills, + } + }) + }, [skills]) + const handleSettingChange = (key: keyof LinkedInSettings, value: string) => { setSettings((prev) => ({ ...prev, [key]: value })) } @@ -147,6 +168,22 @@ const LinkedinJobs: React.FC = ({ })) } + // Auto-fill full-screen settings when empty + useEffect(() => { + if (!fullScreen) return + setFullScreenSettings((prev) => { + if (prev.skills.length > 0) return prev + return { + ...prev, + location: prev.location || DEFAULTS.location, + dateSincePosted: prev.dateSincePosted || DEFAULTS.dateSincePosted, + jobType: prev.jobType || DEFAULTS.jobType, + experienceLevel: prev.experienceLevel || DEFAULTS.experienceLevel, + skills: prev.skills.length === 0 && skills.length > 0 ? skills.slice(0, 3) : prev.skills, + } + }) + }, [fullScreen, skills]) + return ( <>