From b5eaf8bd4371a2e277529d5f45d4aa76cfb0b9fb Mon Sep 17 00:00:00 2001 From: James Ketrenos Date: Tue, 1 Jul 2025 16:30:04 -0700 Subject: [PATCH] Fixes for mobile --- .../src/components/ui/CandidatePicker.tsx | 15 ++++- frontend/src/components/ui/JobsView.tsx | 41 +++++++----- frontend/src/pages/JobAnalysisPage.tsx | 62 ++++++++++++++++--- 3 files changed, 94 insertions(+), 24 deletions(-) diff --git a/frontend/src/components/ui/CandidatePicker.tsx b/frontend/src/components/ui/CandidatePicker.tsx index cd35c78..de15583 100644 --- a/frontend/src/components/ui/CandidatePicker.tsx +++ b/frontend/src/components/ui/CandidatePicker.tsx @@ -7,6 +7,7 @@ import { Candidate } from 'types/types'; import { useAuth } from 'hooks/AuthContext'; import { useAppState, useSelectedCandidate } from 'hooks/GlobalContext'; import { Paper } from '@mui/material'; +import { Scrollable } from 'components/Scrollable'; interface CandidatePickerProps extends BackstoryElementProps { onSelect?: (candidate: Candidate) => void; @@ -52,7 +53,17 @@ const CandidatePicker = (props: CandidatePickerProps): JSX.Element => { }, [candidates, setSnack, apiClient]); return ( - + { ))} - + ); }; diff --git a/frontend/src/components/ui/JobsView.tsx b/frontend/src/components/ui/JobsView.tsx index 7fe32bf..20a73aa 100644 --- a/frontend/src/components/ui/JobsView.tsx +++ b/frontend/src/components/ui/JobsView.tsx @@ -492,15 +492,22 @@ const JobsView: React.FC = ({ Description - Owner - handleSort('updatedAt')}> - - - Updated {getSortIcon('updatedAt')} - - + {!isMobile && ( + <> + Owner + handleSort('updatedAt')} + > + + + Updated {getSortIcon('updatedAt')} + + + + )} {/* Status */} - {showActions && Actions} + {!isMobile && showActions && Actions} @@ -566,12 +573,16 @@ const JobsView: React.FC = ({ {truncateDescription(job.summary || job.description || '', 100)} - - {getOwnerName(job.owner)} - - - {formatDate(job.updatedAt)} - + {!isMobile && ( + <> + + {getOwnerName(job.owner)} + + + {formatDate(job.updatedAt)} + + + )} {/* = ({ size="small" /> */} - {showActions && ( + {!isMobile && showActions && ( e.stopPropagation()}> {onJobView && ( diff --git a/frontend/src/pages/JobAnalysisPage.tsx b/frontend/src/pages/JobAnalysisPage.tsx index 9f2a595..49c1723 100644 --- a/frontend/src/pages/JobAnalysisPage.tsx +++ b/frontend/src/pages/JobAnalysisPage.tsx @@ -91,7 +91,7 @@ const JobAnalysisPage: React.FC = () => { }); const [canAdvance, setCanAdvance] = useState(false); const scrollRef = useRef(null); - // const isMobile = useMediaQuery(theme.breakpoints.down('sm')); + const isMobile = useMediaQuery(theme.breakpoints.down('sm')); const [activeStep, setActiveStep] = useState(user === null ? 0 : 1); const maxStep = 4; @@ -348,12 +348,14 @@ const JobAnalysisPage: React.FC = () => { flexDirection: 'column', height: '100%' /* Restrict to main-container's height */, width: '100%', + maxWidth: '100%', position: 'relative', }} > = () => { mb: 1, p: 0, gap: 1, + maxWidth: '100%', + width: '100%', flexDirection: 'column', }} > @@ -376,6 +380,8 @@ const JobAnalysisPage: React.FC = () => { flexDirection: 'column', width: '100%', }, + maxWidth: '100%', + overflow: 'hidden', }} > @@ -408,8 +414,10 @@ const JobAnalysisPage: React.FC = () => { }, }} > - Candidate Selection - {selectedCandidate !== null && ( + + Candidate{!isMobile && 'Selection'} + + {selectedCandidate !== null && !isMobile && ( = () => { }, }} > - Job Selection - {selectedJob !== null && ( + Job{!isMobile && 'Selection'} + {selectedJob !== null && !isMobile && ( = () => { }, }} > - Job Analysis + {!isMobile && 'Job '}Analysis {analysisState.analysis !== null && ( @@ -568,11 +576,51 @@ const JobAnalysisPage: React.FC = () => { }, }} > - Generate Resume + {!isMobile && 'Generate '}Resume + {isMobile && ( + + {selectedCandidate !== null && ( + + + {selectedCandidate?.fullName} + + )} + {selectedJob !== null && ( + + {selectedJob.title} + {selectedJob.company} + + )} + + )}