From 3bdcc0b1471bf04cbd6b01da092543338b0dc47c Mon Sep 17 00:00:00 2001 From: Haitao Pan Date: Thu, 12 Mar 2026 19:13:50 +0800 Subject: [PATCH] Simplify XWorkmate sidebar assistant layout --- .../openclaw/OpenClawAssistantPane.tsx | 138 ++++++++++-------- 1 file changed, 78 insertions(+), 60 deletions(-) diff --git a/src/components/openclaw/OpenClawAssistantPane.tsx b/src/components/openclaw/OpenClawAssistantPane.tsx index 01bc6d5..82dea50 100644 --- a/src/components/openclaw/OpenClawAssistantPane.tsx +++ b/src/components/openclaw/OpenClawAssistantPane.tsx @@ -264,6 +264,7 @@ export function OpenClawAssistantPane({ const compact = variant === "sidebar"; const locale = isChinese ? "zh-CN" : "en-US"; + const compactConnected = compact && connectionState === "ready"; const quickActions = useMemo( () => @@ -347,6 +348,11 @@ export function OpenClawAssistantPane({ "侧栏模式与主页布局保持不变,消息会通过 OpenClaw gateway 进入 XWorkmate。你可以上传文件、贴图,或直接截当前页给助手分析。", "The page and sidebar layout stay aligned. Messages flow through the OpenClaw gateway into XWorkmate. Upload files, paste images, or capture the current page for analysis.", ), + compactHint: pickCopy( + isChinese, + "直接开始对话,必要时再补充附件或截图。", + "Start the conversation and add files or a screenshot only when needed.", + ), placeholder: pickCopy( isChinese, "向 XWorkmate 助手描述任务,或先截个图再发。", @@ -765,14 +771,18 @@ export function OpenClawAssistantPane({ )} /> {healthBadge} - · - {gatewayTokenSource === "env" - ? copy.envToken - : gatewayTokenSource === "vault" - ? copy.vaultToken - : gatewayTokenSource === "request" - ? copy.sessionToken - : copy.noToken} + {!compactConnected ? ( + <> + · + {gatewayTokenSource === "env" + ? copy.envToken + : gatewayTokenSource === "vault" + ? copy.vaultToken + : gatewayTokenSource === "request" + ? copy.sessionToken + : copy.noToken} + + ) : null}
@@ -801,51 +811,55 @@ export function OpenClawAssistantPane({ void connectGateway(); }} className="inline-flex items-center gap-2 rounded-full border border-[color:var(--color-surface-border)] px-3 py-1.5 text-[11px] font-semibold text-[var(--color-text)] transition hover:border-[color:var(--color-primary-border)] hover:bg-[var(--color-surface-muted)]" + title={copy.reconnect} > {connectionState === "connecting" ? ( ) : ( )} - {copy.reconnect} + {!compactConnected ? copy.reconnect : null}
-
-
- {sessions.slice(0, compact ? 4 : 8).map((session) => ( - - ))} + {!compact ? ( +
+
+ {sessions.slice(0, 8).map((session) => ( + + ))} +
-
+ ) : null}
{!openclawUrl.trim() ? ( @@ -878,24 +892,26 @@ export function OpenClawAssistantPane({ {copy.assistantTitle}

- {copy.assistantHint} + {compact ? copy.compactHint : copy.assistantHint}

-
- {quickActions.map((action) => ( - - ))} -
+ {!compact ? ( +
+ {quickActions.map((action) => ( + + ))} +
+ ) : null}
) : (
@@ -924,7 +940,7 @@ export function OpenClawAssistantPane({ )} dangerouslySetInnerHTML={{ __html: message.html }} /> - {message.timestampMs ? ( + {message.timestampMs && !compact ? (

-

- - - {activeSession?.derivedTitle || - activeSession?.displayName || - selectedSessionKey || - copy.mainSession} - -
+ {!compact ? ( +
+ + + {activeSession?.derivedTitle || + activeSession?.displayName || + selectedSessionKey || + copy.mainSession} + +
+ ) : null}