diff --git a/apps/client/src/widgets/dialogs/revisions.css b/apps/client/src/widgets/dialogs/revisions.css
index e3240635a6..b61cced865 100644
--- a/apps/client/src/widgets/dialogs/revisions.css
+++ b/apps/client/src/widgets/dialogs/revisions.css
@@ -177,6 +177,11 @@ body.desktop .revisions-dialog {
}
+ .revision-description-icon {
+ opacity: 0.5;
+ flex-shrink: 0;
+ }
+
.revision-description-editor {
display: flex;
gap: 5px;
diff --git a/apps/client/src/widgets/dialogs/revisions.tsx b/apps/client/src/widgets/dialogs/revisions.tsx
index 2e073f349f..3578599151 100644
--- a/apps/client/src/widgets/dialogs/revisions.tsx
+++ b/apps/client/src/widgets/dialogs/revisions.tsx
@@ -116,20 +116,21 @@ export default function RevisionsDialog() {
setRefreshCounter(c => c + 1);
setCurrentRevision(undefined);
}}
+ onDescriptionUpdated={(revisionId, description) => {
+ setRevisions(prev => prev?.map(r =>
+ r.revisionId === revisionId ? { ...r, description } : r
+ ));
+ if (currentRevision?.revisionId === revisionId) {
+ setCurrentRevision({ ...currentRevision, description });
+ }
+ }}
/>
{
- setRevisions(prev => prev?.map(r =>
- r.revisionId === revisionId ? { ...r, description } : r
- ));
- if (currentRevision?.revisionId === revisionId) {
- setCurrentRevision({ ...currentRevision, description });
- }
- }} />
+ />
);
@@ -301,15 +302,22 @@ function RevisionsList({ revisions, onSelect, currentRevision }: { revisions: Re
);
}
-function RevisionToolbar({ revisionItem, showDiff, setShowDiff, setShown, onRevisionDeleted }: {
+function RevisionToolbar({ revisionItem, showDiff, setShowDiff, setShown, onRevisionDeleted, onDescriptionUpdated }: {
revisionItem?: RevisionItem,
showDiff: boolean,
setShowDiff: Dispatch>,
setShown: Dispatch>,
onRevisionDeleted?: () => void,
+ onDescriptionUpdated?: (revisionId: string, description: string) => void,
}) {
const canShowDiff = ["text", "code", "mermaid"].includes(revisionItem?.type ?? "");
const canInteract = revisionItem && (!revisionItem.isProtected || protected_session_holder.isProtectedSessionAvailable());
+ const [ editingDescription, setEditingDescription ] = useState(false);
+ const [ descriptionDraft, setDescriptionDraft ] = useState("");
+
+ useEffect(() => {
+ setEditingDescription(false);
+ }, [revisionItem]);
return (
@@ -359,35 +367,6 @@ function RevisionToolbar({ revisionItem, showDiff, setShowDiff, setShown, onRevi
)}
)}
-
- );
-}
-
-function RevisionPreview({noteContent, revisionItem, showDiff, onDescriptionUpdated }: {
- noteContent?: string,
- revisionItem?: RevisionItem,
- showDiff: boolean,
- onDescriptionUpdated?: (revisionId: string, description: string) => void
-}) {
- const [ fullRevision, setFullRevision ] = useState();
- const [ editingDescription, setEditingDescription ] = useState(false);
- const [ descriptionDraft, setDescriptionDraft ] = useState("");
-
- useEffect(() => {
- if (revisionItem) {
- server.get(`revisions/${revisionItem.revisionId}`).then(setFullRevision);
- } else {
- setFullRevision(undefined);
- }
- setEditingDescription(false);
- }, [revisionItem]);
-
- return (
-
-
{revisionItem?.title ?? t("revisions.no_revisions")}
{revisionItem && (
setEditingDescription(false)}
/>
)}
+
+ );
+}
+
+function RevisionPreview({noteContent, revisionItem, showDiff }: {
+ noteContent?: string,
+ revisionItem?: RevisionItem,
+ showDiff: boolean,
+}) {
+ const [ fullRevision, setFullRevision ] = useState();
+
+ useEffect(() => {
+ if (revisionItem) {
+ server.get(`revisions/${revisionItem.revisionId}`).then(setFullRevision);
+ } else {
+ setFullRevision(undefined);
+ }
+ }, [revisionItem]);
+
+ return (
+
+
{revisionItem?.title ?? t("revisions.no_revisions")}
);
@@ -424,6 +428,7 @@ function RevisionDescription({ revisionItem, editing, draft, onEdit, onDraftChan
if (editing) {
return (
+
+
{revisionItem.description || t("revisions.description_placeholder")}