UNPKG

@teaui/react

Version:

React Reconciler and renderer for TeaUI

34 lines 1.09 kB
import React, { useCallback, useMemo } from 'react'; import { bold, italic, underline, strikeout } from '@teaui/core'; import { ToggleGroup } from '../components.js'; const LABELS = [bold('B'), italic('I'), underline('U'), strikeout('S')]; const KEYS = [ 'bold', 'italic', 'underline', 'strikethrough', ]; export function FontStyle({ value, onChange }) { const selected = useMemo(() => { const indices = []; KEYS.forEach((key, i) => { if (value[key]) indices.push(i); }); return indices; }, [value]); const handleChange = useCallback((_index, newSelected) => { const next = { bold: false, italic: false, underline: false, strikethrough: false, }; for (const i of newSelected) { next[KEYS[i]] = true; } onChange(next); }, [onChange]); return (React.createElement(ToggleGroup, { titles: LABELS, selected: selected, multiple: true, onChange: handleChange })); } //# sourceMappingURL=FontStyle.js.map