feat: allow updating memo createdTs

This commit is contained in:
Steven
2022-08-25 22:02:32 +08:00
parent 9f3f730723
commit 57f51d1c58
9 changed files with 172 additions and 21 deletions

View File

@ -1,5 +1,6 @@
import { useState, useEffect, useCallback } from "react";
import { editorStateService, memoService, userService } from "../services";
import { useAppSelector } from "../store";
import { IMAGE_URL_REG, MEMO_LINK_REG, UNKNOWN_ID, VISIBILITY_SELECTOR_ITEMS } from "../helpers/consts";
import * as utils from "../helpers/utils";
import { formatMemoContent, parseHtmlToRawText } from "../helpers/marked";
@ -9,6 +10,7 @@ import { generateDialog } from "./Dialog";
import Image from "./Image";
import Icon from "./Icon";
import Selector from "./common/Selector";
import showChangeMemoCreatedTsDialog from "./ChangeMemoCreatedTsDialog";
import "../less/memo-card-dialog.less";
interface LinkedMemo extends Memo {
@ -21,6 +23,7 @@ interface Props extends DialogProps {
}
const MemoCardDialog: React.FC<Props> = (props: Props) => {
const memos = useAppSelector((state) => state.memo.memos);
const [memo, setMemo] = useState<Memo>({
...props.memo,
});
@ -69,7 +72,12 @@ const MemoCardDialog: React.FC<Props> = (props: Props) => {
};
fetchLinkedMemos();
}, [memo.id]);
setMemo(memoService.getMemoById(memo.id) as Memo);
}, [memos, memo.id]);
const handleMemoCreatedAtClick = () => {
showChangeMemoCreatedTsDialog(memo.id);
};
const handleMemoContentClick = useCallback(async (e: React.MouseEvent) => {
const targetEl = e.target as HTMLElement;
@ -136,7 +144,9 @@ const MemoCardDialog: React.FC<Props> = (props: Props) => {
</Only>
<div className="memo-card-container">
<div className="header-container">
<p className="time-text">{utils.getDateTimeString(memo.createdTs)}</p>
<p className="time-text" onClick={handleMemoCreatedAtClick}>
{utils.getDateTimeString(memo.createdTs)}
</p>
<div className="btns-container">
<Only when={!userService.isVisitorMode()}>
<>