import type { WhitelistFlexMember } from 'components/WhitelistFlexUpload' import { useMemo, useState } from 'react' import { uid } from 'utils/random' export function useFlexMemberAttributesState() { const [record, setRecord] = useState>(() => ({})) const entries = useMemo(() => Object.entries(record), [record]) const values = useMemo(() => Object.values(record), [record]) function add(attribute: WhitelistFlexMember = { address: '', mint_count: 0 }) { setRecord((prev) => ({ ...prev, [uid()]: attribute })) } function update(key: string, attribute = record[key]) { setRecord((prev) => ({ ...prev, [key]: attribute })) } function remove(key: string) { return setRecord((prev) => { const latest = { ...prev } delete latest[key] return latest }) } function reset() { setRecord({}) } return { entries, values, add, update, remove, reset } }