From 5268eb479d5006d879a5cd3a852441c9b4e8f749 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Sun, 30 Nov 2025 05:28:48 -0600 Subject: [PATCH] feat(share): split diffs on wide screens --- .../enterprise/src/routes/share/[shareID].tsx | 59 +++++++++++++++---- 1 file changed, 48 insertions(+), 11 deletions(-) diff --git a/packages/enterprise/src/routes/share/[shareID].tsx b/packages/enterprise/src/routes/share/[shareID].tsx index ffe7f533a..b95004749 100644 --- a/packages/enterprise/src/routes/share/[shareID].tsx +++ b/packages/enterprise/src/routes/share/[shareID].tsx @@ -41,6 +41,9 @@ const getData = query(async (shareID) => { session_diff_preload: { [sessionID: string]: PreloadMultiFileDiffResult[] } + session_diff_preload_split: { + [sessionID: string]: PreloadMultiFileDiffResult[] + } session_status: { [sessionID: string]: SessionStatus } @@ -62,6 +65,9 @@ const getData = query(async (shareID) => { session_diff_preload: { [share.sessionID]: [], }, + session_diff_preload_split: { + [share.sessionID]: [], + }, session_status: { [share.sessionID]: { type: "idle", @@ -78,16 +84,28 @@ const getData = query(async (shareID) => { break case "session_diff": result.session_diff[share.sessionID] = item.data - result.session_diff_preload[share.sessionID] = await Promise.all( - item.data.map(async (diff) => - preloadMultiFileDiff({ - oldFile: { name: diff.file, contents: diff.before }, - newFile: { name: diff.file, contents: diff.after }, - options: createDefaultOptions("unified"), - // annotations, - }), - ), - ) + await Promise.all([ + Promise.all( + item.data.map(async (diff) => + preloadMultiFileDiff({ + oldFile: { name: diff.file, contents: diff.before }, + newFile: { name: diff.file, contents: diff.after }, + options: createDefaultOptions("unified"), + // annotations, + }), + ), + ).then((r) => (result.session_diff_preload[share.sessionID] = r)), + Promise.all( + item.data.map(async (diff) => + preloadMultiFileDiff({ + oldFile: { name: diff.file, contents: diff.before }, + newFile: { name: diff.file, contents: diff.after }, + options: createDefaultOptions("split"), + // annotations, + }), + ), + ).then((r) => (result.session_diff_preload_split[share.sessionID] = r)), + ]) break case "message": result.message[item.data.sessionID] = result.message[item.data.sessionID] ?? [] @@ -169,6 +187,14 @@ export default function () { preloaded: preloaded.find((d) => d.newFile.name === diff.file), })) }) + const splitDiffs = createMemo(() => { + const diffs = data().session_diff[data().sessionID] ?? [] + const preloaded = data().session_diff_preload_split[data().sessionID] ?? [] + return diffs.map((diff) => ({ + ...diff, + preloaded: preloaded.find((d) => d.newFile.name === diff.file), + })) + }) const title = () => (
@@ -281,8 +307,9 @@ export default function () {
0}> -
+
+