From 7de8fa9da310b25d552c42ce2ba30f0010e731a7 Mon Sep 17 00:00:00 2001 From: Jason Miller Date: Wed, 9 Dec 2020 18:11:44 -0500 Subject: [PATCH] Initial Options Flyout --- src/client/lazy-app/Compress/Flyout/style.css | 4 +- .../lazy-app/Compress/Options/index.tsx | 53 +++++++++----- .../lazy-app/Compress/Options/style.css | 70 ++++++++++++++++++- src/client/lazy-app/Compress/Output/style.css | 2 +- src/client/lazy-app/Compress/index.tsx | 31 +++++++- src/client/lazy-app/icons/index.tsx | 16 +++-- .../{cli-invocation-generator.ts => cli.ts} | 0 7 files changed, 146 insertions(+), 30 deletions(-) rename src/client/lazy-app/util/{cli-invocation-generator.ts => cli.ts} (100%) diff --git a/src/client/lazy-app/Compress/Flyout/style.css b/src/client/lazy-app/Compress/Flyout/style.css index f8dcb7c7..73541deb 100644 --- a/src/client/lazy-app/Compress/Flyout/style.css +++ b/src/client/lazy-app/Compress/Flyout/style.css @@ -1,6 +1,8 @@ .wrap { - display: inline; position: relative; + display: flex; + align-items: center; + justify-items: center; } .wrap > aside:last-of-type { diff --git a/src/client/lazy-app/Compress/Options/index.tsx b/src/client/lazy-app/Compress/Options/index.tsx index 5cd27d3b..dff931d1 100644 --- a/src/client/lazy-app/Compress/Options/index.tsx +++ b/src/client/lazy-app/Compress/Options/index.tsx @@ -5,7 +5,6 @@ import 'add-css:./style.css'; import { cleanSet, cleanMerge } from '../../util/clean-modify'; import type { SourceImage, OutputType } from '..'; -import type SnackBarElement from 'shared/initial-app/custom-els/snack-bar'; import { EncoderOptions, EncoderState, @@ -14,17 +13,15 @@ import { encoderMap, } from '../../feature-meta'; import Expander from './Expander'; -import Checkbox from './Checkbox'; import Toggle from './Toggle'; import Select from './Select'; +import Flyout from '../Flyout'; import { Options as QuantOptionsComponent } from 'features/processors/quantize/client'; import { Options as ResizeOptionsComponent } from 'features/processors/resize/client'; - -import { generateCliInvocation } from '../../util/cli-invocation-generator'; +import { CLIIcon, MoreIcon, SwapIcon } from 'client/lazy-app/icons'; interface Props { index: 0 | 1; - showSnack: SnackBarElement['showSnackbar']; mobileView: boolean; source?: SourceImage; encoderState?: EncoderState; @@ -32,6 +29,8 @@ interface Props { onEncoderTypeChange(index: 0 | 1, newType: OutputType): void; onEncoderOptionsChange(index: 0 | 1, newOptions: EncoderOptions): void; onProcessorOptionsChange(index: 0 | 1, newOptions: ProcessorState): void; + onCopyToOtherSideClick(index: 0 | 1): void; + onCopyCliClick(index: 0 | 1): void; } interface State { @@ -110,20 +109,12 @@ export default class Options extends Component { this.props.onEncoderOptionsChange(this.props.index, newOptions); }; - private onCreateCLIInvocation = () => { - if (!this.props.encoderState) { - return; - } + private onCopyCliClick = () => { + this.props.onCopyCliClick(this.props.index); + }; - try { - const cliInvocation = generateCliInvocation( - this.props.encoderState, - this.props.processorState, - ); - navigator.clipboard.writeText(cliInvocation); - } catch (e) { - this.props.showSnack(e); - } + private onCopyToOtherSideClick = () => { + this.props.onCopyToOtherSideClick(this.props.index); }; render( @@ -146,7 +137,31 @@ export default class Options extends Component { {!encoderState ? null : (

- Edit + Edit + + + + } + > + + +