11import type React from "react"
2- import { useState } from "react"
2+ import { useState , useEffect } from "react"
33import {
44 Box ,
55 Typography ,
@@ -74,11 +74,17 @@ const LinkedinJobs: React.FC<LinkedinJobsProps> = ({
7474 skills,
7575 selectedRole,
7676} ) => {
77- const [ settings , setSettings ] = useState < LinkedInSettings > ( {
77+ const DEFAULTS : Omit < LinkedInSettings , "skills" > = {
7878 location : "Israel" ,
7979 dateSincePosted : "past month" ,
8080 jobType : "full time" ,
8181 experienceLevel : "all" ,
82+ }
83+ const [ settings , setSettings ] = useState < LinkedInSettings > ( {
84+ location : DEFAULTS . location ,
85+ dateSincePosted : DEFAULTS . dateSincePosted ,
86+ jobType : DEFAULTS . jobType ,
87+ experienceLevel : DEFAULTS . experienceLevel ,
8288 skills : skills . slice ( 0 , 3 ) , // Limit to first 3 skills
8389 } )
8490 const theme = useTheme ( )
@@ -89,6 +95,21 @@ const LinkedinJobs: React.FC<LinkedinJobsProps> = ({
8995 const [ fullScreenSettings , setFullScreenSettings ] = useState < LinkedInSettings > ( { ...settings } )
9096 const [ newSkill , setNewSkill ] = useState ( "" )
9197
98+ // Auto-fill compact settings when empty
99+ useEffect ( ( ) => {
100+ setSettings ( ( prev ) => {
101+ if ( prev . skills . length > 0 ) return prev
102+ return {
103+ ...prev ,
104+ location : prev . location || DEFAULTS . location ,
105+ dateSincePosted : prev . dateSincePosted || DEFAULTS . dateSincePosted ,
106+ jobType : prev . jobType || DEFAULTS . jobType ,
107+ experienceLevel : prev . experienceLevel || DEFAULTS . experienceLevel ,
108+ skills : prev . skills . length === 0 && skills . length > 0 ? skills . slice ( 0 , 3 ) : prev . skills ,
109+ }
110+ } )
111+ } , [ skills ] )
112+
92113 const handleSettingChange = ( key : keyof LinkedInSettings , value : string ) => {
93114 setSettings ( ( prev ) => ( { ...prev , [ key ] : value } ) )
94115 }
@@ -147,6 +168,22 @@ const LinkedinJobs: React.FC<LinkedinJobsProps> = ({
147168 } ) )
148169 }
149170
171+ // Auto-fill full-screen settings when empty
172+ useEffect ( ( ) => {
173+ if ( ! fullScreen ) return
174+ setFullScreenSettings ( ( prev ) => {
175+ if ( prev . skills . length > 0 ) return prev
176+ return {
177+ ...prev ,
178+ location : prev . location || DEFAULTS . location ,
179+ dateSincePosted : prev . dateSincePosted || DEFAULTS . dateSincePosted ,
180+ jobType : prev . jobType || DEFAULTS . jobType ,
181+ experienceLevel : prev . experienceLevel || DEFAULTS . experienceLevel ,
182+ skills : prev . skills . length === 0 && skills . length > 0 ? skills . slice ( 0 , 3 ) : prev . skills ,
183+ }
184+ } )
185+ } , [ fullScreen , skills ] )
186+
150187 return (
151188 < >
152189 < Card
0 commit comments