Message scroller

A headless scroller that sticks a thread to its newest message. Scroll up and it stops following; a floating outline icon-smbutton appears to jump back to the bottom and counts what arrived meanwhile. Only the reader's own sends are scroll anchors: an assistant reply never moves a reader who has scrolled up.

<MessageScrollerProvider autoScroll>
  <MessageScroller className="h-96 rounded-md border">
    <MessageScrollerViewport>
      <MessageScrollerContent>
        <MessageScrollerItem scrollAnchor={isOwnLatestSend}>
          <Message>…</Message>
        </MessageScrollerItem>
      </MessageScrollerContent>
    </MessageScrollerViewport>
    <MessageScrollerButton />
  </MessageScroller>
</MessageScrollerProvider>

Live thread

Row 1 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 2 noted.

Row 3 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 4 noted.

Row 5 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 6 noted.

Row 7 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 8 noted.

Row 9 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 10 noted.

Row 11 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 12 noted.

Row 13 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 14 noted.

Row 15 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 16 noted.

Row 17 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 18 noted.

Row 19 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 20 noted.

Row 21 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 22 noted.

Row 23 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 24 noted.

Row 25 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 26 noted.

Row 27 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 28 noted.

Row 29 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 30 noted.

History and empty states

Loading earlier messages…

Row 1 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant

NH

Got it — row 2 noted.

Row 3 of the comparable-lot price scan finished without errors.

Drafted by Pricing assistant