Files
community-rule/lib/create/setupTraits.ts
T

36 lines
887 B
TypeScript

import type { CreateFlowState } from "../../app/(app)/create/types";
import { TRAIT_KEYS, type TraitKey } from "./deckTypes";
export const EMPTY_SETUP_TRAITS: Record<TraitKey, boolean> = {
network: false,
nonvoters: false,
employer: false,
sponsor: false,
records: false,
risky: false,
};
export function tickedSetupTraitIds(
traits: CreateFlowState["setupTraits"],
): TraitKey[] {
if (!traits) return [];
return TRAIT_KEYS.filter((key) => traits[key] === true);
}
export function setupTraitsFromTickedIds(
ids: readonly string[],
): Record<TraitKey, boolean> {
const ticked = new Set(ids);
const out = { ...EMPTY_SETUP_TRAITS };
for (const key of TRAIT_KEYS) {
out[key] = ticked.has(key);
}
return out;
}
export function hasTickedSetupTrait(
traits: CreateFlowState["setupTraits"],
): boolean {
return tickedSetupTraitIds(traits).length > 0;
}