- {/* Media indicator */}
+ {/* Media attachments - render images/videos from remote URLs */}
{hasMedia && (
-
- π ε
ε« {displayStatus.media_attachments.length} εεͺι«
+
+ {displayStatus.media_attachments.map((att) => {
+ const src = att.preview_url ?? att.url;
+ if (!src) return null;
+
+ if (att.type === 'image') {
+ return (
+

+ );
+ }
+ if (att.type === 'gifv' && att.url) {
+ return (
+
e.stopPropagation()}
+ >
+
+
+ );
+ }
+ if (att.type === 'video' && att.url) {
+ return (
+
e.stopPropagation()}
+ >
+
+
+ );
+ }
+ if (att.type === 'audio' && att.preview_url) {
+ return (
+
+

+
+ );
+ }
+ return null;
+ })}
)}
diff --git a/components/nav-menu.tsx b/components/nav-menu.tsx
index 29d2fc8..625ca94 100644
--- a/components/nav-menu.tsx
+++ b/components/nav-menu.tsx
@@ -131,8 +131,8 @@ export function NavMenu({ items }: NavMenuProps) {
className="motion-link inline-flex items-center gap-2 rounded-xl px-3 py-2 text-sm text-slate-600 hover:bg-slate-100 hover:text-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40 dark:text-slate-200 dark:hover:bg-slate-800"
onClick={close}
>
-
-
{item.label}
+
+
{item.label}
) : null;
};
@@ -150,8 +150,8 @@ export function NavMenu({ items }: NavMenuProps) {
className="flex w-full items-center justify-between rounded-xl px-4 py-3 text-base font-medium text-slate-700 transition-colors active:bg-slate-100 dark:text-slate-200 dark:active:bg-slate-800"
>
-
- {item.label}
+
+ {item.label}
-
- {item.label}
+
+ {item.label}
) : null;
};
@@ -261,13 +261,13 @@ export function NavMenu({ items }: NavMenuProps) {
>
-
- {item.label}
+
+ {item.label}
) : null;
diff --git a/components/search-modal.tsx b/components/search-modal.tsx
index a4176d0..5f374b5 100644
--- a/components/search-modal.tsx
+++ b/components/search-modal.tsx
@@ -263,11 +263,11 @@ export function SearchButton({ onClick }: { onClick: () => void }) {
return (