From 207b15730363f39b4d18245ecdb2f857d53161c2 Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Fri, 13 Sep 2019 14:41:18 +0300 Subject: [PATCH] copy link to clipboard --- frontend/src/AppToaster.tsx | 8 ++++++++ frontend/src/Documents/DocumentEdit.tsx | 11 ++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/frontend/src/AppToaster.tsx b/frontend/src/AppToaster.tsx index 6d63334..952c9e5 100644 --- a/frontend/src/AppToaster.tsx +++ b/frontend/src/AppToaster.tsx @@ -16,3 +16,11 @@ export function showDeletionToast(cancelFn: () => void) { }, }); } + +export function showSharedToast() { + AppToaster.show({ + message: "Link copied to clipboard!", + intent: "success", + timeout: 2000, + }); +} diff --git a/frontend/src/Documents/DocumentEdit.tsx b/frontend/src/Documents/DocumentEdit.tsx index 315c47b..012d2cf 100644 --- a/frontend/src/Documents/DocumentEdit.tsx +++ b/frontend/src/Documents/DocumentEdit.tsx @@ -13,7 +13,7 @@ import { connect } from "react-redux"; import { RouteComponentProps, withRouter } from "react-router"; import { Dispatch } from "redux"; import { IDocumentJSON } from "~../../src/entity/Document"; -import { showDeletionToast } from "~AppToaster"; +import { showDeletionToast, showSharedToast } from "~AppToaster"; import { LoadingStub } from "~LoadingStub"; import { NotFound } from "~NotFound"; import { @@ -31,6 +31,7 @@ export interface IDocumentEditComponentProps extends RouteComponentProps { fetching: boolean; spinner: boolean; + username: string; fetchDocs: () => void; deleteDoc: (id: number) => void; @@ -169,6 +170,13 @@ export class DocumentEditComponent extends React.PureComponent< const updShared = !doc.shared; + if (updShared) { + navigator.clipboard.writeText( + `http://localhost:1234/shared/${this.props.username}/${doc.id}`, + ); + showSharedToast(); + } + this.props.updateDoc(this.state.id, doc.name, doc.content, updShared); this.upload(); } @@ -241,6 +249,7 @@ function mapStateToProps(state: IAppState) { allDocs: state.docs.all, fetching: state.docs.fetching, spinner: state.docs.spinner, + username: state.user.user.username, }; }