[WIP] Encryption for secure values (#183)

This commit is contained in:
Gregory Schier
2025-04-15 07:18:26 -07:00
committed by GitHub
parent e114a85c39
commit 2e55a1bd6d
208 changed files with 4063 additions and 28698 deletions

View File

@@ -17,20 +17,23 @@ export type RadioDropdownItem<T = string | null> =
export interface RadioDropdownProps<T = string | null> {
value: T;
onChange: (value: T) => void;
itemsBefore?: DropdownItem[];
items: RadioDropdownItem<T>[];
extraItems?: DropdownItem[];
itemsAfter?: DropdownItem[];
children: DropdownProps['children'];
}
export function RadioDropdown<T = string | null>({
value,
items,
extraItems,
itemsAfter,
itemsBefore,
onChange,
children,
}: RadioDropdownProps<T>) {
const dropdownItems = useMemo(
() => [
...((itemsBefore ? [...itemsBefore, { type: 'separator' }] : []) as DropdownItem[]),
...items.map((item) => {
if (item.type === 'separator') {
return item;
@@ -44,9 +47,9 @@ export function RadioDropdown<T = string | null>({
} as DropdownItem;
}
}),
...((extraItems ? [{ type: 'separator' }, ...extraItems] : []) as DropdownItem[]),
...((itemsAfter ? [{ type: 'separator' }, ...itemsAfter] : []) as DropdownItem[]),
],
[items, extraItems, value, onChange],
[itemsBefore, items, itemsAfter, value, onChange],
);
return (