Integrate QOI codec completely

* Adds code for encoders and decoders
* Cleans up some obsolete QOI-related code
This commit is contained in:
robo-mop
2023-10-18 04:37:40 +05:30
parent 71f341923a
commit 003d5d125c
13 changed files with 88 additions and 82 deletions

View File

@@ -1,18 +1,6 @@
import { EncodeOptions } from '../shared/meta';
import type WorkerBridge from 'client/lazy-app/worker-bridge';
import { h, Component } from 'preact';
import {
inputFieldChecked,
inputFieldValueAsNumber,
preventDefault,
} from 'client/lazy-app/util';
import * as style from 'client/lazy-app/Compress/Options/style.css';
import linkState from 'linkstate';
import Range from 'client/lazy-app/Compress/Options/Range';
import Checkbox from 'client/lazy-app/Compress/Options/Checkbox';
import Expander from 'client/lazy-app/Compress/Options/Expander';
import Select from 'client/lazy-app/Compress/Options/Select';
import Revealer from 'client/lazy-app/Compress/Options/Revealer';
import { h, Component, Fragment } from 'preact';
export function encode(
signal: AbortSignal,
@@ -28,46 +16,8 @@ interface Props {
onChange(newOptions: EncodeOptions): void;
}
interface State {
showAdvanced: boolean;
}
export class Options extends Component<Props, {}> {
onChange = (event: Event) => {
const form = (event.currentTarget as HTMLInputElement).closest(
'form',
) as HTMLFormElement;
const options: EncodeOptions = {
quality: inputFieldValueAsNumber(form.quality),
randombool: inputFieldChecked(form.randombool),
};
this.props.onChange(options);
};
render({ options }: Props) {
return (
<form class={style.optionsSection} onSubmit={preventDefault}>
<div class={style.optionOneCell}>
<Range
name="quality"
min="0"
max="100"
value={options.quality}
onInput={this.onChange}
>
Quality:
</Range>
</div>
<label class={style.optionToggle}>
Random Bool
<Checkbox
name="randombool"
checked={options.randombool}
onChange={this.onChange}
/>
</label>
</form>
);
render() {
return <Fragment></Fragment>;
}
}