diff --git a/web/src/views/PastebinView.tsx b/web/src/views/PastebinView.tsx
index d5a4833..191e3de 100644
--- a/web/src/views/PastebinView.tsx
+++ b/web/src/views/PastebinView.tsx
@@ -1,13 +1,14 @@
import { getPastebin, type PastebinTemplate } from '../api';
import { usePoll } from '../usePoll';
+import { Card, VStack, HStack, Button, Pill, Muted, ErrText, Title } from '../ui';
/** Read-only view of the live 🌹 canon templates (synced from Notes by macsync).
* Editing happens in the Apple Note; this surfaces what the engine will render. */
export function PastebinView(): JSX.Element {
const { data, error, loading } = usePoll<{ templates: PastebinTemplate[] }>(() => getPastebin(), 60000);
- if (error) return
{error}
;
- if (loading || !data) return
Loading pastebin…
;
+ if (error) return {error};
+ if (loading || !data) return Loading pastebin…;
const sync = (): void => {
alert('Sync from macsync (iNotes) requested — macsync pushes updates to /pastebin via webhook. Re-polling now.');
@@ -15,34 +16,47 @@ export function PastebinView(): JSX.Element {
};
return (
-
-
-
- 🌹 Pastebin Editor — macsync + Apple Notes
-
- 🌹 canon — {data.templates.length} templates · live-synced from the Apple Note (edit in Notes, macsync pushes). Apply from Triage/Detail composer.
-
-
-
- live poll
-
-
-
+
+
+
+
+ 🌹 Pastebin Editor — macsync + Apple Notes
+
+ 🌹 canon — {data.templates.length} templates · live-synced from the Apple Note (edit in Notes, macsync pushes). Apply from Triage/Detail composer.
+
+
+
+ live poll
+
+
+
+
{data.templates.length === 0 ? (
-
No templates — macsync unreachable or the note is empty. Sends hold until available.
+ No templates — macsync unreachable or the note is empty. Sends hold until available.
) : null}
-