diff --git a/src/api/API.ts b/src/api/API.ts index 88d0472..796f622 100644 --- a/src/api/API.ts +++ b/src/api/API.ts @@ -43,6 +43,7 @@ export const API = { exportApplicationResponses: (params: { applicationIds: string }) => client.get('/onboarding/applications/export-responses', params), getApplications: (params?: any) => client.get('/onboarding/applications', params), shortlistApplications: (data: any) => client.post('/onboarding/applications/shortlist', data), + sendBulkReminders: (data: { applicationIds: string[] }) => client.post('/onboarding/applications/reminders', data), getApplicationById: (id: string) => client.get(`/onboarding/applications/${id}`), updateApplication: (id: string, data: any) => client.put(`/onboarding/applications/${id}`, data), getLatestQuestionnaire: () => client.get('/questionnaire/latest'), diff --git a/src/features/onboarding/pages/AllApplicationsPage.tsx b/src/features/onboarding/pages/AllApplicationsPage.tsx index 0bc84b7..b9c86b0 100644 --- a/src/features/onboarding/pages/AllApplicationsPage.tsx +++ b/src/features/onboarding/pages/AllApplicationsPage.tsx @@ -26,7 +26,6 @@ import { Download, Grid3x3, List, - Mail, CheckCircle, AlertCircle, Loader2 @@ -193,9 +192,6 @@ export function AllApplicationsPage({ onViewDetails, initialFilter = 'all' }: Al } }; - const handleBulkReminders = () => { - toast.success(`Reminder emails sent to ${selectedIds.length} applicant(s)`); - }; // For DD's All Applications page, only show initial statuses const statusOptions: ApplicationStatus[] = [ @@ -356,16 +352,6 @@ export function AllApplicationsPage({ onViewDetails, initialFilter = 'all' }: Al {selectedIds.length > 0 && ( <> - - )} diff --git a/src/features/onboarding/pages/NonOpportunitiesPage.tsx b/src/features/onboarding/pages/NonOpportunitiesPage.tsx index 1fb61ef..085a573 100644 --- a/src/features/onboarding/pages/NonOpportunitiesPage.tsx +++ b/src/features/onboarding/pages/NonOpportunitiesPage.tsx @@ -11,6 +11,14 @@ import { SelectTrigger, SelectValue, } from '@/components/ui/select'; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover'; +import { Calendar as CalendarPicker } from '@/components/ui/calendar'; +import { format } from 'date-fns'; +import { cn } from '@/components/ui/utils'; import { Search, Download, @@ -182,9 +190,12 @@ export function NonOpportunitiesPage({ onViewDetails }: NonOpportunitiesPageProp setApplicationsData(mappedApps); - // Extract unique locations - const uniqueLocations = Array.from(new Set(mappedApps.map(app => app.preferredLocation))).filter(Boolean); - setLocations(uniqueLocations); + // Extract unique locations and states from the returned data + const newLocations = Array.from(new Set(mappedApps.map(app => app.preferredLocation))).filter(Boolean) as string[]; + setLocations(prev => Array.from(new Set([...prev, ...newLocations]))); + + const newStates = Array.from(new Set(mappedApps.map(app => app.state))).filter(Boolean) as string[]; + setStates(prev => Array.from(new Set([...prev, ...newStates]))); } catch (error) { console.error('Failed to fetch applications:', error); toast.error('Failed to load non-opportunity requests'); @@ -247,29 +258,55 @@ export function NonOpportunitiesPage({ onViewDetails }: NonOpportunitiesPageProp
-
- - setFromDate(e.target.value)} - className="pl-10 text-xs" - placeholder="From" - data-testid="onboarding-non-opps-from-date" - /> -
+ + + + + + setFromDate(date ? date.toISOString().split('T')[0] : '')} + initialFocus + /> + + + to -
- - setToDate(e.target.value)} - className="pl-10 text-xs" - placeholder="To" - data-testid="onboarding-non-opps-to-date" - /> -
+ + + + + + + setToDate(date ? date.toISOString().split('T')[0] : '')} + initialFocus + /> + +
+ + + +
-
- - setFromDate(e.target.value)} - className="pl-10 text-xs" - placeholder="From" - data-testid="onboarding-opp-requests-from-date" - /> -
+ + + + + + setFromDate(date ? date.toISOString().split('T')[0] : '')} + initialFocus + /> + + + to -
- - setToDate(e.target.value)} - className="pl-10 text-xs" - placeholder="To" - data-testid="onboarding-opp-requests-to-date" - /> -
+ + + + + + + setToDate(date ? date.toISOString().split('T')[0] : '')} + initialFocus + /> + +