{
+ event.preventDefault();
+ void (async () => {
+ const result = await settlePromise(() =>
+ handleArchivedThreadContextMenu(
+ scopeThreadRef(thread.environmentId, thread.id),
+ thread.title,
+ {
+ x: event.clientX,
+ y: event.clientY,
+ },
+ ),
+ );
+ showArchivedActionFailure("Archived thread action failed", result);
+ })();
+ }}
+ >
+
+ {thread.title}
+
+
+ {formatRelativeTimeLabel(thread.archivedAt ?? thread.createdAt)}
+
+
+ {formatRelativeTimeLabel(thread.createdAt)}
+
+ {/* Keeps row text columns aligned with the header action column. */}
+
+
event.stopPropagation()}
+ >
+
{
+ void handleUnarchiveThread(
+ scopeThreadRef(thread.environmentId, thread.id),
+ );
+ }}
+ >
+
+
+
{
+ void handleDeleteArchivedThread(
+ scopeThreadRef(thread.environmentId, thread.id),
+ thread.title,
+ );
+ }}
+ >
+
+
+
+