"use client"; import { useMemo, useState } from "react"; import type { Campaign, Mission } from "@/payload-types"; import { MissionCard } from "@/components/frontend/intelligence/MissionCard"; import { MissionFilters } from "@/components/frontend/intelligence/MissionFilters"; interface MissionsListProps { missions: Mission[]; campaigns: Campaign[]; } export function MissionsList({ missions, campaigns }: MissionsListProps) { const [filters, setFilters] = useState<{ campaignId: number | null; operationType: string | null; status: string | null; }>({ campaignId: null, operationType: null, status: null }); const filtered = useMemo(() => { return missions.filter((m) => { if (filters.campaignId) { const campaignId = typeof m.classification.campaign === "object" ? (m.classification.campaign as Campaign).id : m.classification.campaign; if (campaignId !== filters.campaignId) return false; } if (filters.operationType && m.operationType !== filters.operationType) { return false; } if (filters.status && m.ownershipAndStatus.status !== filters.status) { return false; } return true; }); }, [missions, filters]); return (
No missions found.
{filters.campaignId || filters.operationType || filters.status ? ( ) : null}