From 006795acfc3fcd767c46348a3dced231592bed76 Mon Sep 17 00:00:00 2001 From: jbecke Date: Thu, 11 Dec 2025 17:44:34 -0500 Subject: [PATCH 1/2] done --- js/app/bun.lock | 1 - .../components/SplitContainer.tsx | 2 +- .../src/components/EntityWithEverything.tsx | 233 +++++++++++------- 3 files changed, 147 insertions(+), 89 deletions(-) diff --git a/js/app/bun.lock b/js/app/bun.lock index f0a144d8e..7879fb30b 100644 --- a/js/app/bun.lock +++ b/js/app/bun.lock @@ -1,6 +1,5 @@ { "lockfileVersion": 1, - "configVersion": 0, "workspaces": { "": { "name": "@coparse/monorepo", diff --git a/js/app/packages/app/component/split-layout/components/SplitContainer.tsx b/js/app/packages/app/component/split-layout/components/SplitContainer.tsx index 5bac62286..3ab6603bf 100644 --- a/js/app/packages/app/component/split-layout/components/SplitContainer.tsx +++ b/js/app/packages/app/component/split-layout/components/SplitContainer.tsx @@ -107,7 +107,7 @@ export function SplitContainer(
-
{props.children}
+
{props.children}
diff --git a/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx b/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx index 40a98276e..5987b93ad 100644 --- a/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx +++ b/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx @@ -502,16 +502,16 @@ export function EntityWithEverything( const isSearch = () => isSearchEntity(props.entity); return ( -
+
{/* sometimes senderName and senderEmail are the same */}
{/* Sender Name */} -
+
{displayedNames() ?? props.entity.senderName ?? props.entity.senderEmail?.split('@')[0]} @@ -529,27 +529,40 @@ export function EntityWithEverything(
{/* Subject */} {/**/} -
-
- - - {(name) => ( - - )} +
+
+
+ + + {(name) => ( + + )} + +
+ {/* Timestamp inline with subject in narrow mode */} + + {(date) => { + const formattedDate = createFormattedDate(date()); + return ( + + ); + }}
{/* Body */} -
+
{props.entity.snippet}
@@ -579,55 +592,68 @@ export function EntityWithEverything( }; return ( -
- - - - {(name) => ( - - )} +
+ +
+ + + {(name) => ( + + )} + + + {/* Timestamp inline with title in narrow mode */} + + {(date) => { + const formattedDate = createFormattedDate(date()); + return ( + + ); + }} - +
-
+
{/**/} - + {userNameFromSender()} + + {(lastMessage) => ( +
+ {/* TODO (seamus): Channels endpoint does not return any information about attachments. If we have an empty message, assume it's attachments.*/} + + Attached items + + } + > + {(content) => ( + + )} + +
+ )} +
- - {(lastMessage) => ( -
- {/* TODO (seamus): Channels endpoint does not return any information about attachments. If we have an empty message, assume it's attachments.*/} - - Attached items - - } - > - {(content) => ( - - )} - -
- )} -
@@ -703,7 +729,7 @@ export function EntityWithEverything(
{ if (blocksNavigation(e)) return; props.onClick?.(props.entity, e); @@ -735,7 +761,7 @@ export function EntityWithEverything( >
-
+
@@ -762,38 +788,71 @@ export function EntityWithEverything( {/* Left Column Indicator(s) */} {/* Icon and name - top left on mobile, first item on desktop */}
-
- - } + {/* Icon/Checkbox container - in narrow mode, shows icon by default, checkbox on hover */} +
+ {/* Checkbox for narrow mode - shown on hover or when checked, hidden at larger widths */} + + {/* Icon - hidden on hover in narrow mode when not checked */} +
+ + } + > + + +
{/* Date and user - top right on mobile, end on desktop */}
-
+
0}>
@@ -817,14 +876,14 @@ export function EntityWithEverything( {(date) => { const formattedDate = createFormattedDate(date()); return ( - + {formattedDate()} ); }} -
+
{/* Content Hits from Search */} 0}> -
+
{(data, index, count) => ( -
+
{(notification) => ( Date: Thu, 11 Dec 2025 18:13:19 -0500 Subject: [PATCH 2/2] done --- .../src/components/EntityWithEverything.tsx | 111 ++++++++++++++++-- 1 file changed, 103 insertions(+), 8 deletions(-) diff --git a/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx b/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx index 5987b93ad..46ff92447 100644 --- a/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx +++ b/js/app/packages/macro-entity/src/components/EntityWithEverything.tsx @@ -505,11 +505,50 @@ export function EntityWithEverything(
{/* sometimes senderName and senderEmail are the same */}
+ {/* Icon inline with sender in narrow mode */} + {/* Sender Name */}
{displayedNames() ?? @@ -530,7 +569,7 @@ export function EntityWithEverything( {/* Subject */} {/**/}
-
+
- + + + {(name) => (
+ {/* Body snippet - inline in wide mode */} +
+ {props.entity.snippet} +
{/* Timestamp inline with subject in narrow mode */} {(date) => { @@ -561,8 +606,8 @@ export function EntityWithEverything( }}
- {/* Body */} -
+ {/* Body snippet - below subject in narrow mode */} +
@@ -594,7 +639,56 @@ export function EntityWithEverything( return (
-
+
+ {/* Icon inline with title in narrow mode */} + {/* Icon/Checkbox container - in narrow mode, shows icon by default, checkbox on hover */} -
+ {/* For emails, icon is inline with sender, so hide this container in narrow mode */} +
{/* Checkbox for narrow mode - shown on hover or when checked, hidden at larger widths */}