mirror of
https://github.com/zadam/trilium.git
synced 2025-10-20 23:29:02 +02:00
fix(react/dialogs): revisions not refreshing after deleting an item
This commit is contained in:
parent
71dd428919
commit
5db7997a17
@ -25,6 +25,7 @@ function RevisionsDialogComponent() {
|
|||||||
const [ revisions, setRevisions ] = useState<RevisionItem[]>();
|
const [ revisions, setRevisions ] = useState<RevisionItem[]>();
|
||||||
const [ currentRevision, setCurrentRevision ] = useState<RevisionItem>();
|
const [ currentRevision, setCurrentRevision ] = useState<RevisionItem>();
|
||||||
const [ shown, setShown ] = useState(false);
|
const [ shown, setShown ] = useState(false);
|
||||||
|
const [ refreshCounter, setRefreshCounter ] = useState(0);
|
||||||
|
|
||||||
useTriliumEvent("showRevisions", async ({ noteId }) => {
|
useTriliumEvent("showRevisions", async ({ noteId }) => {
|
||||||
const note = await getNote(noteId);
|
const note = await getNote(noteId);
|
||||||
@ -40,7 +41,7 @@ function RevisionsDialogComponent() {
|
|||||||
} else {
|
} else {
|
||||||
setRevisions(undefined);
|
setRevisions(undefined);
|
||||||
}
|
}
|
||||||
}, [ note?.noteId ]);
|
}, [ note?.noteId, refreshCounter ]);
|
||||||
|
|
||||||
if (revisions?.length && !currentRevision) {
|
if (revisions?.length && !currentRevision) {
|
||||||
setCurrentRevision(revisions[0]);
|
setCurrentRevision(revisions[0]);
|
||||||
@ -60,8 +61,8 @@ function RevisionsDialogComponent() {
|
|||||||
|
|
||||||
if (note && await dialog.confirm(text)) {
|
if (note && await dialog.confirm(text)) {
|
||||||
await server.remove(`notes/${note.noteId}/revisions`);
|
await server.remove(`notes/${note.noteId}/revisions`);
|
||||||
|
setRevisions([]);
|
||||||
setShown(false);
|
setCurrentRevision(undefined);
|
||||||
toast.showMessage(t("revisions.revisions_deleted"));
|
toast.showMessage(t("revisions.revisions_deleted"));
|
||||||
}
|
}
|
||||||
}}/>)
|
}}/>)
|
||||||
@ -91,7 +92,13 @@ function RevisionsDialogComponent() {
|
|||||||
flexDirection: "column",
|
flexDirection: "column",
|
||||||
minWidth: 0
|
minWidth: 0
|
||||||
}}>
|
}}>
|
||||||
<RevisionPreview revisionItem={currentRevision} setShown={setShown} />
|
<RevisionPreview
|
||||||
|
revisionItem={currentRevision}
|
||||||
|
setShown={setShown}
|
||||||
|
onRevisionDeleted={() => {
|
||||||
|
setRefreshCounter(c => c + 1);
|
||||||
|
setCurrentRevision(undefined);
|
||||||
|
}} />
|
||||||
</div>
|
</div>
|
||||||
</Modal>
|
</Modal>
|
||||||
)
|
)
|
||||||
@ -111,18 +118,20 @@ function RevisionsList({ revisions, onSelect }: { revisions: RevisionItem[], onS
|
|||||||
</FormList>);
|
</FormList>);
|
||||||
}
|
}
|
||||||
|
|
||||||
function RevisionPreview({ revisionItem, setShown }: { revisionItem?: RevisionItem, setShown: Dispatch<StateUpdater<boolean>>}) {
|
function RevisionPreview({ revisionItem, setShown, onRevisionDeleted }: {
|
||||||
|
revisionItem?: RevisionItem,
|
||||||
|
setShown: Dispatch<StateUpdater<boolean>>,
|
||||||
|
onRevisionDeleted?: () => void
|
||||||
|
}) {
|
||||||
const [ fullRevision, setFullRevision ] = useState<RevisionPojo>();
|
const [ fullRevision, setFullRevision ] = useState<RevisionPojo>();
|
||||||
const [ needsRefresh, setNeedsRefresh ] = useState<boolean>();
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setNeedsRefresh(false);
|
|
||||||
if (revisionItem) {
|
if (revisionItem) {
|
||||||
server.get<RevisionPojo>(`revisions/${revisionItem.revisionId}`).then(setFullRevision);
|
server.get<RevisionPojo>(`revisions/${revisionItem.revisionId}`).then(setFullRevision);
|
||||||
} else {
|
} else {
|
||||||
setFullRevision(undefined);
|
setFullRevision(undefined);
|
||||||
}
|
}
|
||||||
}, [revisionItem, needsRefresh]);
|
}, [revisionItem]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@ -148,8 +157,8 @@ function RevisionPreview({ revisionItem, setShown }: { revisionItem?: RevisionIt
|
|||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
if (await dialog.confirm(t("revisions.confirm_delete"))) {
|
if (await dialog.confirm(t("revisions.confirm_delete"))) {
|
||||||
await server.remove(`revisions/${revisionItem.revisionId}`);
|
await server.remove(`revisions/${revisionItem.revisionId}`);
|
||||||
setNeedsRefresh(true);
|
|
||||||
toast.showMessage(t("revisions.revision_deleted"));
|
toast.showMessage(t("revisions.revision_deleted"));
|
||||||
|
onRevisionDeleted?.();
|
||||||
}
|
}
|
||||||
}} />
|
}} />
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user