fix(chat): place browser hint between header actions

This commit is contained in:
2026-07-15 15:39:27 +08:00
parent 2265a98e76
commit e1a43a641b
4 changed files with 45 additions and 25 deletions
@@ -158,6 +158,12 @@ describe("chat Tailwind components", () => {
const memberHtml = renderToStaticMarkup(
<ChatHeader isGuest={false} offerBanner={<div>Offer</div>} />,
);
const memberWithHintHtml = renderToStaticMarkup(
<ChatHeader isGuest={false} showBrowserHint />,
);
const guestWithHintHtml = renderToStaticMarkup(
<ChatHeader isGuest={true} showBrowserHint />,
);
expect(guestHtml).toContain('aria-label="Sign up to unlock more features"');
expect(guestHtml).toContain("bg-accent");
@@ -173,6 +179,25 @@ describe("chat Tailwind components", () => {
expect(memberHtml).toContain('data-analytics-key="chat.back_to_home"');
expect(memberHtml).toContain("bg-[rgba(13,11,20,0.7)]");
expect(memberHtml).toContain("size-(--responsive-icon-button-size,42px)");
expect(memberWithHintHtml).toContain(
'data-analytics-key="chat.external_browser_hint"',
);
expect(memberWithHintHtml).toContain(
"grid-cols-[auto_minmax(0,1fr)_auto]",
);
expect(memberWithHintHtml.indexOf('aria-label="Back to home"')).toBeLessThan(
memberWithHintHtml.indexOf(
'data-analytics-key="chat.external_browser_hint"',
),
);
expect(
memberWithHintHtml.indexOf(
'data-analytics-key="chat.external_browser_hint"',
),
).toBeLessThan(memberWithHintHtml.indexOf('aria-label="Menu"'));
expect(guestWithHintHtml).not.toContain(
'data-analytics-key="chat.external_browser_hint"',
);
});
it("renders ChatInputTextField with textarea utilities", () => {
@@ -196,11 +221,8 @@ describe("chat Tailwind components", () => {
});
it("renders BrowserHintOverlay visibility and expanded styles", () => {
expect(renderToStaticMarkup(<BrowserHintOverlay />)).toBe("");
const html = renderToStaticMarkup(
<BrowserHintOverlay
forceShow
title="Open elsewhere"
description="Better experience"
/>,
@@ -209,10 +231,9 @@ describe("chat Tailwind components", () => {
expect(html).not.toContain("aria-expanded");
expect(html).toContain('aria-label="Open elsewhere. Better experience"');
expect(html).toContain("grid-cols-[auto_minmax(0,1fr)]");
expect(html).toContain(
"right-[calc(var(--spacing-md,12px)+var(--responsive-icon-button-size,42px)+var(--spacing-sm,8px))]",
);
expect(html).toContain("max-w-[min(58vw,220px)]");
expect(html).not.toContain("absolute");
expect(html).toContain("max-w-full");
expect(html).toContain("size-7.5");
expect(html).toContain("bg-[#17131f]");
expect(html).toContain("text-[#f3dfe8]");
expect(html).not.toContain("Show external browser hint");