import { h, Component } from 'preact'; import { bind } from '../../lib/util'; // import * as styles from './styles.scss'; import { QuantizeOptions } from './quantizer'; type Props = { options: QuantizeOptions, onChange(newOptions: QuantizeOptions): void, }; /** * @param field An HTMLInputElement, but the casting is done here to tidy up onChange. */ function fieldValueAsNumber(field: any): number { return Number((field as HTMLInputElement).value); } export default class QuantizerOptions extends Component { @bind onChange(event: Event) { const form = (event.currentTarget as HTMLInputElement).closest('form') as HTMLFormElement; const options: QuantizeOptions = { maxNumColors: fieldValueAsNumber(form.maxNumColors), dither: fieldValueAsNumber(form.dither), }; this.props.onChange(options); } render({ options }: Props) { return (
); } }