Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 19x 13x 392x 6x 94x 6x 6x 336x 336x 6x | import { useMemo } from "react"; import { FULL_CENSUS_STATES } from "shared-types"; import { UserRole } from "shared-types/events/legacy-user"; import { StateAccess } from "@/api"; // Get available states for the role to be requested // eslint-disable-next-line prettier/prettier export function useAvailableStates(roleToRequest: UserRole, stateAccessList: StateAccess[] | undefined) { return useMemo(() => { if (!stateAccessList) { return FULL_CENSUS_STATES.map(({ label, value }) => ({ label, value })); } const validAccess = stateAccessList.filter( ({ role, territory }) => role === roleToRequest && territory !== "ZZ", ); const accessedStates = new Set(validAccess.map(({ territory }) => territory)); const availableStates = FULL_CENSUS_STATES.filter( ({ value }) => !accessedStates.has(value) && value !== "ZZ", ).map(({ label, value }) => ({ label, value })); return availableStates; }, [roleToRequest, stateAccessList]); } |