Skip to content
6 changes: 5 additions & 1 deletion packages/x/components/bubble/BubbleList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { useXProviderContext } from '../x-provider';
import Bubble from './Bubble';
import { BubbleContext } from './context';
import DividerBubble from './Divider';
import { useCompatibleScroll } from './hooks/useCompatibleScroll';
import {
BubbleItemType,
BubbleListProps,
Expand Down Expand Up @@ -138,6 +139,8 @@ const BubbleList: React.ForwardRefRenderFunction<BubbleListRef, BubbleListProps>

const bubblesRef = React.useRef<BubblesRecord>({});

const { reset } = useCompatibleScroll(autoScroll ? scrollBoxRef.current : null);

// ============================ Prefix ============================
const { getPrefixCls } = useXProviderContext();

Expand Down Expand Up @@ -165,8 +168,9 @@ const BubbleList: React.ForwardRefRenderFunction<BubbleListRef, BubbleListProps>
const lastItemKey = items[items.length - 1]?.key || items.length;
React.useEffect(() => {
if (!scrollBoxRef.current) return;
reset();
scrollBoxRef.current?.scrollTo({ top: autoScroll ? 0 : scrollBoxRef.current.scrollHeight });
}, [lastItemKey, autoScroll]);
}, [lastItemKey, autoScroll, reset]);

// ============================= Refs =============================
useProxyImperativeHandle(ref, () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,58 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing

exports[`renders components/bubble/demo/_test.tsx extend context correctly 1`] = `
<div
class="ant-flex css-var-_r_40_ ant-flex-align-stretch ant-flex-vertical"
style="height: 320px; gap: 20px;"
>
<div
class="ant-flex css-var-_r_40_ ant-flex-gap-small"
>
<button
class="ant-btn css-var-_r_40_ ant-btn-primary ant-btn-color-primary ant-btn-variant-solid"
type="button"
>
<span>
start
</span>
</button>
<button
class="ant-btn css-var-_r_40_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"
type="button"
>
<span>
stop
</span>
</button>
<button
class="ant-btn css-var-_r_40_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"
type="button"
>
<span>
clear
</span>
</button>
<button
class="ant-btn css-var-_r_40_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"
type="button"
>
<span>
autoScroll
</span>
</button>
</div>
<div
class="ant-bubble-list css-var-_r_40_"
>
<div
class="ant-bubble-list-scroll-box ant-bubble-list-autoscroll"
/>
</div>
</div>
`;

exports[`renders components/bubble/demo/_test.tsx extend context correctly 2`] = `[]`;

exports[`renders components/bubble/demo/animation.tsx extend context correctly 1`] = `
<div
class="ant-flex css-var-_r_3u_ ant-flex-align-stretch ant-flex-gap-small ant-flex-vertical"
Expand Down Expand Up @@ -1632,6 +1685,9 @@ exports[`renders components/bubble/demo/list.tsx extend context correctly 1`] =
<div
class="ant-bubble-list-scroll-box ant-bubble-list-autoscroll"
>
<div
style="bottom: 0px; flex-shrink: 0; pointer-events: none; height: 10px; visibility: hidden;"
/>
<div
class="ant-bubble css-var-_r_f_ ant-bubble-start ant-bubble-loading"
>
Expand Down Expand Up @@ -2741,6 +2797,9 @@ exports[`renders components/bubble/demo/list-scroll.tsx extend context correctly
<div
class="ant-bubble-list-scroll-box ant-bubble-list-autoscroll"
>
<div
style="bottom: 0px; flex-shrink: 0; pointer-events: none; height: 10px; visibility: hidden;"
/>
<div
class="ant-bubble css-var-_r_s_ ant-bubble-end"
>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,56 @@
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing

exports[`renders components/bubble/demo/_test.tsx correctly 1`] = `
<div
class="ant-flex css-var-_R_0_ ant-flex-align-stretch ant-flex-vertical"
style="height:320px;gap:20px"
>
<div
class="ant-flex css-var-_R_0_ ant-flex-gap-small"
>
<button
class="ant-btn css-var-_R_0_ ant-btn-primary ant-btn-color-primary ant-btn-variant-solid"
type="button"
>
<span>
start
</span>
</button>
<button
class="ant-btn css-var-_R_0_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"
type="button"
>
<span>
stop
</span>
</button>
<button
class="ant-btn css-var-_R_0_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"
type="button"
>
<span>
clear
</span>
</button>
<button
class="ant-btn css-var-_R_0_ ant-btn-default ant-btn-color-default ant-btn-variant-outlined"
type="button"
>
<span>
autoScroll
</span>
</button>
</div>
<div
class="ant-bubble-list css-var-_R_0_"
>
<div
class="ant-bubble-list-scroll-box ant-bubble-list-autoscroll"
/>
</div>
</div>
`;

exports[`renders components/bubble/demo/animation.tsx correctly 1`] = `
<div
class="ant-flex css-var-_R_0_ ant-flex-align-stretch ant-flex-gap-small ant-flex-vertical"
Expand Down
Loading
Loading