From ffe60580dbba8badbc7afb8a962df3ce1c005631 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 18 Apr 2026 17:55:03 +0300 Subject: [PATCH] fix(revisions): layout on mobile --- apps/client/src/stylesheets/style.css | 51 +++++++++++++++ apps/client/src/widgets/dialogs/revisions.css | 63 ++----------------- apps/client/src/widgets/dialogs/revisions.tsx | 27 ++++---- apps/client/src/widgets/react/Modal.tsx | 7 ++- 4 files changed, 73 insertions(+), 75 deletions(-) diff --git a/apps/client/src/stylesheets/style.css b/apps/client/src/stylesheets/style.css index abc59d99c3..1fdfe9aeea 100644 --- a/apps/client/src/stylesheets/style.css +++ b/apps/client/src/stylesheets/style.css @@ -1170,6 +1170,31 @@ a.external:not(.no-arrow):after, a[href^="http://"]:not(.no-arrow):after, a[href min-height: 0; } +.modal-content-with-sidebar .modal-sidebar-header { + padding: 0.75rem 1rem; + flex-shrink: 0; + text-align: center; + border-bottom: 1px solid var(--main-border-color); +} + +.modal-content-with-sidebar .modal-sidebar-header h5 { + margin: 0; + font-size: 1em; +} + +.modal-content-with-sidebar > .modal-main > .modal-header > .modal-title { + visibility: hidden; + flex-grow: 1; + width: 0; + padding: 0; + margin: 0; + overflow: hidden; +} + +.modal-content-with-sidebar > .modal-main > .modal-header { + flex-wrap: nowrap; +} + .modal-content-with-sidebar > .modal-main { display: flex; flex-direction: column; @@ -1185,6 +1210,32 @@ a.external:not(.no-arrow):after, a[href^="http://"]:not(.no-arrow):after, a[href min-height: 0; } +body.mobile .modal-content-with-sidebar { + flex-direction: column !important; +} + +body.mobile .modal-content-with-sidebar > .modal-sidebar { + border-right: none; + border-bottom: 1px solid var(--main-border-color); + height: 30vh; + flex-shrink: 0; + overflow: hidden; + order: 1; +} + +body.mobile .modal-content-with-sidebar > .modal-main { + order: 0; +} + +body.mobile .modal-content-with-sidebar .modal-sidebar-header { + display: none; +} + +body.mobile .modal-content-with-sidebar > .modal-main > .modal-header > .modal-title { + visibility: visible; + width: auto; +} + .ck-mentions .ck-button { font-size: var(--detail-font-size) !important; padding: 5px; diff --git a/apps/client/src/widgets/dialogs/revisions.css b/apps/client/src/widgets/dialogs/revisions.css index 6ed398c149..ca938047c2 100644 --- a/apps/client/src/widgets/dialogs/revisions.css +++ b/apps/client/src/widgets/dialogs/revisions.css @@ -3,61 +3,20 @@ body.mobile .revisions-dialog { height: 95vh; } - .modal-header { - display: flex; - flex-wrap: wrap; - gap: 0.25em; - font-size: 0.9em; - } - - .modal-title { - flex-grow: 1; - width: 100%; - } - - .modal-body { - height: fit-content !important; - flex-direction: column; - } - .modal-footer { font-size: 0.9em; } - .revision-list { - height: fit-content !important; - max-height: 20vh; - border-bottom: 1px solid var(--main-border-color) !important; - padding: 0 1em; - flex-shrink: 0; - } - - .modal-body > .revision-content-wrapper { - flex-grow: 1; - max-width: unset !important; - height: 100%; - margin: 0; - display: block !important; - } - - .modal-body > .revision-content-wrapper > div:first-of-type { - flex-direction: column; - } - .revision-title { font-size: 1rem; } - .revision-title-buttons { - text-align: center; - display: flex; - gap: 0.25em; + .revision-toolbar-actions { flex-wrap: wrap; } .revision-content { padding: 0.5em; - height: fit-content; } } @@ -65,6 +24,10 @@ body.desktop .revisions-dialog { .revision-list { width: 300px; } + + .modal-content { + height: 80vh; + } } .revisions-dialog { @@ -83,18 +46,6 @@ body.desktop .revisions-dialog { border-radius: 0 !important; } - .revision-sidebar-header { - padding: 0.75rem 1rem; - flex-shrink: 0; - text-align: center; - border-bottom: 1px solid var(--main-border-color); - - h5 { - margin: 0; - font-size: 1em; - } - } - .revision-toolbar { flex-shrink: 0; border-bottom: 1px solid var(--main-border-color); @@ -119,10 +70,6 @@ body.desktop .revisions-dialog { opacity: 0.6; } - .modal-content { - height: 80vh; - } - .revision-content-wrapper { flex-grow: 1; display: flex; diff --git a/apps/client/src/widgets/dialogs/revisions.tsx b/apps/client/src/widgets/dialogs/revisions.tsx index 0b72b2e1e3..3fdd9d0952 100644 --- a/apps/client/src/widgets/dialogs/revisions.tsx +++ b/apps/client/src/widgets/dialogs/revisions.tsx @@ -65,7 +65,7 @@ export default function RevisionsDialog() { )} sidebar={ - <> -
-
{t("revisions.note_revisions")}
-
- { - const correspondingRevision = (revisions ?? []).find((r) => r.revisionId === revisionId); - if (correspondingRevision) { - setCurrentRevision(correspondingRevision); - } - }} - currentRevision={currentRevision} - /> - + { + const correspondingRevision = (revisions ?? []).find((r) => r.revisionId === revisionId); + if (correspondingRevision) { + setCurrentRevision(correspondingRevision); + } + }} + currentRevision={currentRevision} + /> } onHidden={() => { setShown(false); diff --git a/apps/client/src/widgets/react/Modal.tsx b/apps/client/src/widgets/react/Modal.tsx index eaef4c2fa9..674729b7bc 100644 --- a/apps/client/src/widgets/react/Modal.tsx +++ b/apps/client/src/widgets/react/Modal.tsx @@ -151,7 +151,12 @@ export default function Modal({ children, className, size, title, customTitleBar
{(show || keepInDom) &&
- {sidebar &&
{sidebar}
} + {sidebar &&
+ {title &&
+
{typeof title === "string" ? title : title}
+
} + {sidebar} +
}
{!title || typeof title === "string" ? (