aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-03-18 21:28:30 +0800
committercrupest <crupest@outlook.com>2021-03-18 21:28:30 +0800
commitcf161b23fb1eaecec1c4b4ab3cf5ec620cd897bc (patch)
tree5bfc7960607624d0d4efe6ecdff2462a3cef260d /FrontEnd/src/app/views/timeline-common/MarkdownPostEdit.tsx
parent36145a18463e0ad4fb372df82cd488f1b4dae2f7 (diff)
downloadtimeline-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.tsx25
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"
+ />
+ )}
</>
);
};