Fixing lossless slider for webP. Previously you couldn't select "9" :D

This commit is contained in:
Jake Archibald
2018-10-30 10:47:10 +00:00
parent f396a5b784
commit 9a58e4d339

View File

@@ -26,8 +26,8 @@ const losslessPresets:[number, number][] = [
]; ];
const losslessPresetDefault = 6; const losslessPresetDefault = 6;
function determineLosslessQuality(quality: number): number { function determineLosslessQuality(quality: number, method: number): number {
const index = losslessPresets.findIndex(item => item[1] === quality); const index = losslessPresets.findIndex(item => item[0] === method && item[1] === quality);
if (index !== -1) return index; if (index !== -1) return index;
// Quality doesn't match one of the presets. // Quality doesn't match one of the presets.
// This can happen when toggling 'lossless'. // This can happen when toggling 'lossless'.
@@ -45,7 +45,7 @@ export default class WebPEncoderOptions extends Component<Props, State> {
const lossless = inputFieldCheckedAsNumber(form.lossless); const lossless = inputFieldCheckedAsNumber(form.lossless);
const { options } = this.props; const { options } = this.props;
const losslessPresetValue = inputFieldValueAsNumber( const losslessPresetValue = inputFieldValueAsNumber(
form.lossless_preset, determineLosslessQuality(options.quality), form.lossless_preset, determineLosslessQuality(options.quality, options.method),
); );
const newOptions: EncodeOptions = { const newOptions: EncodeOptions = {
@@ -97,7 +97,7 @@ export default class WebPEncoderOptions extends Component<Props, State> {
name="lossless_preset" name="lossless_preset"
min="0" min="0"
max="9" max="9"
value={determineLosslessQuality(options.quality)} value={determineLosslessQuality(options.quality, options.method)}
onInput={this.onChange} onInput={this.onChange}
> >
Effort: Effort: