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.
@@ -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.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.ReactElement<any, string | React.JSXElementConstructor<any>>;
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 = useRef(undefined);
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.current;
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.current?.parentNode;
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.current?.parentNode;
88
- if (scrollElement) {
89
- scrollElement.addEventListener('wheel', mousewheelListener, { passive: false });
90
- }
87
+ const scrollElement = scrollComponent?.parentNode;
88
+ if (!scrollElement)
89
+ return;
90
+ scrollElement.addEventListener('wheel', mousewheelListener, { passive: false });
91
91
  return () => {
92
- if (scrollElement) {
93
- scrollElement.removeEventListener('wheel', mousewheelListener, useCapture);
94
- }
92
+ scrollElement.removeEventListener('wheel', mousewheelListener, useCapture);
95
93
  };
96
- }, [useCapture]);
97
- const attributes = {
98
- ...elementProps,
99
- ref: (element) => {
100
- scrollComponent.current = element;
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
  };
@@ -45425,7 +45425,7 @@ var mousewheelListener2 = (event) => {
45425
45425
  var InfiniteScroll = (props) => {
45426
45426
  const {
45427
45427
  children,
45428
- element: element4 = "div",
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.useRef)(void 0);
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 element5 = scrollComponent.current;
45456
- if (!element5 || element5.offsetParent === null) {
45455
+ const element4 = scrollComponent;
45456
+ if (!element4 || element4.offsetParent === null) {
45457
45457
  return;
45458
45458
  }
45459
- const parentElement = element5.parentElement;
45460
- const offset = element5.scrollHeight - parentElement.scrollTop - parentElement.clientHeight;
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.current?.parentNode;
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.current?.parentNode;
45502
- if (scrollElement) {
45503
- scrollElement.addEventListener("wheel", mousewheelListener2, { passive: false });
45504
- }
45501
+ const scrollElement = scrollComponent?.parentNode;
45502
+ if (!scrollElement) return;
45503
+ scrollElement.addEventListener("wheel", mousewheelListener2, { passive: false });
45505
45504
  return () => {
45506
- if (scrollElement) {
45507
- scrollElement.removeEventListener("wheel", mousewheelListener2, useCapture);
45508
- }
45505
+ scrollElement.removeEventListener("wheel", mousewheelListener2, useCapture);
45509
45506
  };
45510
- }, [useCapture]);
45511
- const attributes = {
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.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}`);