next-data-kit 7.4.1 → 7.5.0

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.
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import type { TDataKitInput, TDataKitResult, TDataKitFilterItem, TDataKitSelectableItem, TDataKitStateMode, TExtractDataKitItemType, TFilterConfig, TUseDataKitReturn, TDataKitRef } from '../../types';
3
+ export declare const DataKitInfinity: <TAction extends (input: TDataKitInput<unknown>) => Promise<TDataKitResult<TDataKitSelectableItem>>>(props: Readonly<{
4
+ action: TAction;
5
+ query?: Record<string, unknown>;
6
+ filterConfig?: TFilterConfig;
7
+ filters?: TDataKitFilterItem[];
8
+ limit?: {
9
+ default: number;
10
+ };
11
+ defaultSort?: {
12
+ path: string;
13
+ value: 1 | -1;
14
+ }[];
15
+ className?: string;
16
+ autoFetch?: boolean;
17
+ debounce?: number;
18
+ state?: TDataKitStateMode;
19
+ inverse?: boolean;
20
+ pullDownToRefresh?: {
21
+ isActive: boolean;
22
+ threshold?: number;
23
+ };
24
+ children: (dataKit: TUseDataKitReturn<unknown, TExtractDataKitItemType<TAction>>) => React.ReactNode;
25
+ ref?: React.Ref<TDataKitRef<unknown, TExtractDataKitItemType<TAction>>>;
26
+ }>) => React.ReactElement;
27
+ //# sourceMappingURL=data-kit-infinity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-kit-infinity.d.ts","sourceRoot":"","sources":["../../../src/client/components/data-kit-infinity.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAgBxE,OAAO,KAAK,EACP,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACf,MAAM,aAAa,CAAC;AAqVrB,eAAO,MAAM,eAAe,EAAwD,CAC/E,OAAO,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,EAElG,KAAK,EAAE,QAAQ,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;KAAE,EAAE,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iBAAiB,CAAC,EAAE;QACf,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACrG,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5E,CAAC,KACF,KAAK,CAAC,YAAY,CAAC"}
@@ -0,0 +1,169 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React, { useState, useEffect, useRef, useCallback } from 'react';
4
+ import { useInView } from 'react-intersection-observer';
5
+ import { Filter, Loader2, RefreshCw } from 'lucide-react';
6
+ import { useDataKit } from '../hooks/useDataKit';
7
+ import { Button, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, } from './ui';
8
+ const DataKitInfinityInner = (props, ref) => {
9
+ // ** Deconstruct Props
10
+ const { action, query, filterConfig, filters = [], limit: limitConfig, defaultSort = [], className, autoFetch = true, debounce = 300, state: stateMode = 'memory', inverse = false, pullDownToRefresh, children, } = props;
11
+ // ** Ref
12
+ const containerRef = useRef(null);
13
+ const scrollContainerRef = useRef(null);
14
+ const [allItems, setAllItems] = useState([]);
15
+ // ** State
16
+ const [isFilterOpen, setIsFilterOpen] = useState(false);
17
+ const [isPullRefreshing, setIsPullRefreshing] = useState(false);
18
+ const [pullStartY, setPullStartY] = useState(0);
19
+ const [pullDistance, setPullDistance] = useState(0);
20
+ // ** Variable
21
+ const overlayContainer = containerRef.current;
22
+ const pullThreshold = pullDownToRefresh?.threshold ?? 50;
23
+ // ** Hooks
24
+ const dataKit = useDataKit({
25
+ action: action,
26
+ filterConfig,
27
+ autoFetch: false, // We'll control fetching manually
28
+ debounce,
29
+ state: stateMode,
30
+ initial: {
31
+ limit: limitConfig?.default ?? 10,
32
+ query: query ?? {},
33
+ sorts: defaultSort,
34
+ filter: filters.reduce((acc, f) => {
35
+ if (f.defaultValue !== undefined)
36
+ acc[f.id] = f.defaultValue;
37
+ return acc;
38
+ }, {}),
39
+ },
40
+ });
41
+ // ** Intersection Observer for infinite scroll
42
+ const { ref: loadMoreRef, inView } = useInView({
43
+ threshold: 0,
44
+ rootMargin: '100px',
45
+ });
46
+ // ** Imperative Handle
47
+ React.useImperativeHandle(ref, () => dataKit, [dataKit]);
48
+ // ** Handlers
49
+ const handleResetFilters = useCallback(() => {
50
+ filters.forEach((f) => {
51
+ dataKit.actions.setFilter(f.id, f.defaultValue ?? (f.type === 'BOOLEAN' ? false : ''));
52
+ });
53
+ }, [filters, dataKit.actions]);
54
+ const loadMore = useCallback(async () => {
55
+ if (dataKit.state.isLoading || !dataKit.state.hasNextPage)
56
+ return;
57
+ dataKit.actions.setPage(dataKit.page + 1);
58
+ }, [dataKit]);
59
+ const resetAndFetch = useCallback(async () => {
60
+ setAllItems([]);
61
+ dataKit.actions.setPage(1);
62
+ await dataKit.actions.refresh();
63
+ }, [dataKit.actions]);
64
+ // ** Pull to refresh handlers
65
+ const handleTouchStart = useCallback((e) => {
66
+ if (!pullDownToRefresh?.isActive)
67
+ return;
68
+ const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
69
+ if (scrollTop === 0 && e.touches && e.touches[0]) {
70
+ setPullStartY(e.touches[0].clientY);
71
+ }
72
+ }, [pullDownToRefresh?.isActive]);
73
+ const handleTouchMove = useCallback((e) => {
74
+ if (!pullDownToRefresh?.isActive || pullStartY === 0)
75
+ return;
76
+ if (!e.touches || !e.touches[0])
77
+ return;
78
+ const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
79
+ if (scrollTop === 0) {
80
+ const distance = e.touches[0].clientY - pullStartY;
81
+ if (distance > 0) {
82
+ setPullDistance(Math.min(distance, pullThreshold * 2));
83
+ if (distance > pullThreshold * 2) {
84
+ e.preventDefault();
85
+ }
86
+ }
87
+ }
88
+ }, [pullDownToRefresh?.isActive, pullStartY, pullThreshold]);
89
+ const handleTouchEnd = useCallback(async () => {
90
+ if (!pullDownToRefresh?.isActive)
91
+ return;
92
+ if (pullDistance > pullThreshold) {
93
+ setIsPullRefreshing(true);
94
+ await resetAndFetch();
95
+ setIsPullRefreshing(false);
96
+ }
97
+ setPullStartY(0);
98
+ setPullDistance(0);
99
+ }, [pullDownToRefresh?.isActive, pullDistance, pullThreshold, resetAndFetch]);
100
+ // ** Effects
101
+ useEffect(() => {
102
+ if (!pullDownToRefresh?.isActive)
103
+ return;
104
+ const container = scrollContainerRef.current;
105
+ if (!container)
106
+ return;
107
+ container.addEventListener('touchstart', handleTouchStart);
108
+ container.addEventListener('touchmove', handleTouchMove, { passive: false });
109
+ container.addEventListener('touchend', handleTouchEnd);
110
+ return () => {
111
+ container.removeEventListener('touchstart', handleTouchStart);
112
+ container.removeEventListener('touchmove', handleTouchMove);
113
+ container.removeEventListener('touchend', handleTouchEnd);
114
+ };
115
+ }, [pullDownToRefresh?.isActive, handleTouchStart, handleTouchMove, handleTouchEnd]);
116
+ // ** Initial fetch
117
+ useEffect(() => {
118
+ if (autoFetch && dataKit.page === 1 && allItems.length === 0) {
119
+ dataKit.actions.refresh();
120
+ }
121
+ }, [autoFetch]); // eslint-disable-line react-hooks/exhaustive-deps
122
+ // ** Append new items when dataKit items change
123
+ useEffect(() => {
124
+ if (dataKit.items.length > 0) {
125
+ setAllItems((prev) => {
126
+ if (dataKit.page === 1) {
127
+ return dataKit.items;
128
+ }
129
+ // Check if items are already in the list to avoid duplicates
130
+ const newItems = dataKit.items.filter((newItem) => !prev.some((existingItem) => existingItem.id === newItem.id));
131
+ return inverse ? [...newItems, ...prev] : [...prev, ...newItems];
132
+ });
133
+ }
134
+ }, [dataKit.items, dataKit.page, inverse]);
135
+ // ** Load more when in view
136
+ useEffect(() => {
137
+ if (inView && !inverse) {
138
+ loadMore();
139
+ }
140
+ }, [inView, inverse, loadMore]);
141
+ // ** Trigger load more on scroll for inverse mode
142
+ useEffect(() => {
143
+ if (!inverse)
144
+ return;
145
+ const handleScroll = () => {
146
+ const container = scrollContainerRef.current;
147
+ if (!container)
148
+ return;
149
+ if (container.scrollTop === 0 && !dataKit.state.isLoading && dataKit.state.hasNextPage) {
150
+ loadMore();
151
+ }
152
+ };
153
+ const container = scrollContainerRef.current;
154
+ if (container) {
155
+ container.addEventListener('scroll', handleScroll);
156
+ return () => container.removeEventListener('scroll', handleScroll);
157
+ }
158
+ return undefined;
159
+ }, [inverse, loadMore, dataKit.state.isLoading, dataKit.state.hasNextPage]);
160
+ // ** Create enhanced dataKit with all accumulated items
161
+ const enhancedDataKit = {
162
+ ...dataKit,
163
+ items: allItems,
164
+ };
165
+ // ** Render
166
+ return (_jsxs("div", { ref: containerRef, className: `flex flex-col ${className ?? ''}`, children: [_jsxs("div", { className: "mb-3 flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2", children: [filters.length > 0 && (_jsxs(Popover, { open: isFilterOpen, onOpenChange: setIsFilterOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", size: "sm", children: [_jsx(Filter, { className: "mr-1.5 size-4" }), "Filters"] }) }), _jsxs(PopoverContent, { align: "start", className: "w-80", container: overlayContainer, children: [_jsx("div", { className: "grid gap-3", children: filters.map((f) => (_jsxs("div", { className: "grid gap-1.5", children: [_jsx("label", { className: "text-sm font-medium", children: f.label }), f.type === 'TEXT' && (_jsx("input", { type: "text", className: "h-9 w-full rounded-md border bg-transparent px-3 text-sm outline-none focus:ring-2 focus:ring-ring", placeholder: f.placeholder, value: dataKit.filter[f.id] ?? '', onChange: (e) => dataKit.actions.setFilter(f.id, e.target.value) })), f.type === 'SELECT' && (_jsxs(Select, { value: String(dataKit.filter[f.id] || '__all__'), onValueChange: (v) => dataKit.actions.setFilter(f.id, v === '__all__' ? '' : v), children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, {}) }), _jsxs(SelectContent, { container: overlayContainer, children: [_jsx(SelectItem, { value: "__all__", children: "All" }), f.dataset?.map((d) => (_jsx(SelectItem, { value: d.id, children: d.label }, d.id)))] })] })), f.type === 'BOOLEAN' && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: f.placeholder ?? 'Enable' }), _jsx(Switch, { checked: Boolean(dataKit.filter[f.id]), onCheckedChange: (c) => dataKit.actions.setFilter(f.id, c) })] }))] }, f.id))) }), _jsxs("div", { className: "mt-4 flex justify-between border-t pt-3", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: handleResetFilters, children: "Reset" }), _jsx(Button, { size: "sm", onClick: () => setIsFilterOpen(false), children: "Done" })] })] })] })), _jsxs(Button, { variant: "outline", size: "sm", onClick: resetAndFetch, disabled: dataKit.state.isLoading, children: [_jsx(RefreshCw, { className: `mr-1.5 size-4 ${dataKit.state.isLoading ? 'animate-spin' : ''}` }), "Refresh"] })] }), _jsx("div", { className: "flex items-center gap-1", children: _jsxs("span", { className: "mr-2 text-sm text-muted-foreground", children: [allItems.length, " loaded"] }) })] }), _jsxs("div", { ref: scrollContainerRef, className: "relative flex-1 overflow-auto", children: [pullDownToRefresh?.isActive && pullDistance > 0 && (_jsx("div", { className: "absolute left-0 right-0 top-0 flex items-center justify-center bg-background/80 backdrop-blur-sm transition-all", style: { height: `${pullDistance}px` }, children: pullDistance > pullThreshold ? (_jsx(RefreshCw, { className: "size-5 text-primary" })) : (_jsx("span", { className: "text-sm text-muted-foreground", children: "Pull to refresh" })) })), isPullRefreshing && (_jsx("div", { className: "flex items-center justify-center py-4", children: _jsx(Loader2, { className: "size-6 animate-spin text-muted-foreground" }) })), inverse && dataKit.state.hasNextPage && (_jsx("div", { className: "flex items-center justify-center py-4", children: dataKit.state.isLoading && _jsx(Loader2, { className: "size-6 animate-spin text-muted-foreground" }) })), children(enhancedDataKit), !inverse && (_jsxs("div", { ref: loadMoreRef, className: "flex items-center justify-center py-4", children: [dataKit.state.isLoading && _jsx(Loader2, { className: "size-6 animate-spin text-muted-foreground" }), !dataKit.state.isLoading && !dataKit.state.hasNextPage && allItems.length > 0 && (_jsx("p", { className: "text-sm text-muted-foreground", children: "You're all set" }))] })), !dataKit.state.isLoading && allItems.length === 0 && (_jsx("div", { className: "flex h-48 items-center justify-center text-muted-foreground", children: "No results found." }))] })] }));
167
+ };
168
+ export const DataKitInfinity = React.forwardRef(DataKitInfinityInner);
169
+ //# sourceMappingURL=data-kit-infinity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-kit-infinity.js","sourceRoot":"","sources":["../../../src/client/components/data-kit-infinity.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export { DataKitTable } from './data-kit-table';
2
2
  export { DataKit } from './data-kit';
3
+ export { DataKitInfinity } from './data-kit-infinity';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { DataKitTable } from './data-kit-table';
2
2
  export { DataKit } from './data-kit';
3
+ export { DataKitInfinity } from './data-kit-infinity';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDataKit.d.ts","sourceRoot":"","sources":["../../../src/client/hooks/useDataKit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAiC,kBAAkB,EAAc,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGpH,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CA2QtH,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"useDataKit.d.ts","sourceRoot":"","sources":["../../../src/client/hooks/useDataKit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAiC,kBAAkB,EAAc,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGpH,eAAO,MAAM,UAAU,GAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CA8QtH,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
@@ -218,6 +218,8 @@ export const useDataKit = (props) => {
218
218
  mounted.current = false;
219
219
  };
220
220
  }, []);
221
+ // ** Calculate hasNextPage
222
+ const hasNextPage = page * limit < total;
221
223
  return {
222
224
  page,
223
225
  limit,
@@ -227,7 +229,7 @@ export const useDataKit = (props) => {
227
229
  query,
228
230
  items,
229
231
  total,
230
- state: { isLoading, error },
232
+ state: { isLoading, error, hasNextPage },
231
233
  actions: {
232
234
  setPage,
233
235
  setLimit,
@@ -1 +1 @@
1
- {"version":3,"file":"useDataKit.js","sourceRoot":"","sources":["../../../src/client/hooks/useDataKit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDataKit.js","sourceRoot":"","sources":["../../../src/client/hooks/useDataKit.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -11,6 +11,7 @@ var SwitchPrimitive = require('@radix-ui/react-switch');
11
11
  var reactSlot = require('@radix-ui/react-slot');
12
12
  var classVarianceAuthority = require('class-variance-authority');
13
13
  var SelectPrimitive = require('@radix-ui/react-select');
14
+ var reactIntersectionObserver = require('react-intersection-observer');
14
15
 
15
16
  function _interopNamespace(e) {
16
17
  if (e && e.__esModule) return e;
@@ -611,6 +612,7 @@ var useDataKit = (props) => {
611
612
  mounted.current = false;
612
613
  };
613
614
  }, []);
615
+ const hasNextPage = page * limit < total;
614
616
  return {
615
617
  page,
616
618
  limit,
@@ -620,7 +622,7 @@ var useDataKit = (props) => {
620
622
  query,
621
623
  items,
622
624
  total,
623
- state: { isLoading, error },
625
+ state: { isLoading, error, hasNextPage },
624
626
  actions: {
625
627
  setPage,
626
628
  setLimit,
@@ -1799,6 +1801,237 @@ var DataKitInner = (props, ref) => {
1799
1801
  ] });
1800
1802
  };
1801
1803
  var DataKit = React2__namespace.default.forwardRef(DataKitInner);
1804
+ var DataKitInfinityInner = (props, ref) => {
1805
+ const {
1806
+ action,
1807
+ query,
1808
+ filterConfig,
1809
+ filters = [],
1810
+ limit: limitConfig,
1811
+ defaultSort = [],
1812
+ className,
1813
+ autoFetch = true,
1814
+ debounce: debounce2 = 300,
1815
+ state: stateMode = "memory",
1816
+ inverse = false,
1817
+ pullDownToRefresh,
1818
+ children
1819
+ } = props;
1820
+ const containerRef = React2.useRef(null);
1821
+ const scrollContainerRef = React2.useRef(null);
1822
+ const [allItems, setAllItems] = React2.useState([]);
1823
+ const [isFilterOpen, setIsFilterOpen] = React2.useState(false);
1824
+ const [isPullRefreshing, setIsPullRefreshing] = React2.useState(false);
1825
+ const [pullStartY, setPullStartY] = React2.useState(0);
1826
+ const [pullDistance, setPullDistance] = React2.useState(0);
1827
+ const overlayContainer = containerRef.current;
1828
+ const pullThreshold = pullDownToRefresh?.threshold ?? 50;
1829
+ const dataKit = useDataKit({
1830
+ action,
1831
+ filterConfig,
1832
+ autoFetch: false,
1833
+ // We'll control fetching manually
1834
+ debounce: debounce2,
1835
+ state: stateMode,
1836
+ initial: {
1837
+ limit: limitConfig?.default ?? 10,
1838
+ query: query ?? {},
1839
+ sorts: defaultSort,
1840
+ filter: filters.reduce((acc, f) => {
1841
+ if (f.defaultValue !== void 0) acc[f.id] = f.defaultValue;
1842
+ return acc;
1843
+ }, {})
1844
+ }
1845
+ });
1846
+ const { ref: loadMoreRef, inView } = reactIntersectionObserver.useInView({
1847
+ threshold: 0,
1848
+ rootMargin: "100px"
1849
+ });
1850
+ React2__namespace.default.useImperativeHandle(ref, () => dataKit, [dataKit]);
1851
+ const handleResetFilters = React2.useCallback(() => {
1852
+ filters.forEach((f) => {
1853
+ dataKit.actions.setFilter(f.id, f.defaultValue ?? (f.type === "BOOLEAN" ? false : ""));
1854
+ });
1855
+ }, [filters, dataKit.actions]);
1856
+ const loadMore = React2.useCallback(async () => {
1857
+ if (dataKit.state.isLoading || !dataKit.state.hasNextPage) return;
1858
+ dataKit.actions.setPage(dataKit.page + 1);
1859
+ }, [dataKit]);
1860
+ const resetAndFetch = React2.useCallback(async () => {
1861
+ setAllItems([]);
1862
+ dataKit.actions.setPage(1);
1863
+ await dataKit.actions.refresh();
1864
+ }, [dataKit.actions]);
1865
+ const handleTouchStart = React2.useCallback((e) => {
1866
+ if (!pullDownToRefresh?.isActive) return;
1867
+ const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
1868
+ if (scrollTop === 0 && e.touches && e.touches[0]) {
1869
+ setPullStartY(e.touches[0].clientY);
1870
+ }
1871
+ }, [pullDownToRefresh?.isActive]);
1872
+ const handleTouchMove = React2.useCallback((e) => {
1873
+ if (!pullDownToRefresh?.isActive || pullStartY === 0) return;
1874
+ if (!e.touches || !e.touches[0]) return;
1875
+ const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
1876
+ if (scrollTop === 0) {
1877
+ const distance = e.touches[0].clientY - pullStartY;
1878
+ if (distance > 0) {
1879
+ setPullDistance(Math.min(distance, pullThreshold * 2));
1880
+ if (distance > pullThreshold * 2) {
1881
+ e.preventDefault();
1882
+ }
1883
+ }
1884
+ }
1885
+ }, [pullDownToRefresh?.isActive, pullStartY, pullThreshold]);
1886
+ const handleTouchEnd = React2.useCallback(async () => {
1887
+ if (!pullDownToRefresh?.isActive) return;
1888
+ if (pullDistance > pullThreshold) {
1889
+ setIsPullRefreshing(true);
1890
+ await resetAndFetch();
1891
+ setIsPullRefreshing(false);
1892
+ }
1893
+ setPullStartY(0);
1894
+ setPullDistance(0);
1895
+ }, [pullDownToRefresh?.isActive, pullDistance, pullThreshold, resetAndFetch]);
1896
+ React2.useEffect(() => {
1897
+ if (!pullDownToRefresh?.isActive) return;
1898
+ const container = scrollContainerRef.current;
1899
+ if (!container) return;
1900
+ container.addEventListener("touchstart", handleTouchStart);
1901
+ container.addEventListener("touchmove", handleTouchMove, { passive: false });
1902
+ container.addEventListener("touchend", handleTouchEnd);
1903
+ return () => {
1904
+ container.removeEventListener("touchstart", handleTouchStart);
1905
+ container.removeEventListener("touchmove", handleTouchMove);
1906
+ container.removeEventListener("touchend", handleTouchEnd);
1907
+ };
1908
+ }, [pullDownToRefresh?.isActive, handleTouchStart, handleTouchMove, handleTouchEnd]);
1909
+ React2.useEffect(() => {
1910
+ if (autoFetch && dataKit.page === 1 && allItems.length === 0) {
1911
+ dataKit.actions.refresh();
1912
+ }
1913
+ }, [autoFetch]);
1914
+ React2.useEffect(() => {
1915
+ if (dataKit.items.length > 0) {
1916
+ setAllItems((prev) => {
1917
+ if (dataKit.page === 1) {
1918
+ return dataKit.items;
1919
+ }
1920
+ const newItems = dataKit.items.filter(
1921
+ (newItem) => !prev.some((existingItem) => existingItem.id === newItem.id)
1922
+ );
1923
+ return inverse ? [...newItems, ...prev] : [...prev, ...newItems];
1924
+ });
1925
+ }
1926
+ }, [dataKit.items, dataKit.page, inverse]);
1927
+ React2.useEffect(() => {
1928
+ if (inView && !inverse) {
1929
+ loadMore();
1930
+ }
1931
+ }, [inView, inverse, loadMore]);
1932
+ React2.useEffect(() => {
1933
+ if (!inverse) return;
1934
+ const handleScroll = () => {
1935
+ const container2 = scrollContainerRef.current;
1936
+ if (!container2) return;
1937
+ if (container2.scrollTop === 0 && !dataKit.state.isLoading && dataKit.state.hasNextPage) {
1938
+ loadMore();
1939
+ }
1940
+ };
1941
+ const container = scrollContainerRef.current;
1942
+ if (container) {
1943
+ container.addEventListener("scroll", handleScroll);
1944
+ return () => container.removeEventListener("scroll", handleScroll);
1945
+ }
1946
+ return void 0;
1947
+ }, [inverse, loadMore, dataKit.state.isLoading, dataKit.state.hasNextPage]);
1948
+ const enhancedDataKit = {
1949
+ ...dataKit,
1950
+ items: allItems
1951
+ };
1952
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: `flex flex-col ${className ?? ""}`, children: [
1953
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center justify-between gap-2", children: [
1954
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1955
+ filters.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open: isFilterOpen, onOpenChange: setIsFilterOpen, children: [
1956
+ /* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "outline", size: "sm", children: [
1957
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Filter, { className: "mr-1.5 size-4" }),
1958
+ "Filters"
1959
+ ] }) }),
1960
+ /* @__PURE__ */ jsxRuntime.jsxs(PopoverContent, { align: "start", className: "w-80", container: overlayContainer, children: [
1961
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-3", children: filters.map((f) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
1962
+ /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium", children: f.label }),
1963
+ f.type === "TEXT" && /* @__PURE__ */ jsxRuntime.jsx(
1964
+ "input",
1965
+ {
1966
+ type: "text",
1967
+ className: "h-9 w-full rounded-md border bg-transparent px-3 text-sm outline-none focus:ring-2 focus:ring-ring",
1968
+ placeholder: f.placeholder,
1969
+ value: dataKit.filter[f.id] ?? "",
1970
+ onChange: (e) => dataKit.actions.setFilter(f.id, e.target.value)
1971
+ }
1972
+ ),
1973
+ f.type === "SELECT" && /* @__PURE__ */ jsxRuntime.jsxs(
1974
+ Select,
1975
+ {
1976
+ value: String(dataKit.filter[f.id] || "__all__"),
1977
+ onValueChange: (v) => dataKit.actions.setFilter(f.id, v === "__all__" ? "" : v),
1978
+ children: [
1979
+ /* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectValue, {}) }),
1980
+ /* @__PURE__ */ jsxRuntime.jsxs(SelectContent, { container: overlayContainer, children: [
1981
+ /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { value: "__all__", children: "All" }),
1982
+ f.dataset?.map((d) => /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { value: d.id, children: d.label }, d.id))
1983
+ ] })
1984
+ ]
1985
+ }
1986
+ ),
1987
+ f.type === "BOOLEAN" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1988
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: f.placeholder ?? "Enable" }),
1989
+ /* @__PURE__ */ jsxRuntime.jsx(
1990
+ Switch,
1991
+ {
1992
+ checked: Boolean(dataKit.filter[f.id]),
1993
+ onCheckedChange: (c) => dataKit.actions.setFilter(f.id, c)
1994
+ }
1995
+ )
1996
+ ] })
1997
+ ] }, f.id)) }),
1998
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex justify-between border-t pt-3", children: [
1999
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", size: "sm", onClick: handleResetFilters, children: "Reset" }),
2000
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "sm", onClick: () => setIsFilterOpen(false), children: "Done" })
2001
+ ] })
2002
+ ] })
2003
+ ] }),
2004
+ /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "outline", size: "sm", onClick: resetAndFetch, disabled: dataKit.state.isLoading, children: [
2005
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: `mr-1.5 size-4 ${dataKit.state.isLoading ? "animate-spin" : ""}` }),
2006
+ "Refresh"
2007
+ ] })
2008
+ ] }),
2009
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1", children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "mr-2 text-sm text-muted-foreground", children: [
2010
+ allItems.length,
2011
+ " loaded"
2012
+ ] }) })
2013
+ ] }),
2014
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: scrollContainerRef, className: "relative flex-1 overflow-auto", children: [
2015
+ pullDownToRefresh?.isActive && pullDistance > 0 && /* @__PURE__ */ jsxRuntime.jsx(
2016
+ "div",
2017
+ {
2018
+ className: "absolute left-0 right-0 top-0 flex items-center justify-center bg-background/80 backdrop-blur-sm transition-all",
2019
+ style: { height: `${pullDistance}px` },
2020
+ children: pullDistance > pullThreshold ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.RefreshCw, { className: "size-5 text-primary" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "Pull to refresh" })
2021
+ }
2022
+ ),
2023
+ isPullRefreshing && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-4", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-6 animate-spin text-muted-foreground" }) }),
2024
+ inverse && dataKit.state.hasNextPage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center py-4", children: dataKit.state.isLoading && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-6 animate-spin text-muted-foreground" }) }),
2025
+ children(enhancedDataKit),
2026
+ !inverse && /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: loadMoreRef, className: "flex items-center justify-center py-4", children: [
2027
+ dataKit.state.isLoading && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-6 animate-spin text-muted-foreground" }),
2028
+ !dataKit.state.isLoading && !dataKit.state.hasNextPage && allItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "You're all set" })
2029
+ ] }),
2030
+ !dataKit.state.isLoading && allItems.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-48 items-center justify-center text-muted-foreground", children: "No results found." })
2031
+ ] })
2032
+ ] });
2033
+ };
2034
+ React2__namespace.default.forwardRef(DataKitInfinityInner);
1802
2035
 
1803
2036
  exports.DataKit = DataKit;
1804
2037
  exports.DataKitContext = DefaultDataKitContext;