From b4f96ae5d969172c7c0296da92c528d5492e77f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20B=C3=BCchele?= Date: Tue, 28 May 2019 07:37:30 -0700 Subject: [PATCH] copy version number to clipboard Summary: People often want to share Flipper's verison number in bug reports, etc. This makes it as easy as a single click to copy the version number. Reviewed By: jknoxville Differential Revision: D15516592 fbshipit-source-id: 72582e2acb23113b3a0af062a83d444031f058d6 --- .../__snapshots__/App.electron.js.snap | 6 ++-- src/chrome/TitleBar.js | 32 ++++++++++++++++--- .../__snapshots__/TitleBar.electron.js.snap | 6 ++-- 3 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/__tests__/__snapshots__/App.electron.js.snap b/src/__tests__/__snapshots__/App.electron.js.snap index 07b66508b..745736e6e 100644 --- a/src/__tests__/__snapshots__/App.electron.js.snap +++ b/src/__tests__/__snapshots__/App.electron.js.snap @@ -59,10 +59,10 @@ exports[`Empty app state matches snapshot 1`] = ` className="css-12zzrdt" /> - 4.0.8 - -dev + 4.0.8-dev
({ background: focused @@ -74,8 +75,34 @@ const VersionText = styled(Text)({ color: colors.light50, marginLeft: 4, marginTop: 2, + cursor: 'pointer', + display: 'block', + padding: '4px 10px', + '&:hover': { + backgroundColor: `rgba(0,0,0,0.05)`, + borderRadius: '999em', + }, }); +class Version extends Component<{children: string}, {copied: boolean}> { + state = { + copied: false, + }; + _onClick = () => { + clipboard.writeText(this.props.children); + this.setState({copied: true}); + setTimeout(() => this.setState({copied: false}), 1000); + }; + + render() { + return ( + + {this.state.copied ? 'Copied' : this.props.children} + + ); + } +} + const Importing = styled(FlexRow)({ color: colors.light50, alignItems: 'center', @@ -95,10 +122,7 @@ class TitleBar extends Component { )} - - {this.props.version} - {isProduction() ? '' : '-dev'} - + {this.props.version + (isProduction() ? '' : '-dev')} {isAutoUpdaterEnabled() ? ( diff --git a/src/chrome/__tests__/__snapshots__/TitleBar.electron.js.snap b/src/chrome/__tests__/__snapshots__/TitleBar.electron.js.snap index 647a9190f..5ad168e3a 100644 --- a/src/chrome/__tests__/__snapshots__/TitleBar.electron.js.snap +++ b/src/chrome/__tests__/__snapshots__/TitleBar.electron.js.snap @@ -56,10 +56,10 @@ exports[`TitleBar is rendered 1`] = ` className="css-12zzrdt" /> - 1.0.0 - -dev + 1.0.0-dev