stream-chat-react 13.1.1 → 13.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Chat/hooks/useChat.js +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +1 -1
- package/dist/components/InfiniteScrollPaginator/InfiniteScroll.js +16 -25
- package/dist/index.browser.cjs +15 -28
- package/dist/index.browser.cjs.map +3 -3
- package/dist/index.node.cjs +15 -28
- package/dist/index.node.cjs.map +3 -3
- package/package.json +1 -1
|
@@ -24,7 +24,7 @@ export const useChat = ({ client, defaultLanguage = 'en', i18nInstance, initialN
|
|
|
24
24
|
useEffect(() => {
|
|
25
25
|
if (!client)
|
|
26
26
|
return;
|
|
27
|
-
const version = "13.1.
|
|
27
|
+
const version = "13.1.2";
|
|
28
28
|
const userAgent = client.getUserAgent();
|
|
29
29
|
if (!userAgent.includes('stream-chat-react')) {
|
|
30
30
|
// result looks like: 'stream-chat-react-2.3.2-stream-chat-javascript-client-browser-2.2.2'
|
|
@@ -42,4 +42,4 @@ export type InfiniteScrollProps = PaginatorProps & {
|
|
|
42
42
|
* In general, the infinite scroll controller should not aim for checking the loading state and whether there is more data to load.
|
|
43
43
|
* That should be controlled by the loading function.
|
|
44
44
|
*/
|
|
45
|
-
export declare const InfiniteScroll: (props: PropsWithChildren<InfiniteScrollProps>) => React.
|
|
45
|
+
export declare const InfiniteScroll: (props: PropsWithChildren<InfiniteScrollProps>) => React.JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useRef } from 'react';
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
2
|
import { deprecationAndReplacementWarning } from '../../utils/deprecationWarning';
|
|
3
3
|
import { DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD } from '../../constants/limits';
|
|
4
4
|
/**
|
|
@@ -21,17 +21,17 @@ const mousewheelListener = (event) => {
|
|
|
21
21
|
* That should be controlled by the loading function.
|
|
22
22
|
*/
|
|
23
23
|
export const InfiniteScroll = (props) => {
|
|
24
|
-
const { children, element = 'div', hasMore, hasMoreNewer, hasNextPage, hasPreviousPage, head, initialLoad = true, isLoading, listenToScroll, loader, loadMore, loadMoreNewer, loadNextPage, loadPreviousPage, threshold = DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD, useCapture = false, ...elementProps } = props;
|
|
24
|
+
const { children, element: Component = 'div', hasMore, hasMoreNewer, hasNextPage, hasPreviousPage, head, initialLoad = true, isLoading, listenToScroll, loader, loadMore, loadMoreNewer, loadNextPage, loadPreviousPage, threshold = DEFAULT_LOAD_PAGE_SCROLL_THRESHOLD, useCapture = false, ...elementProps } = props;
|
|
25
25
|
const loadNextPageFn = loadNextPage || loadMoreNewer;
|
|
26
26
|
const loadPreviousPageFn = loadPreviousPage || loadMore;
|
|
27
27
|
const hasNextPageFlag = hasNextPage || hasMoreNewer;
|
|
28
28
|
const hasPreviousPageFlag = hasPreviousPage || hasMore;
|
|
29
|
-
const scrollComponent =
|
|
29
|
+
const [scrollComponent, setScrollComponent] = useState(null);
|
|
30
30
|
const previousOffset = useRef(undefined);
|
|
31
31
|
const previousReverseOffset = useRef(undefined);
|
|
32
32
|
const scrollListenerRef = useRef(undefined);
|
|
33
33
|
scrollListenerRef.current = () => {
|
|
34
|
-
const element = scrollComponent
|
|
34
|
+
const element = scrollComponent;
|
|
35
35
|
if (!element || element.offsetParent === null) {
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
@@ -71,7 +71,7 @@ export const InfiniteScroll = (props) => {
|
|
|
71
71
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
72
|
}, []);
|
|
73
73
|
useEffect(() => {
|
|
74
|
-
const scrollElement = scrollComponent
|
|
74
|
+
const scrollElement = scrollComponent?.parentNode;
|
|
75
75
|
if (!scrollElement)
|
|
76
76
|
return;
|
|
77
77
|
const scrollListener = () => scrollListenerRef.current?.();
|
|
@@ -82,27 +82,18 @@ export const InfiniteScroll = (props) => {
|
|
|
82
82
|
scrollElement.removeEventListener('scroll', scrollListener, useCapture);
|
|
83
83
|
scrollElement.removeEventListener('resize', scrollListener, useCapture);
|
|
84
84
|
};
|
|
85
|
-
}, [initialLoad, useCapture]);
|
|
85
|
+
}, [initialLoad, scrollComponent, useCapture]);
|
|
86
86
|
useEffect(() => {
|
|
87
|
-
const scrollElement = scrollComponent
|
|
88
|
-
if (scrollElement)
|
|
89
|
-
|
|
90
|
-
}
|
|
87
|
+
const scrollElement = scrollComponent?.parentNode;
|
|
88
|
+
if (!scrollElement)
|
|
89
|
+
return;
|
|
90
|
+
scrollElement.addEventListener('wheel', mousewheelListener, { passive: false });
|
|
91
91
|
return () => {
|
|
92
|
-
|
|
93
|
-
scrollElement.removeEventListener('wheel', mousewheelListener, useCapture);
|
|
94
|
-
}
|
|
92
|
+
scrollElement.removeEventListener('wheel', mousewheelListener, useCapture);
|
|
95
93
|
};
|
|
96
|
-
}, [useCapture]);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
},
|
|
102
|
-
};
|
|
103
|
-
const childrenArray = [loader, children];
|
|
104
|
-
if (head) {
|
|
105
|
-
childrenArray.unshift(head);
|
|
106
|
-
}
|
|
107
|
-
return React.createElement(element, attributes, childrenArray);
|
|
94
|
+
}, [scrollComponent, useCapture]);
|
|
95
|
+
return (React.createElement(Component, { ...elementProps, ref: setScrollComponent },
|
|
96
|
+
head,
|
|
97
|
+
loader,
|
|
98
|
+
children));
|
|
108
99
|
};
|
package/dist/index.browser.cjs
CHANGED
|
@@ -45425,7 +45425,7 @@ var mousewheelListener2 = (event) => {
|
|
|
45425
45425
|
var InfiniteScroll = (props) => {
|
|
45426
45426
|
const {
|
|
45427
45427
|
children,
|
|
45428
|
-
element:
|
|
45428
|
+
element: Component2 = "div",
|
|
45429
45429
|
hasMore,
|
|
45430
45430
|
hasMoreNewer,
|
|
45431
45431
|
hasNextPage,
|
|
@@ -45447,17 +45447,17 @@ var InfiniteScroll = (props) => {
|
|
|
45447
45447
|
const loadPreviousPageFn = loadPreviousPage || loadMore;
|
|
45448
45448
|
const hasNextPageFlag = hasNextPage || hasMoreNewer;
|
|
45449
45449
|
const hasPreviousPageFlag = hasPreviousPage || hasMore;
|
|
45450
|
-
const scrollComponent = (0, import_react181.
|
|
45450
|
+
const [scrollComponent, setScrollComponent] = (0, import_react181.useState)(null);
|
|
45451
45451
|
const previousOffset = (0, import_react181.useRef)(void 0);
|
|
45452
45452
|
const previousReverseOffset = (0, import_react181.useRef)(void 0);
|
|
45453
45453
|
const scrollListenerRef = (0, import_react181.useRef)(void 0);
|
|
45454
45454
|
scrollListenerRef.current = () => {
|
|
45455
|
-
const
|
|
45456
|
-
if (!
|
|
45455
|
+
const element4 = scrollComponent;
|
|
45456
|
+
if (!element4 || element4.offsetParent === null) {
|
|
45457
45457
|
return;
|
|
45458
45458
|
}
|
|
45459
|
-
const parentElement =
|
|
45460
|
-
const offset =
|
|
45459
|
+
const parentElement = element4.parentElement;
|
|
45460
|
+
const offset = element4.scrollHeight - parentElement.scrollTop - parentElement.clientHeight;
|
|
45461
45461
|
const reverseOffset = parentElement.scrollTop;
|
|
45462
45462
|
if (listenToScroll) {
|
|
45463
45463
|
listenToScroll(offset, reverseOffset, threshold);
|
|
@@ -45486,7 +45486,7 @@ var InfiniteScroll = (props) => {
|
|
|
45486
45486
|
);
|
|
45487
45487
|
}, []);
|
|
45488
45488
|
(0, import_react181.useEffect)(() => {
|
|
45489
|
-
const scrollElement = scrollComponent
|
|
45489
|
+
const scrollElement = scrollComponent?.parentNode;
|
|
45490
45490
|
if (!scrollElement) return;
|
|
45491
45491
|
const scrollListener = () => scrollListenerRef.current?.();
|
|
45492
45492
|
scrollElement.addEventListener("scroll", scrollListener, useCapture);
|
|
@@ -45496,29 +45496,16 @@ var InfiniteScroll = (props) => {
|
|
|
45496
45496
|
scrollElement.removeEventListener("scroll", scrollListener, useCapture);
|
|
45497
45497
|
scrollElement.removeEventListener("resize", scrollListener, useCapture);
|
|
45498
45498
|
};
|
|
45499
|
-
}, [initialLoad, useCapture]);
|
|
45499
|
+
}, [initialLoad, scrollComponent, useCapture]);
|
|
45500
45500
|
(0, import_react181.useEffect)(() => {
|
|
45501
|
-
const scrollElement = scrollComponent
|
|
45502
|
-
if (scrollElement)
|
|
45503
|
-
|
|
45504
|
-
}
|
|
45501
|
+
const scrollElement = scrollComponent?.parentNode;
|
|
45502
|
+
if (!scrollElement) return;
|
|
45503
|
+
scrollElement.addEventListener("wheel", mousewheelListener2, { passive: false });
|
|
45505
45504
|
return () => {
|
|
45506
|
-
|
|
45507
|
-
scrollElement.removeEventListener("wheel", mousewheelListener2, useCapture);
|
|
45508
|
-
}
|
|
45505
|
+
scrollElement.removeEventListener("wheel", mousewheelListener2, useCapture);
|
|
45509
45506
|
};
|
|
45510
|
-
}, [useCapture]);
|
|
45511
|
-
|
|
45512
|
-
...elementProps,
|
|
45513
|
-
ref: (element5) => {
|
|
45514
|
-
scrollComponent.current = element5;
|
|
45515
|
-
}
|
|
45516
|
-
};
|
|
45517
|
-
const childrenArray = [loader, children];
|
|
45518
|
-
if (head) {
|
|
45519
|
-
childrenArray.unshift(head);
|
|
45520
|
-
}
|
|
45521
|
-
return import_react181.default.createElement(element4, attributes, childrenArray);
|
|
45507
|
+
}, [scrollComponent, useCapture]);
|
|
45508
|
+
return /* @__PURE__ */ import_react181.default.createElement(Component2, { ...elementProps, ref: setScrollComponent }, head, loader, children);
|
|
45522
45509
|
};
|
|
45523
45510
|
|
|
45524
45511
|
// src/components/TypingIndicator/TypingIndicator.tsx
|
|
@@ -52651,7 +52638,7 @@ var useChat = ({
|
|
|
52651
52638
|
};
|
|
52652
52639
|
(0, import_react272.useEffect)(() => {
|
|
52653
52640
|
if (!client) return;
|
|
52654
|
-
const version = "13.1.
|
|
52641
|
+
const version = "13.1.2";
|
|
52655
52642
|
const userAgent = client.getUserAgent();
|
|
52656
52643
|
if (!userAgent.includes("stream-chat-react")) {
|
|
52657
52644
|
client.setUserAgent(`stream-chat-react-${version}-${userAgent}`);
|