Filter jobs in Jobs view
This commit is contained in:
parent
71d27f5ace
commit
e0992e77b2
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user