From 6dcaf58ee0650fae89db917c45f1603811083add Mon Sep 17 00:00:00 2001 From: Wintermute Date: Mon, 7 Sep 2026 11:23:08 -0400 Subject: [PATCH] fix(market): inset bid board to timeline gutter Signed-off-by: Wintermute --- .../market/ui/MarketChannelIntro.test.mjs | 19 ++++++++++++----- .../features/market/ui/MarketChannelIntro.tsx | 21 ++++++++++--------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/desktop/src/features/market/ui/MarketChannelIntro.test.mjs b/desktop/src/features/market/ui/MarketChannelIntro.test.mjs index 158aad5895..abf780991a 100644 --- a/desktop/src/features/market/ui/MarketChannelIntro.test.mjs +++ b/desktop/src/features/market/ui/MarketChannelIntro.test.mjs @@ -4,7 +4,7 @@ import React from "react"; import { renderToStaticMarkup } from "react-dom/server"; import { MARKET_SCENARIOS } from "@/features/market/lib/marketPrototypeData"; -import { MarketBidTable } from "./MarketChannelIntro.tsx"; +import { MarketBidTable, MarketBoardLayout } from "./MarketChannelIntro.tsx"; import { MarketContractCard } from "./MarketContractCard.tsx"; const bidderOne = "a".repeat(64); @@ -47,14 +47,23 @@ test("the bid table renders exactly one body row per bid", () => { assert.equal(body.match(/BidderBidMessageMessageFizzHoneyFirst bidSecond bidFirst bidSecond bid { +test("the market board follows the header and avatar gutter", () => { + const html = renderToStaticMarkup( + React.createElement(MarketBoardLayout, null, "Board"), + ); + const className = html.match(/
{ const html = renderToStaticMarkup( React.createElement(MarketContractCard, { scenario: MARKET_SCENARIOS.finite, diff --git a/desktop/src/features/market/ui/MarketChannelIntro.tsx b/desktop/src/features/market/ui/MarketChannelIntro.tsx index 87fe79eb86..e3ef29625d 100644 --- a/desktop/src/features/market/ui/MarketChannelIntro.tsx +++ b/desktop/src/features/market/ui/MarketChannelIntro.tsx @@ -16,6 +16,13 @@ import type { UserProfileLookup } from "@/features/profile/lib/identity"; import { Button } from "@/shared/ui/button"; import { UserAvatar } from "@/shared/ui/UserAvatar"; +const MARKET_BOARD_GUTTER_CLASS = "mx-5"; + +/** Aligns the market board with the channel header and timeline avatars. */ +export function MarketBoardLayout({ children }: { children: React.ReactNode }) { + return
{children}
; +} + export function MarketBidTable({ bids, onOpenBid, @@ -27,17 +34,14 @@ export function MarketBidTable({ }) { return (
- +
-
Bidder - Bid - - Message + Bid Action @@ -70,9 +74,6 @@ export function MarketBidTable({ : "Terms in thread"} {` ยท ${bid.quantity} ${bid.quantity === 1 ? "unit" : "units"}`} - - {bid.message} -