import { CharacterHints } from "@/utils/generators/generatePassword"; import { ExtensionOptions, GeneratorOptions, useStorage } from "@/utils/storage"; import * as fui from "@fluentui/react-components"; import { ArrowUndoRegular } from "@fluentui/react-icons"; import { ReactElement } from "react"; import infoLabel from "../../utils/infoLabel"; import { useStyles } from "./SettingsSection.styles"; export default function SettingsSection(): ReactElement { const { extOptions, generatorOptions, updateStorage } = useStorage(); const cls = useStyles(); const resetRange = useCallback(() => { updateStorage({ MinLength: defaultOptions.extension.MinLength, MaxLength: defaultOptions.extension.MaxLength }); }, []); const setOption = (option: keyof (GeneratorOptions & ExtensionOptions)) => (_: unknown, args: fui.CheckboxOnChangeData) => updateStorage({ [option]: args.checked }); const updateNumberField = (key: keyof (ExtensionOptions & GeneratorOptions), defaultValue: number) => (_: unknown, e: fui.InputOnChangeData): void => { if (e.value.length >= 1) { const value = parseInt(e.value); if (!isNaN(value) && value >= 0) updateStorage({ [key]: value }); } else updateStorage({ [key]: defaultValue }); }; return (
} onClick={ resetRange } />
{ i18n.t("common.sections.include") }
updateStorage({ IncludeCustomSet: e.value }) } />
{ i18n.t("common.sections.exclude") }
updateStorage({ ExcludeCustomSet: e.value }) } />
); }; const defaultOptions = { generator: new GeneratorOptions(), extension: new ExtensionOptions() };