jb-infinite-scroll 1.2.0 → 1.2.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/README.md +6 -0
- package/package.json +1 -1
- package/react/README.md +2 -0
- package/react/dist/JBInfiniteScroll.cjs.js +1 -1
- package/react/dist/JBInfiniteScroll.cjs.js.map +1 -1
- package/react/dist/JBInfiniteScroll.js +1 -1
- package/react/dist/JBInfiniteScroll.js.map +1 -1
- package/react/dist/JBInfiniteScroll.umd.js +1 -1
- package/react/dist/JBInfiniteScroll.umd.js.map +1 -1
- package/react/dist/web-component/jb-infinite-scroll/react/lib/JBInfiniteScroll.d.ts +2 -0
- package/react/lib/JBInfiniteScroll.tsx +2 -1
package/README.md
CHANGED
|
@@ -12,6 +12,12 @@ Infinite scroll web-component with additional features including:
|
|
|
12
12
|
- enable/disable scroll capture
|
|
13
13
|
- support loading state with customizable ui
|
|
14
14
|
|
|
15
|
+
Demo in codepen: https://codepen.io/javadbat/pen/EaYGGEo
|
|
16
|
+
|
|
17
|
+
## using with JS frameworks
|
|
18
|
+
|
|
19
|
+
to use this component in **react** see [`jb-infinite-scroll/react`](https://github.com/javadbat/jb-infinite-scroll/tree/main/react);
|
|
20
|
+
|
|
15
21
|
## installation
|
|
16
22
|
```js
|
|
17
23
|
import "jb-infinite-scroll" from jb-infinite-scroll;
|
package/package.json
CHANGED
package/react/README.md
CHANGED
|
@@ -4,6 +4,8 @@ infinite scroll react component.
|
|
|
4
4
|
|
|
5
5
|
>this component is a react wrapper for [jb-infinite-scroll](https://github.com/javadbat/jb-infinite-scroll). so for more information read it's doc.
|
|
6
6
|
|
|
7
|
+
Demo in codeSandBox: [codeSandbox preview](https://3f63dj.csb.app/samples/jb-infinite-scroll) for just see the demo and [codeSandbox editor](https://codesandbox.io/p/sandbox/jb-design-system-3f63dj?file=%2Fsrc%2Fsamples%2FJBInfiniteScroll.tsx) if you want to see and play with code
|
|
8
|
+
|
|
7
9
|
## usage
|
|
8
10
|
first install component in npm or any other package manager
|
|
9
11
|
|
|
@@ -73,7 +73,7 @@ const JBInfiniteScroll = React.forwardRef((props, ref) => {
|
|
|
73
73
|
element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);
|
|
74
74
|
}
|
|
75
75
|
}, [element.current, props.stateChangeWaitingBehavior]);
|
|
76
|
-
return (React.createElement("jb-infinite-scroll", { ref: element }, props.children));
|
|
76
|
+
return (React.createElement("jb-infinite-scroll", { class: props.className, ref: element }, props.children));
|
|
77
77
|
});
|
|
78
78
|
JBInfiniteScroll.displayName = "JBInfiniteScroll";
|
|
79
79
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JBInfiniteScroll.cjs.js","sources":["../../../../common/hooks/use-event.ts","../lib/JBInfiniteScroll.tsx"],"sourcesContent":["import { useEffect } from \"react\";\r\n\r\nexport function useEvent(dom:HTMLElement, event:any, handler:any, passive = false) {\r\n useEffect(() => {\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n });\r\n}\r\nexport function useBindEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler:(e:TEvent)=>void, passive = false) {\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}","import React, { useState, useRef, useCallback, useEffect, useImperativeHandle } from 'react';\r\nimport \"jb-infinite-scroll\";\r\n\r\n// eslint-disable-next-line no-duplicate-imports\r\nimport {JBInfiniteScrollWebComponent, StateChangeWaitingBehavior} from \"jb-infinite-scroll\";\r\nimport { useBindEvent } from \"../../../../common/hooks/use-event.js\";\r\n\r\ndeclare global {\r\n // eslint-disable-next-line @typescript-eslint/no-namespace\r\n namespace JSX {\r\n interface IntrinsicElements {\r\n 'jb-infinite-scroll': JBInfiniteScrollType;\r\n }\r\n interface JBInfiniteScrollType extends React.DetailedHTMLProps<React.HTMLAttributes<JBInfiniteScrollWebComponent>, JBInfiniteScrollWebComponent> {\r\n \"class\"?: string,\r\n \"type\"?: string;\r\n }\r\n }\r\n}\r\n\r\nconst JBInfiniteScroll = React.forwardRef((props: Props, ref:React.ForwardedRef<JBInfiniteScrollWebComponent>) => {\r\n const element = useRef<JBInfiniteScrollWebComponent>(null);\r\n useImperativeHandle(\r\n ref,\r\n () => (element ? element.current : null),\r\n [element],\r\n );\r\n\r\n const onScrollEnd = useCallback((e:CustomEvent) => {\r\n if (typeof props.onScrollEnd == \"function\") {\r\n props.onScrollEnd(e);\r\n }\r\n }, [props.onScrollEnd]);\r\n\r\n useBindEvent(element, 'scrollEnd', onScrollEnd, true);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isLoading == \"boolean\") {\r\n if (props.isLoading) {\r\n element.current.setAttribute('is-loading', 'true');\r\n } else {\r\n element.current.setAttribute('is-loading', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isLoading]);\r\n\r\n useEffect(() => {\r\n if (element.current, typeof props.isListEmpty == \"boolean\") {\r\n if (props.isListEmpty) {\r\n element.current.setAttribute('is-list-empty', 'true');\r\n } else {\r\n element.current.setAttribute('is-list-empty', 'false');\r\n\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEmpty]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isListEnded == \"boolean\") {\r\n if (props.isListEnded) {\r\n element.current?.setAttribute('is-list-ended', 'true');\r\n } else {\r\n element.current?.setAttribute('is-list-ended', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEnded]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.disableCaptureScroll == \"boolean\") {\r\n if (props.disableCaptureScroll) {\r\n element.current?.setAttribute('disable-capture-scroll', 'true');\r\n } else {\r\n element.current?.setAttribute('disable-capture-scroll', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.disableCaptureScroll]);\r\n\r\n useEffect(() => {\r\n if (props.stateChangeWaitingBehavior && element.current) {\r\n element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);\r\n }\r\n }, [element.current, props.stateChangeWaitingBehavior]);\r\n return (\r\n <jb-infinite-scroll ref={element}>{props.children}</jb-infinite-scroll>\r\n );\r\n});\r\n\r\nexport type Props = React.PropsWithChildren< {\r\n stateChangeWaitingBehavior?: StateChangeWaitingBehavior,\r\n disableCaptureScroll?: boolean,\r\n isListEmpty?: boolean,\r\n isLoading?: boolean,\r\n isListEnded?:boolean,\r\n onScrollEnd?:(e:CustomEvent)=>void\r\n}>\r\n\r\nJBInfiniteScroll.displayName = \"JBInfiniteScroll\";\r\n\r\nexport {JBInfiniteScroll, StateChangeWaitingBehavior};"],"names":["useEffect","useRef","useImperativeHandle","useCallback"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JBInfiniteScroll.cjs.js","sources":["../../../../common/hooks/use-event.ts","../lib/JBInfiniteScroll.tsx"],"sourcesContent":["import { useEffect } from \"react\";\r\n\r\nexport function useEvent(dom:HTMLElement, event:any, handler:any, passive = false) {\r\n useEffect(() => {\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n });\r\n}\r\nexport function useBindEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler:(e:TEvent)=>void, passive = false) {\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}","import React, { useState, useRef, useCallback, useEffect, useImperativeHandle } from 'react';\r\nimport \"jb-infinite-scroll\";\r\n\r\n// eslint-disable-next-line no-duplicate-imports\r\nimport {JBInfiniteScrollWebComponent, StateChangeWaitingBehavior} from \"jb-infinite-scroll\";\r\nimport { useBindEvent } from \"../../../../common/hooks/use-event.js\";\r\n\r\ndeclare global {\r\n // eslint-disable-next-line @typescript-eslint/no-namespace\r\n namespace JSX {\r\n interface IntrinsicElements {\r\n 'jb-infinite-scroll': JBInfiniteScrollType;\r\n }\r\n interface JBInfiniteScrollType extends React.DetailedHTMLProps<React.HTMLAttributes<JBInfiniteScrollWebComponent>, JBInfiniteScrollWebComponent> {\r\n \"class\"?: string,\r\n \"type\"?: string;\r\n }\r\n }\r\n}\r\n\r\nconst JBInfiniteScroll = React.forwardRef((props: Props, ref:React.ForwardedRef<JBInfiniteScrollWebComponent>) => {\r\n const element = useRef<JBInfiniteScrollWebComponent>(null);\r\n useImperativeHandle(\r\n ref,\r\n () => (element ? element.current : null),\r\n [element],\r\n );\r\n\r\n const onScrollEnd = useCallback((e:CustomEvent) => {\r\n if (typeof props.onScrollEnd == \"function\") {\r\n props.onScrollEnd(e);\r\n }\r\n }, [props.onScrollEnd]);\r\n\r\n useBindEvent(element, 'scrollEnd', onScrollEnd, true);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isLoading == \"boolean\") {\r\n if (props.isLoading) {\r\n element.current.setAttribute('is-loading', 'true');\r\n } else {\r\n element.current.setAttribute('is-loading', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isLoading]);\r\n\r\n useEffect(() => {\r\n if (element.current, typeof props.isListEmpty == \"boolean\") {\r\n if (props.isListEmpty) {\r\n element.current.setAttribute('is-list-empty', 'true');\r\n } else {\r\n element.current.setAttribute('is-list-empty', 'false');\r\n\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEmpty]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isListEnded == \"boolean\") {\r\n if (props.isListEnded) {\r\n element.current?.setAttribute('is-list-ended', 'true');\r\n } else {\r\n element.current?.setAttribute('is-list-ended', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEnded]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.disableCaptureScroll == \"boolean\") {\r\n if (props.disableCaptureScroll) {\r\n element.current?.setAttribute('disable-capture-scroll', 'true');\r\n } else {\r\n element.current?.setAttribute('disable-capture-scroll', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.disableCaptureScroll]);\r\n\r\n useEffect(() => {\r\n if (props.stateChangeWaitingBehavior && element.current) {\r\n element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);\r\n }\r\n }, [element.current, props.stateChangeWaitingBehavior]);\r\n return (\r\n <jb-infinite-scroll class={props.className} ref={element}>{props.children}</jb-infinite-scroll>\r\n );\r\n});\r\n\r\nexport type Props = React.PropsWithChildren< {\r\n stateChangeWaitingBehavior?: StateChangeWaitingBehavior,\r\n disableCaptureScroll?: boolean,\r\n isListEmpty?: boolean,\r\n isLoading?: boolean,\r\n isListEnded?:boolean,\r\n className?:string\r\n onScrollEnd?:(e:CustomEvent)=>void\r\n}>\r\n\r\nJBInfiniteScroll.displayName = \"JBInfiniteScroll\";\r\n\r\nexport {JBInfiniteScroll, StateChangeWaitingBehavior};"],"names":["useEffect","useRef","useImperativeHandle","useCallback"],"mappings":"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"}
|
|
@@ -71,7 +71,7 @@ const JBInfiniteScroll = React.forwardRef((props, ref) => {
|
|
|
71
71
|
element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);
|
|
72
72
|
}
|
|
73
73
|
}, [element.current, props.stateChangeWaitingBehavior]);
|
|
74
|
-
return (React.createElement("jb-infinite-scroll", { ref: element }, props.children));
|
|
74
|
+
return (React.createElement("jb-infinite-scroll", { class: props.className, ref: element }, props.children));
|
|
75
75
|
});
|
|
76
76
|
JBInfiniteScroll.displayName = "JBInfiniteScroll";
|
|
77
77
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JBInfiniteScroll.js","sources":["../../../../common/hooks/use-event.ts","../lib/JBInfiniteScroll.tsx"],"sourcesContent":["import { useEffect } from \"react\";\r\n\r\nexport function useEvent(dom:HTMLElement, event:any, handler:any, passive = false) {\r\n useEffect(() => {\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n });\r\n}\r\nexport function useBindEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler:(e:TEvent)=>void, passive = false) {\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}","import React, { useState, useRef, useCallback, useEffect, useImperativeHandle } from 'react';\r\nimport \"jb-infinite-scroll\";\r\n\r\n// eslint-disable-next-line no-duplicate-imports\r\nimport {JBInfiniteScrollWebComponent, StateChangeWaitingBehavior} from \"jb-infinite-scroll\";\r\nimport { useBindEvent } from \"../../../../common/hooks/use-event.js\";\r\n\r\ndeclare global {\r\n // eslint-disable-next-line @typescript-eslint/no-namespace\r\n namespace JSX {\r\n interface IntrinsicElements {\r\n 'jb-infinite-scroll': JBInfiniteScrollType;\r\n }\r\n interface JBInfiniteScrollType extends React.DetailedHTMLProps<React.HTMLAttributes<JBInfiniteScrollWebComponent>, JBInfiniteScrollWebComponent> {\r\n \"class\"?: string,\r\n \"type\"?: string;\r\n }\r\n }\r\n}\r\n\r\nconst JBInfiniteScroll = React.forwardRef((props: Props, ref:React.ForwardedRef<JBInfiniteScrollWebComponent>) => {\r\n const element = useRef<JBInfiniteScrollWebComponent>(null);\r\n useImperativeHandle(\r\n ref,\r\n () => (element ? element.current : null),\r\n [element],\r\n );\r\n\r\n const onScrollEnd = useCallback((e:CustomEvent) => {\r\n if (typeof props.onScrollEnd == \"function\") {\r\n props.onScrollEnd(e);\r\n }\r\n }, [props.onScrollEnd]);\r\n\r\n useBindEvent(element, 'scrollEnd', onScrollEnd, true);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isLoading == \"boolean\") {\r\n if (props.isLoading) {\r\n element.current.setAttribute('is-loading', 'true');\r\n } else {\r\n element.current.setAttribute('is-loading', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isLoading]);\r\n\r\n useEffect(() => {\r\n if (element.current, typeof props.isListEmpty == \"boolean\") {\r\n if (props.isListEmpty) {\r\n element.current.setAttribute('is-list-empty', 'true');\r\n } else {\r\n element.current.setAttribute('is-list-empty', 'false');\r\n\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEmpty]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isListEnded == \"boolean\") {\r\n if (props.isListEnded) {\r\n element.current?.setAttribute('is-list-ended', 'true');\r\n } else {\r\n element.current?.setAttribute('is-list-ended', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEnded]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.disableCaptureScroll == \"boolean\") {\r\n if (props.disableCaptureScroll) {\r\n element.current?.setAttribute('disable-capture-scroll', 'true');\r\n } else {\r\n element.current?.setAttribute('disable-capture-scroll', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.disableCaptureScroll]);\r\n\r\n useEffect(() => {\r\n if (props.stateChangeWaitingBehavior && element.current) {\r\n element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);\r\n }\r\n }, [element.current, props.stateChangeWaitingBehavior]);\r\n return (\r\n <jb-infinite-scroll ref={element}>{props.children}</jb-infinite-scroll>\r\n );\r\n});\r\n\r\nexport type Props = React.PropsWithChildren< {\r\n stateChangeWaitingBehavior?: StateChangeWaitingBehavior,\r\n disableCaptureScroll?: boolean,\r\n isListEmpty?: boolean,\r\n isLoading?: boolean,\r\n isListEnded?:boolean,\r\n onScrollEnd?:(e:CustomEvent)=>void\r\n}>\r\n\r\nJBInfiniteScroll.displayName = \"JBInfiniteScroll\";\r\n\r\nexport {JBInfiniteScroll, StateChangeWaitingBehavior};"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JBInfiniteScroll.js","sources":["../../../../common/hooks/use-event.ts","../lib/JBInfiniteScroll.tsx"],"sourcesContent":["import { useEffect } from \"react\";\r\n\r\nexport function useEvent(dom:HTMLElement, event:any, handler:any, passive = false) {\r\n useEffect(() => {\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n });\r\n}\r\nexport function useBindEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler:(e:TEvent)=>void, passive = false) {\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}","import React, { useState, useRef, useCallback, useEffect, useImperativeHandle } from 'react';\r\nimport \"jb-infinite-scroll\";\r\n\r\n// eslint-disable-next-line no-duplicate-imports\r\nimport {JBInfiniteScrollWebComponent, StateChangeWaitingBehavior} from \"jb-infinite-scroll\";\r\nimport { useBindEvent } from \"../../../../common/hooks/use-event.js\";\r\n\r\ndeclare global {\r\n // eslint-disable-next-line @typescript-eslint/no-namespace\r\n namespace JSX {\r\n interface IntrinsicElements {\r\n 'jb-infinite-scroll': JBInfiniteScrollType;\r\n }\r\n interface JBInfiniteScrollType extends React.DetailedHTMLProps<React.HTMLAttributes<JBInfiniteScrollWebComponent>, JBInfiniteScrollWebComponent> {\r\n \"class\"?: string,\r\n \"type\"?: string;\r\n }\r\n }\r\n}\r\n\r\nconst JBInfiniteScroll = React.forwardRef((props: Props, ref:React.ForwardedRef<JBInfiniteScrollWebComponent>) => {\r\n const element = useRef<JBInfiniteScrollWebComponent>(null);\r\n useImperativeHandle(\r\n ref,\r\n () => (element ? element.current : null),\r\n [element],\r\n );\r\n\r\n const onScrollEnd = useCallback((e:CustomEvent) => {\r\n if (typeof props.onScrollEnd == \"function\") {\r\n props.onScrollEnd(e);\r\n }\r\n }, [props.onScrollEnd]);\r\n\r\n useBindEvent(element, 'scrollEnd', onScrollEnd, true);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isLoading == \"boolean\") {\r\n if (props.isLoading) {\r\n element.current.setAttribute('is-loading', 'true');\r\n } else {\r\n element.current.setAttribute('is-loading', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isLoading]);\r\n\r\n useEffect(() => {\r\n if (element.current, typeof props.isListEmpty == \"boolean\") {\r\n if (props.isListEmpty) {\r\n element.current.setAttribute('is-list-empty', 'true');\r\n } else {\r\n element.current.setAttribute('is-list-empty', 'false');\r\n\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEmpty]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isListEnded == \"boolean\") {\r\n if (props.isListEnded) {\r\n element.current?.setAttribute('is-list-ended', 'true');\r\n } else {\r\n element.current?.setAttribute('is-list-ended', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEnded]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.disableCaptureScroll == \"boolean\") {\r\n if (props.disableCaptureScroll) {\r\n element.current?.setAttribute('disable-capture-scroll', 'true');\r\n } else {\r\n element.current?.setAttribute('disable-capture-scroll', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.disableCaptureScroll]);\r\n\r\n useEffect(() => {\r\n if (props.stateChangeWaitingBehavior && element.current) {\r\n element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);\r\n }\r\n }, [element.current, props.stateChangeWaitingBehavior]);\r\n return (\r\n <jb-infinite-scroll class={props.className} ref={element}>{props.children}</jb-infinite-scroll>\r\n );\r\n});\r\n\r\nexport type Props = React.PropsWithChildren< {\r\n stateChangeWaitingBehavior?: StateChangeWaitingBehavior,\r\n disableCaptureScroll?: boolean,\r\n isListEmpty?: boolean,\r\n isLoading?: boolean,\r\n isListEnded?:boolean,\r\n className?:string\r\n onScrollEnd?:(e:CustomEvent)=>void\r\n}>\r\n\r\nJBInfiniteScroll.displayName = \"JBInfiniteScroll\";\r\n\r\nexport {JBInfiniteScroll, StateChangeWaitingBehavior};"],"names":[],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);
|
|
75
75
|
}
|
|
76
76
|
}, [element.current, props.stateChangeWaitingBehavior]);
|
|
77
|
-
return (React.createElement("jb-infinite-scroll", { ref: element }, props.children));
|
|
77
|
+
return (React.createElement("jb-infinite-scroll", { class: props.className, ref: element }, props.children));
|
|
78
78
|
});
|
|
79
79
|
JBInfiniteScroll.displayName = "JBInfiniteScroll";
|
|
80
80
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JBInfiniteScroll.umd.js","sources":["../../../../common/hooks/use-event.ts","../lib/JBInfiniteScroll.tsx"],"sourcesContent":["import { useEffect } from \"react\";\r\n\r\nexport function useEvent(dom:HTMLElement, event:any, handler:any, passive = false) {\r\n useEffect(() => {\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n });\r\n}\r\nexport function useBindEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler:(e:TEvent)=>void, passive = false) {\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}","import React, { useState, useRef, useCallback, useEffect, useImperativeHandle } from 'react';\r\nimport \"jb-infinite-scroll\";\r\n\r\n// eslint-disable-next-line no-duplicate-imports\r\nimport {JBInfiniteScrollWebComponent, StateChangeWaitingBehavior} from \"jb-infinite-scroll\";\r\nimport { useBindEvent } from \"../../../../common/hooks/use-event.js\";\r\n\r\ndeclare global {\r\n // eslint-disable-next-line @typescript-eslint/no-namespace\r\n namespace JSX {\r\n interface IntrinsicElements {\r\n 'jb-infinite-scroll': JBInfiniteScrollType;\r\n }\r\n interface JBInfiniteScrollType extends React.DetailedHTMLProps<React.HTMLAttributes<JBInfiniteScrollWebComponent>, JBInfiniteScrollWebComponent> {\r\n \"class\"?: string,\r\n \"type\"?: string;\r\n }\r\n }\r\n}\r\n\r\nconst JBInfiniteScroll = React.forwardRef((props: Props, ref:React.ForwardedRef<JBInfiniteScrollWebComponent>) => {\r\n const element = useRef<JBInfiniteScrollWebComponent>(null);\r\n useImperativeHandle(\r\n ref,\r\n () => (element ? element.current : null),\r\n [element],\r\n );\r\n\r\n const onScrollEnd = useCallback((e:CustomEvent) => {\r\n if (typeof props.onScrollEnd == \"function\") {\r\n props.onScrollEnd(e);\r\n }\r\n }, [props.onScrollEnd]);\r\n\r\n useBindEvent(element, 'scrollEnd', onScrollEnd, true);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isLoading == \"boolean\") {\r\n if (props.isLoading) {\r\n element.current.setAttribute('is-loading', 'true');\r\n } else {\r\n element.current.setAttribute('is-loading', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isLoading]);\r\n\r\n useEffect(() => {\r\n if (element.current, typeof props.isListEmpty == \"boolean\") {\r\n if (props.isListEmpty) {\r\n element.current.setAttribute('is-list-empty', 'true');\r\n } else {\r\n element.current.setAttribute('is-list-empty', 'false');\r\n\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEmpty]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isListEnded == \"boolean\") {\r\n if (props.isListEnded) {\r\n element.current?.setAttribute('is-list-ended', 'true');\r\n } else {\r\n element.current?.setAttribute('is-list-ended', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEnded]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.disableCaptureScroll == \"boolean\") {\r\n if (props.disableCaptureScroll) {\r\n element.current?.setAttribute('disable-capture-scroll', 'true');\r\n } else {\r\n element.current?.setAttribute('disable-capture-scroll', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.disableCaptureScroll]);\r\n\r\n useEffect(() => {\r\n if (props.stateChangeWaitingBehavior && element.current) {\r\n element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);\r\n }\r\n }, [element.current, props.stateChangeWaitingBehavior]);\r\n return (\r\n <jb-infinite-scroll ref={element}>{props.children}</jb-infinite-scroll>\r\n );\r\n});\r\n\r\nexport type Props = React.PropsWithChildren< {\r\n stateChangeWaitingBehavior?: StateChangeWaitingBehavior,\r\n disableCaptureScroll?: boolean,\r\n isListEmpty?: boolean,\r\n isLoading?: boolean,\r\n isListEnded?:boolean,\r\n onScrollEnd?:(e:CustomEvent)=>void\r\n}>\r\n\r\nJBInfiniteScroll.displayName = \"JBInfiniteScroll\";\r\n\r\nexport {JBInfiniteScroll, StateChangeWaitingBehavior};"],"names":["useEffect","useRef","useImperativeHandle","useCallback"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"JBInfiniteScroll.umd.js","sources":["../../../../common/hooks/use-event.ts","../lib/JBInfiniteScroll.tsx"],"sourcesContent":["import { useEffect } from \"react\";\r\n\r\nexport function useEvent(dom:HTMLElement, event:any, handler:any, passive = false) {\r\n useEffect(() => {\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n });\r\n}\r\nexport function useBindEvent<TRef extends React.MutableRefObject<any|null>,TEvent>(ref:TRef, event:string, handler:(e:TEvent)=>void, passive = false) {\r\n useEffect(() => {\r\n const dom = ref.current;\r\n if (dom) {\r\n // initiate the event handler\r\n dom.addEventListener(event, handler, passive); \r\n }\r\n // this will clean up the event every time the component is re-rendered\r\n return function cleanup() {\r\n if(dom){\r\n dom.removeEventListener(event, handler, passive);\r\n }\r\n };\r\n },[ref,event,handler,passive]);\r\n}","import React, { useState, useRef, useCallback, useEffect, useImperativeHandle } from 'react';\r\nimport \"jb-infinite-scroll\";\r\n\r\n// eslint-disable-next-line no-duplicate-imports\r\nimport {JBInfiniteScrollWebComponent, StateChangeWaitingBehavior} from \"jb-infinite-scroll\";\r\nimport { useBindEvent } from \"../../../../common/hooks/use-event.js\";\r\n\r\ndeclare global {\r\n // eslint-disable-next-line @typescript-eslint/no-namespace\r\n namespace JSX {\r\n interface IntrinsicElements {\r\n 'jb-infinite-scroll': JBInfiniteScrollType;\r\n }\r\n interface JBInfiniteScrollType extends React.DetailedHTMLProps<React.HTMLAttributes<JBInfiniteScrollWebComponent>, JBInfiniteScrollWebComponent> {\r\n \"class\"?: string,\r\n \"type\"?: string;\r\n }\r\n }\r\n}\r\n\r\nconst JBInfiniteScroll = React.forwardRef((props: Props, ref:React.ForwardedRef<JBInfiniteScrollWebComponent>) => {\r\n const element = useRef<JBInfiniteScrollWebComponent>(null);\r\n useImperativeHandle(\r\n ref,\r\n () => (element ? element.current : null),\r\n [element],\r\n );\r\n\r\n const onScrollEnd = useCallback((e:CustomEvent) => {\r\n if (typeof props.onScrollEnd == \"function\") {\r\n props.onScrollEnd(e);\r\n }\r\n }, [props.onScrollEnd]);\r\n\r\n useBindEvent(element, 'scrollEnd', onScrollEnd, true);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isLoading == \"boolean\") {\r\n if (props.isLoading) {\r\n element.current.setAttribute('is-loading', 'true');\r\n } else {\r\n element.current.setAttribute('is-loading', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isLoading]);\r\n\r\n useEffect(() => {\r\n if (element.current, typeof props.isListEmpty == \"boolean\") {\r\n if (props.isListEmpty) {\r\n element.current.setAttribute('is-list-empty', 'true');\r\n } else {\r\n element.current.setAttribute('is-list-empty', 'false');\r\n\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEmpty]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.isListEnded == \"boolean\") {\r\n if (props.isListEnded) {\r\n element.current?.setAttribute('is-list-ended', 'true');\r\n } else {\r\n element.current?.setAttribute('is-list-ended', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.isListEnded]);\r\n\r\n useEffect(() => {\r\n if (element.current && typeof props.disableCaptureScroll == \"boolean\") {\r\n if (props.disableCaptureScroll) {\r\n element.current?.setAttribute('disable-capture-scroll', 'true');\r\n } else {\r\n element.current?.setAttribute('disable-capture-scroll', 'false');\r\n }\r\n }\r\n\r\n }, [element.current, props.disableCaptureScroll]);\r\n\r\n useEffect(() => {\r\n if (props.stateChangeWaitingBehavior && element.current) {\r\n element.current?.setAttribute('state-change-waiting-behavior', props.stateChangeWaitingBehavior);\r\n }\r\n }, [element.current, props.stateChangeWaitingBehavior]);\r\n return (\r\n <jb-infinite-scroll class={props.className} ref={element}>{props.children}</jb-infinite-scroll>\r\n );\r\n});\r\n\r\nexport type Props = React.PropsWithChildren< {\r\n stateChangeWaitingBehavior?: StateChangeWaitingBehavior,\r\n disableCaptureScroll?: boolean,\r\n isListEmpty?: boolean,\r\n isLoading?: boolean,\r\n isListEnded?:boolean,\r\n className?:string\r\n onScrollEnd?:(e:CustomEvent)=>void\r\n}>\r\n\r\nJBInfiniteScroll.displayName = \"JBInfiniteScroll\";\r\n\r\nexport {JBInfiniteScroll, StateChangeWaitingBehavior};"],"names":["useEffect","useRef","useImperativeHandle","useCallback"],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ declare const JBInfiniteScroll: React.ForwardRefExoticComponent<{
|
|
|
18
18
|
isListEmpty?: boolean;
|
|
19
19
|
isLoading?: boolean;
|
|
20
20
|
isListEnded?: boolean;
|
|
21
|
+
className?: string;
|
|
21
22
|
onScrollEnd?: (e: CustomEvent) => void;
|
|
22
23
|
} & {
|
|
23
24
|
children?: React.ReactNode;
|
|
@@ -28,6 +29,7 @@ export type Props = React.PropsWithChildren<{
|
|
|
28
29
|
isListEmpty?: boolean;
|
|
29
30
|
isLoading?: boolean;
|
|
30
31
|
isListEnded?: boolean;
|
|
32
|
+
className?: string;
|
|
31
33
|
onScrollEnd?: (e: CustomEvent) => void;
|
|
32
34
|
}>;
|
|
33
35
|
export { JBInfiniteScroll, StateChangeWaitingBehavior };
|
|
@@ -85,7 +85,7 @@ const JBInfiniteScroll = React.forwardRef((props: Props, ref:React.ForwardedRef<
|
|
|
85
85
|
}
|
|
86
86
|
}, [element.current, props.stateChangeWaitingBehavior]);
|
|
87
87
|
return (
|
|
88
|
-
<jb-infinite-scroll ref={element}>{props.children}</jb-infinite-scroll>
|
|
88
|
+
<jb-infinite-scroll class={props.className} ref={element}>{props.children}</jb-infinite-scroll>
|
|
89
89
|
);
|
|
90
90
|
});
|
|
91
91
|
|
|
@@ -95,6 +95,7 @@ export type Props = React.PropsWithChildren< {
|
|
|
95
95
|
isListEmpty?: boolean,
|
|
96
96
|
isLoading?: boolean,
|
|
97
97
|
isListEnded?:boolean,
|
|
98
|
+
className?:string
|
|
98
99
|
onScrollEnd?:(e:CustomEvent)=>void
|
|
99
100
|
}>
|
|
100
101
|
|