diff --git a/apps/client/src/layouts/desktop_layout.tsx b/apps/client/src/layouts/desktop_layout.tsx
index 75d6ae18b..a9ae9a355 100644
--- a/apps/client/src/layouts/desktop_layout.tsx
+++ b/apps/client/src/layouts/desktop_layout.tsx
@@ -50,6 +50,7 @@ import { isExperimentalFeatureEnabled } from "../services/experimental_features.
import NoteActions from "../widgets/ribbon/NoteActions.jsx";
import FormattingToolbar from "../widgets/ribbon/FormattingToolbar.jsx";
import StandaloneRibbonAdapter from "../widgets/ribbon/components/StandaloneRibbonAdapter.jsx";
+import NoteBadges from "../widgets/BreadcrumbBadges.jsx";
export default class DesktopLayout {
@@ -138,6 +139,7 @@ export default class DesktopLayout {
.class("breadcrumb-row")
.cssBlock(".breadcrumb-row > * { margin: 5px; }")
.child()
+ .child()
.child()
.child()
.child()
@@ -155,7 +157,7 @@ export default class DesktopLayout {
.filling()
.optChild(isNewLayout, titleRow)
.child(new ContentHeader()
- .child()
+ .optChild(!isNewLayout, )
.child()
)
.child()
diff --git a/apps/client/src/widgets/BreadcrumbBadges.css b/apps/client/src/widgets/BreadcrumbBadges.css
new file mode 100644
index 000000000..0c795e600
--- /dev/null
+++ b/apps/client/src/widgets/BreadcrumbBadges.css
@@ -0,0 +1,15 @@
+.component.breadcrumb-badges {
+ display: flex;
+ gap: 5px;
+ contain: none;
+
+ .breadcrumb-badge {
+ display: flex;
+ align-items: center;
+ padding: 2px 6px;
+ border-radius: 12px;
+ font-size: 0.75em;
+ background-color: var(--badge-background-color);
+ color: var(--badge-text-color);
+ }
+}
diff --git a/apps/client/src/widgets/BreadcrumbBadges.tsx b/apps/client/src/widgets/BreadcrumbBadges.tsx
new file mode 100644
index 000000000..fdc94461b
--- /dev/null
+++ b/apps/client/src/widgets/BreadcrumbBadges.tsx
@@ -0,0 +1,32 @@
+import "./BreadcrumbBadges.css";
+
+import { ComponentChildren } from "preact";
+import { useIsNoteReadOnly, useNoteContext } from "./react/hooks";
+
+export default function NoteBadges() {
+ return (
+
+
+
+ );
+}
+
+function ReadOnlyBadge() {
+ const { note, noteContext } = useNoteContext();
+ const { isReadOnly, enableEditing } = useIsNoteReadOnly(note, noteContext);
+ const isExplicitReadOnly = note?.isLabelTruthy("readOnly");
+
+ return (isReadOnly &&
+ enableEditing()}>
+ {isExplicitReadOnly ? "Read-only" : "Auto read-only"}
+
+ );
+}
+
+function Badge({ children, onClick }: { children: ComponentChildren, onClick?: () => void }) {
+ return (
+
+ {children}
+
+ );
+}