import { h, Component } from 'preact'; import { bind } from '../../lib/initial-util'; import { inputFieldValueAsNumber, konami, preventDefault } from '../../lib/util'; import { QuantizeOptions } from './processor-meta'; import * as style from '../../components/Options/style.scss'; import Expander from '../../components/expander'; import Select from '../../components/select'; import Range from '../../components/range'; const konamiPromise = konami(); interface Props { options: QuantizeOptions; onChange(newOptions: QuantizeOptions): void; } interface State { extendedSettings: boolean; } export default class QuantizerOptions extends Component { state: State = { extendedSettings: false }; componentDidMount() { konamiPromise.then(() => { this.setState({ extendedSettings: true }); }); } @bind onChange(event: Event) { const form = (event.currentTarget as HTMLInputElement).closest('form') as HTMLFormElement; const { options } = this.props; const newOptions: QuantizeOptions = { zx: inputFieldValueAsNumber(form.zx, options.zx), maxNumColors: inputFieldValueAsNumber(form.maxNumColors, options.maxNumColors), dither: inputFieldValueAsNumber(form.dither), }; this.props.onChange(newOptions); } render({ options }: Props, { extendedSettings }: State) { return (
{extendedSettings ? : null} {options.zx ? null :
Colors:
}
Dithering:
); } }