diff options
author | crupest <crupest@outlook.com> | 2021-03-18 21:28:30 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-03-18 21:28:30 +0800 |
commit | cf161b23fb1eaecec1c4b4ab3cf5ec620cd897bc (patch) | |
tree | 5bfc7960607624d0d4efe6ecdff2462a3cef260d /FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx | |
parent | 36145a18463e0ad4fb372df82cd488f1b4dae2f7 (diff) | |
download | timeline-cf161b23fb1eaecec1c4b4ab3cf5ec620cd897bc.tar.gz timeline-cf161b23fb1eaecec1c4b4ab3cf5ec620cd897bc.tar.bz2 timeline-cf161b23fb1eaecec1c4b4ab3cf5ec620cd897bc.zip |
feat: Prevent leave.
Diffstat (limited to 'FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx')
-rw-r--r-- | FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx b/FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx index ab6aafea..bad6b2b0 100644 --- a/FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx +++ b/FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx @@ -7,6 +7,7 @@ import { getHttpTimelineClient, HttpTimelinePostInfo } from "@/http/timeline"; import TabPages from "../common/TabPages"; import TimelinePostBuilder from "@/services/TimelinePostBuilder"; +import ConfirmDialog from "../common/ConfirmDialog"; export interface MarkdownPostEditProps { timeline: string; @@ -31,6 +32,11 @@ const MarkdownPostEdit: React.FC<MarkdownPostEditProps> = ({ const [process, setProcess] = React.useState<boolean>(false); + const [ + showLeaveConfirmDialog, + setShowLeaveConfirmDialog, + ] = React.useState<boolean>(false); + const [text, _setText] = React.useState<string>(""); const [images, _setImages] = React.useState<{ file: File; url: string }[]>( [] @@ -94,7 +100,16 @@ const MarkdownPostEdit: React.FC<MarkdownPostEditProps> = ({ pageContainerClassName="py-2" actions={ <> - <div className="flat-button text-danger mr-2" onClick={onClose}> + <div + className="flat-button text-danger mr-2" + onClick={() => { + if (canLeave) { + onClose(); + } else { + setShowLeaveConfirmDialog(true); + } + }} + > {t("operationDialog.cancel")} </div> <div className="flat-button text-primary" onClick={send}> @@ -155,6 +170,14 @@ const MarkdownPostEdit: React.FC<MarkdownPostEditProps> = ({ }, ]} /> + {showLeaveConfirmDialog && ( + <ConfirmDialog + onClose={() => setShowLeaveConfirmDialog(false)} + onConfirm={onClose} + title="timeline.dropDraft" + body="timeline.confirmLeave" + /> + )} </> ); }; |