| ... | ... | @@ -12,6 +12,7 @@ import { |
| 12 | 12 | ComboboxTrigger, |
| 13 | 13 | } from "../ui/combobox"; |
| 14 | 14 | import { SelectButton } from "../ui/select"; |
| 15 | import { stackedThreadToast, toastManager } from "../ui/toast"; |
| 15 | 16 | |
| 16 | 17 | const DEFAULT_FONT_VALUE = "__default__"; |
| 17 | 18 | |
| ... | ... | @@ -141,8 +142,8 @@ export function FontFamilyPicker({ |
| 141 | 142 | |
| 142 | 143 | const families = useMemo(() => { |
| 143 | 144 | if (enumeration.status !== "granted") return []; |
| 144 | | return requireMonospace ? enumeration.families.filter(isMonospaceFamily) : enumeration.families; |
| 145 | | }, [enumeration, requireMonospace]); |
| 145 | return enumeration.families; |
| 146 | }, [enumeration]); |
| 146 | 147 | |
| 147 | 148 | const items = useMemo(() => { |
| 148 | 149 | const trimmedQuery = query.trim().toLowerCase(); |
| ... | ... | @@ -160,6 +161,16 @@ export function FontFamilyPicker({ |
| 160 | 161 | |
| 161 | 162 | const handlePick = (value: string) => { |
| 162 | 163 | setOpen(false); |
| 164 | if (value !== DEFAULT_FONT_VALUE && requireMonospace && !isMonospaceFamily(value)) { |
| 165 | toastManager.add( |
| 166 | stackedThreadToast({ |
| 167 | type: "error", |
| 168 | title: `"${value}" isn't monospace`, |
| 169 | description: "Code and terminal need a fixed-width font, so the current font was kept.", |
| 170 | }), |
| 171 | ); |
| 172 | return; |
| 173 | } |
| 163 | 174 | onSelect(value === DEFAULT_FONT_VALUE ? "" : value); |
| 164 | 175 | }; |
| 165 | 176 | |