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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 1x 1x 10x 10x 10x 1x 1x 1x 1x 1x | import { atom } from "jotai"; import { signingKeysListState } from "./signingKeysState"; import { Policy } from "../types/shared"; function getFilteredPolicies( policies: Array<Policy>, filterQuery?: string | null, ) { Eif (!filterQuery) { return policies; } return policies.filter((policy: Policy) => { if ( (policy["signing-key-name"] && policy["signing-key-name"].includes(filterQuery)) || policy["created-at"].includes(filterQuery) || (policy["modified-at"] && policy["modified-at"].includes(filterQuery)) || policy.revision.toString().includes(filterQuery) ) { return true; } return false; }); } const policiesListState = atom([] as Policy[]); const policiesListFilterState = atom("" as string); const filteredPoliciesListState = atom( (get) => { const filter = get(policiesListFilterState); const policies = get(policiesListState); const signingKeys = get(signingKeysListState); const policiesWithKeys = policies.map((policy) => { const signingKey = signingKeys.find( (key) => key["sha3-384"] === policy["signing-key-sha3-384"], ); return { ...policy, "signing-key-name": signingKey?.name, }; }); return getFilteredPolicies(policiesWithKeys, filter); }, (_get, set, newValue: Policy[]) => { set(policiesListState, newValue); }, ); export { policiesListState, policiesListFilterState, filteredPoliciesListState, }; |