Filter jobs in Jobs view

This commit is contained in:
James Ketr 2025-06-27 15:10:32 -07:00
parent 71d27f5ace
commit e0992e77b2

View File

@ -48,6 +48,7 @@ import * as Types from 'types/types'; // Adjust the import path as necessary
import { useAuth } from 'hooks/AuthContext';
import { StyledMarkdown } from 'components/StyledMarkdown';
import { Scrollable } from 'components/Scrollable';
import { useLocation } from 'react-router-dom';
// async searchJobs(query: string): Promise<Types.PaginatedResponse> {
// const results = await this.getJobs();
@ -67,6 +68,7 @@ type SortField = 'updatedAt' | 'createdAt' | 'company' | 'title';
type SortOrder = 'asc' | 'desc';
interface JobsViewProps {
filter?: Record<string, string | number | boolean>;
onJobSelect?: (selectedJobs: Types.Job[]) => void;
onJobView?: (job: Types.Job) => void;
onJobEdit?: (job: Types.Job) => void;
@ -172,11 +174,13 @@ const JobsView: React.FC<JobsViewProps> = ({
selectable = true,
showActions = true,
showDetailsPanel = true,
filter = {},
}) => {
const theme = useTheme();
const { apiClient } = useAuth();
const { apiClient, user } = useAuth();
const isMobile = useMediaQuery(theme.breakpoints.down('md'));
const isSmall = useMediaQuery(theme.breakpoints.down('sm'));
const location = useLocation();
const [jobs, setJobs] = React.useState<Types.Job[]>([]);
const [loading, setLoading] = React.useState<boolean>(true);
@ -192,7 +196,9 @@ const JobsView: React.FC<JobsViewProps> = ({
const [sortOrder, setSortOrder] = React.useState<SortOrder>('desc');
const [mobileDialogOpen, setMobileDialogOpen] = React.useState(false);
const [detailsPanelOpen, setDetailsPanelOpen] = React.useState(showDetailsPanel);
if (location.pathname.indexOf('/candidate/jobs') === 0) {
filter = { ...filter, owner_id: user?.id || '' };
}
const fetchJobs = React.useCallback(
async (pageNum = 0, searchTerm = '') => {
try {
@ -203,6 +209,7 @@ const JobsView: React.FC<JobsViewProps> = ({
limit: limit,
sortBy: sortField,
sortOrder: sortOrder,
filters: filter,
};
let paginationResponse: Types.PaginatedResponse;
@ -439,7 +446,7 @@ const JobsView: React.FC<JobsViewProps> = ({
<TableContainer>
<Table size="small" aria-label="jobs table">
<TableHead>
<TableRow>
<TableRow sx={{ '& th': { whiteSpace: 'nowrap' } }}>
{selectable && (
<TableCell padding="checkbox">
<Checkbox