next-data-kit 7.7.0 → 7.7.1

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.
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { TDataKitInput, TDataKitResult, TDataKitFilterItem, TDataKitSelectableItem, TDataKitStateMode, TExtractDataKitItemType, TFilterConfig, TUseDataKitReturn, TDataKitRef } from '../../types';
2
+ import type { TDataKitInput, TDataKitResult, TDataKitFilterItem, TDataKitSelectableItem, TDataKitStateMode, TExtractDataKitItemType, TFilterConfig, TUseDataKitReturn } from '../../types';
3
3
  export declare const DataKitInfinity: <TAction extends (input: TDataKitInput<unknown>) => Promise<TDataKitResult<TDataKitSelectableItem>>>(props: Readonly<{
4
4
  action: TAction;
5
5
  query?: Record<string, unknown>;
@@ -16,13 +16,8 @@ export declare const DataKitInfinity: <TAction extends (input: TDataKitInput<unk
16
16
  autoFetch?: boolean;
17
17
  debounce?: number;
18
18
  state?: TDataKitStateMode;
19
- inverse?: boolean;
20
19
  manual?: boolean;
21
- pullDownToRefresh?: {
22
- isActive: boolean;
23
- threshold?: number;
24
- };
20
+ fullHeight?: boolean;
25
21
  children: (dataKit: TUseDataKitReturn<unknown, TExtractDataKitItemType<TAction>>) => React.ReactNode;
26
- ref?: React.Ref<TDataKitRef<unknown, TExtractDataKitItemType<TAction>>>;
27
22
  }>) => React.ReactElement;
28
23
  //# sourceMappingURL=data-kit-infinity.d.ts.map
@@ -1 +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;AAgUrB,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,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,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"}
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,EACrB,MAAM,aAAa,CAAC;AAgNrB,eAAO,MAAM,eAAe,EAAsC,CAC7D,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,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CACzG,CAAC,KACF,KAAK,CAAC,YAAY,CAAC"}
@@ -1,25 +1,21 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import React, { useState, useEffect, useRef, useCallback } from 'react';
3
+ import { useState, useEffect, useRef, useCallback } from 'react';
4
4
  import { useInView } from 'react-intersection-observer';
5
- import { Filter, Loader2, RefreshCw } from 'lucide-react';
5
+ import { Filter, Loader2 } from 'lucide-react';
6
6
  import { useDataKit } from '../hooks/useDataKit';
7
7
  import { Button, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, } from './ui';
8
- const DataKitInfinityInner = (props, ref) => {
8
+ const DataKitInfinityInner = (props) => {
9
9
  // ** Deconstruct Props
10
- const { action, query, filterConfig, filters = [], limit: limitConfig, defaultSort = [], className, autoFetch = true, debounce = 300, state: stateMode = 'memory', inverse = false, manual = false, pullDownToRefresh, children, } = props;
10
+ const { action, query, filterConfig, filters = [], limit: limitConfig, defaultSort = [], className, autoFetch = true, debounce = 300, state: stateMode = 'memory', manual = false, fullHeight = true, children, } = props;
11
11
  // ** Ref
12
12
  const containerRef = useRef(null);
13
13
  const scrollContainerRef = useRef(null);
14
14
  const [allItems, setAllItems] = useState([]);
15
15
  // ** State
16
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
17
  // ** Variable
21
18
  const overlayContainer = containerRef.current;
22
- const pullThreshold = pullDownToRefresh?.threshold ?? 50;
23
19
  // ** Hooks
24
20
  const dataKit = useDataKit({
25
21
  action: action,
@@ -43,118 +39,48 @@ const DataKitInfinityInner = (props, ref) => {
43
39
  threshold: 0,
44
40
  rootMargin: '100px',
45
41
  });
46
- const { ref: loadMoreTopRef, inView: inViewTop } = useInView({
47
- threshold: 0,
48
- rootMargin: '100px',
49
- });
50
- // ** Imperative Handle
51
- React.useImperativeHandle(ref, () => dataKit, [dataKit]);
52
42
  // ** Handlers
53
43
  const handleResetFilters = useCallback(() => {
54
44
  filters.forEach((f) => {
55
45
  dataKit.actions.setFilter(f.id, f.defaultValue ?? (f.type === 'BOOLEAN' ? false : ''));
56
46
  });
57
47
  }, [filters, dataKit.actions]);
58
- const loadMore = useCallback(async () => {
48
+ const loadMore = useCallback(() => {
59
49
  if (dataKit.state.isLoading || !dataKit.state.hasNextPage)
60
50
  return;
61
51
  dataKit.actions.setPage(dataKit.page + 1);
62
- }, [dataKit]);
63
- const resetAndFetch = useCallback(async () => {
64
- setAllItems([]);
65
- dataKit.actions.setPage(1);
66
- await dataKit.actions.refresh();
67
- }, [dataKit.actions]);
68
- // ** Pull to refresh handlers
69
- const handleTouchStart = useCallback((e) => {
70
- if (!pullDownToRefresh?.isActive)
71
- return;
72
- const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
73
- if (scrollTop === 0 && e.touches && e.touches[0]) {
74
- setPullStartY(e.touches[0].clientY);
75
- }
76
- }, [pullDownToRefresh?.isActive]);
77
- const handleTouchMove = useCallback((e) => {
78
- if (!pullDownToRefresh?.isActive || pullStartY === 0)
79
- return;
80
- if (!e.touches || !e.touches[0])
81
- return;
82
- const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
83
- if (scrollTop === 0) {
84
- const distance = e.touches[0].clientY - pullStartY;
85
- if (distance > 0) {
86
- setPullDistance(Math.min(distance, pullThreshold * 2));
87
- if (distance > pullThreshold * 2) {
88
- e.preventDefault();
89
- }
90
- }
91
- }
92
- }, [pullDownToRefresh?.isActive, pullStartY, pullThreshold]);
93
- const handleTouchEnd = useCallback(async () => {
94
- if (!pullDownToRefresh?.isActive)
95
- return;
96
- if (pullDistance > pullThreshold) {
97
- setIsPullRefreshing(true);
98
- await resetAndFetch();
99
- setIsPullRefreshing(false);
100
- }
101
- setPullStartY(0);
102
- setPullDistance(0);
103
- }, [pullDownToRefresh?.isActive, pullDistance, pullThreshold, resetAndFetch]);
104
- // ** Effects
105
- useEffect(() => {
106
- if (!pullDownToRefresh?.isActive)
107
- return;
108
- const container = scrollContainerRef.current;
109
- if (!container)
110
- return;
111
- container.addEventListener('touchstart', handleTouchStart);
112
- container.addEventListener('touchmove', handleTouchMove, { passive: false });
113
- container.addEventListener('touchend', handleTouchEnd);
114
- return () => {
115
- container.removeEventListener('touchstart', handleTouchStart);
116
- container.removeEventListener('touchmove', handleTouchMove);
117
- container.removeEventListener('touchend', handleTouchEnd);
118
- };
119
- }, [pullDownToRefresh?.isActive, handleTouchStart, handleTouchMove, handleTouchEnd]);
52
+ }, [dataKit.state.isLoading, dataKit.state.hasNextPage, dataKit.page, dataKit.actions]);
120
53
  // ** Initial fetch
121
54
  useEffect(() => {
122
- if (autoFetch && dataKit.page === 1 && allItems.length === 0) {
55
+ if (autoFetch)
123
56
  dataKit.actions.refresh();
124
- }
125
57
  }, [autoFetch]);
126
58
  // ** Append new items when dataKit items change
127
59
  useEffect(() => {
128
60
  if (dataKit.items.length > 0) {
129
61
  setAllItems((prev) => {
130
- if (dataKit.page === 1) {
62
+ if (dataKit.page === 1)
131
63
  return dataKit.items;
132
- }
133
- // Check if items are already in the list to avoid duplicates
134
- const newItems = dataKit.items.filter((newItem) => !prev.some((existingItem) => existingItem.id === newItem.id));
135
- return inverse ? [...newItems, ...prev] : [...prev, ...newItems];
64
+ return [...prev, ...dataKit.items];
136
65
  });
137
66
  }
138
- }, [dataKit.items, dataKit.page, inverse]);
139
- // ** Load more when in view
140
- useEffect(() => {
141
- if (inViewBottom && !inverse) {
142
- loadMore();
67
+ else if (dataKit.page === 1) {
68
+ setAllItems([]);
143
69
  }
144
- }, [inViewBottom, inverse, loadMore]);
145
- // ** Load more for inverse mode when top trigger is in view
70
+ }, [dataKit.items, dataKit.page]);
71
+ // ** Infinite scroll trigger
146
72
  useEffect(() => {
147
- if (inViewTop && inverse) {
73
+ if (inViewBottom && !dataKit.state.isLoading && dataKit.state.hasNextPage) {
148
74
  loadMore();
149
75
  }
150
- }, [inViewTop, inverse, loadMore]);
76
+ }, [inViewBottom, dataKit.state.isLoading, dataKit.state.hasNextPage]);
151
77
  // ** Create enhanced dataKit with all accumulated items
152
78
  const enhancedDataKit = {
153
79
  ...dataKit,
154
80
  items: allItems,
155
81
  };
156
82
  // ** Render
157
- return (_jsxs("div", { ref: containerRef, className: `flex flex-col ${className ?? ''}`, children: [filters.length > 0 && (_jsx("div", { className: "mb-3", children: _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("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" })) })), !manual && isPullRefreshing && (_jsx("div", { className: "flex items-center justify-center py-4", children: _jsx(Loader2, { className: "size-6 animate-spin text-muted-foreground" }) })), inverse && _jsx("div", { ref: loadMoreTopRef, className: manual ? '' : 'flex items-center justify-center py-4', children: !manual && dataKit.state.hasNextPage && dataKit.state.isLoading && (_jsx(Loader2, { className: "size-6 animate-spin text-muted-foreground" })) }), children(enhancedDataKit), !inverse && (_jsx("div", { ref: loadMoreBottomRef, className: manual ? '' : 'flex items-center justify-center py-4', children: !manual && (_jsxs(_Fragment, { 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" }))] })) }))] })] }));
83
+ return (_jsxs("div", { ref: containerRef, className: `flex flex-col ${fullHeight ? 'h-full' : ''}`, children: [filters.length > 0 && (_jsx("div", { className: "shrink-0 px-4 pt-4 pb-3", children: _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("div", { ref: scrollContainerRef, className: `relative flex-1 ${fullHeight ? 'min-h-0' : ''} overflow-y-auto overflow-x-hidden ${className ?? ''}`, children: [children(enhancedDataKit), _jsx("div", { ref: loadMoreBottomRef, className: manual ? '' : 'flex items-center justify-center py-4', children: !manual && (_jsxs(_Fragment, { 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" }))] })) })] })] }));
158
84
  };
159
- export const DataKitInfinity = React.forwardRef(DataKitInfinityInner);
85
+ export const DataKitInfinity = DataKitInfinityInner;
160
86
  //# sourceMappingURL=data-kit-infinity.js.map
@@ -1 +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
+ {"version":3,"file":"data-kit-infinity.js","sourceRoot":"","sources":["../../../src/client/components/data-kit-infinity.tsx"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -11,7 +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
+ require('react-intersection-observer');
15
15
 
16
16
  function _interopNamespace(e) {
17
17
  if (e && e.__esModule) return e;
@@ -1801,218 +1801,6 @@ var DataKitInner = (props, ref) => {
1801
1801
  ] });
1802
1802
  };
1803
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
- manual = false,
1818
- pullDownToRefresh,
1819
- children
1820
- } = props;
1821
- const containerRef = React2.useRef(null);
1822
- const scrollContainerRef = React2.useRef(null);
1823
- const [allItems, setAllItems] = React2.useState([]);
1824
- const [isFilterOpen, setIsFilterOpen] = React2.useState(false);
1825
- const [isPullRefreshing, setIsPullRefreshing] = React2.useState(false);
1826
- const [pullStartY, setPullStartY] = React2.useState(0);
1827
- const [pullDistance, setPullDistance] = React2.useState(0);
1828
- const overlayContainer = containerRef.current;
1829
- const pullThreshold = pullDownToRefresh?.threshold ?? 50;
1830
- const dataKit = useDataKit({
1831
- action,
1832
- filterConfig,
1833
- autoFetch: false,
1834
- // We'll control fetching manually
1835
- debounce: debounce2,
1836
- state: stateMode,
1837
- initial: {
1838
- limit: limitConfig?.default ?? 10,
1839
- query: query ?? {},
1840
- sorts: defaultSort,
1841
- filter: filters.reduce((acc, f) => {
1842
- if (f.defaultValue !== void 0) acc[f.id] = f.defaultValue;
1843
- return acc;
1844
- }, {})
1845
- }
1846
- });
1847
- const { ref: loadMoreBottomRef, inView: inViewBottom } = reactIntersectionObserver.useInView({
1848
- threshold: 0,
1849
- rootMargin: "100px"
1850
- });
1851
- const { ref: loadMoreTopRef, inView: inViewTop } = reactIntersectionObserver.useInView({
1852
- threshold: 0,
1853
- rootMargin: "100px"
1854
- });
1855
- React2__namespace.default.useImperativeHandle(ref, () => dataKit, [dataKit]);
1856
- const handleResetFilters = React2.useCallback(() => {
1857
- filters.forEach((f) => {
1858
- dataKit.actions.setFilter(f.id, f.defaultValue ?? (f.type === "BOOLEAN" ? false : ""));
1859
- });
1860
- }, [filters, dataKit.actions]);
1861
- const loadMore = React2.useCallback(async () => {
1862
- if (dataKit.state.isLoading || !dataKit.state.hasNextPage) return;
1863
- dataKit.actions.setPage(dataKit.page + 1);
1864
- }, [dataKit]);
1865
- const resetAndFetch = React2.useCallback(async () => {
1866
- setAllItems([]);
1867
- dataKit.actions.setPage(1);
1868
- await dataKit.actions.refresh();
1869
- }, [dataKit.actions]);
1870
- const handleTouchStart = React2.useCallback((e) => {
1871
- if (!pullDownToRefresh?.isActive) return;
1872
- const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
1873
- if (scrollTop === 0 && e.touches && e.touches[0]) {
1874
- setPullStartY(e.touches[0].clientY);
1875
- }
1876
- }, [pullDownToRefresh?.isActive]);
1877
- const handleTouchMove = React2.useCallback((e) => {
1878
- if (!pullDownToRefresh?.isActive || pullStartY === 0) return;
1879
- if (!e.touches || !e.touches[0]) return;
1880
- const scrollTop = scrollContainerRef.current?.scrollTop ?? 0;
1881
- if (scrollTop === 0) {
1882
- const distance = e.touches[0].clientY - pullStartY;
1883
- if (distance > 0) {
1884
- setPullDistance(Math.min(distance, pullThreshold * 2));
1885
- if (distance > pullThreshold * 2) {
1886
- e.preventDefault();
1887
- }
1888
- }
1889
- }
1890
- }, [pullDownToRefresh?.isActive, pullStartY, pullThreshold]);
1891
- const handleTouchEnd = React2.useCallback(async () => {
1892
- if (!pullDownToRefresh?.isActive) return;
1893
- if (pullDistance > pullThreshold) {
1894
- setIsPullRefreshing(true);
1895
- await resetAndFetch();
1896
- setIsPullRefreshing(false);
1897
- }
1898
- setPullStartY(0);
1899
- setPullDistance(0);
1900
- }, [pullDownToRefresh?.isActive, pullDistance, pullThreshold, resetAndFetch]);
1901
- React2.useEffect(() => {
1902
- if (!pullDownToRefresh?.isActive) return;
1903
- const container = scrollContainerRef.current;
1904
- if (!container) return;
1905
- container.addEventListener("touchstart", handleTouchStart);
1906
- container.addEventListener("touchmove", handleTouchMove, { passive: false });
1907
- container.addEventListener("touchend", handleTouchEnd);
1908
- return () => {
1909
- container.removeEventListener("touchstart", handleTouchStart);
1910
- container.removeEventListener("touchmove", handleTouchMove);
1911
- container.removeEventListener("touchend", handleTouchEnd);
1912
- };
1913
- }, [pullDownToRefresh?.isActive, handleTouchStart, handleTouchMove, handleTouchEnd]);
1914
- React2.useEffect(() => {
1915
- if (autoFetch && dataKit.page === 1 && allItems.length === 0) {
1916
- dataKit.actions.refresh();
1917
- }
1918
- }, [autoFetch]);
1919
- React2.useEffect(() => {
1920
- if (dataKit.items.length > 0) {
1921
- setAllItems((prev) => {
1922
- if (dataKit.page === 1) {
1923
- return dataKit.items;
1924
- }
1925
- const newItems = dataKit.items.filter(
1926
- (newItem) => !prev.some((existingItem) => existingItem.id === newItem.id)
1927
- );
1928
- return inverse ? [...newItems, ...prev] : [...prev, ...newItems];
1929
- });
1930
- }
1931
- }, [dataKit.items, dataKit.page, inverse]);
1932
- React2.useEffect(() => {
1933
- if (inViewBottom && !inverse) {
1934
- loadMore();
1935
- }
1936
- }, [inViewBottom, inverse, loadMore]);
1937
- React2.useEffect(() => {
1938
- if (inViewTop && inverse) {
1939
- loadMore();
1940
- }
1941
- }, [inViewTop, inverse, loadMore]);
1942
- const enhancedDataKit = {
1943
- ...dataKit,
1944
- items: allItems
1945
- };
1946
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: `flex flex-col ${className ?? ""}`, children: [
1947
- filters.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open: isFilterOpen, onOpenChange: setIsFilterOpen, children: [
1948
- /* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button, { variant: "outline", size: "sm", children: [
1949
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Filter, { className: "mr-1.5 size-4" }),
1950
- "Filters"
1951
- ] }) }),
1952
- /* @__PURE__ */ jsxRuntime.jsxs(PopoverContent, { align: "start", className: "w-80", container: overlayContainer, children: [
1953
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-3", children: filters.map((f) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1.5", children: [
1954
- /* @__PURE__ */ jsxRuntime.jsx("label", { className: "text-sm font-medium", children: f.label }),
1955
- f.type === "TEXT" && /* @__PURE__ */ jsxRuntime.jsx(
1956
- "input",
1957
- {
1958
- type: "text",
1959
- className: "h-9 w-full rounded-md border bg-transparent px-3 text-sm outline-none focus:ring-2 focus:ring-ring",
1960
- placeholder: f.placeholder,
1961
- value: dataKit.filter[f.id] ?? "",
1962
- onChange: (e) => dataKit.actions.setFilter(f.id, e.target.value)
1963
- }
1964
- ),
1965
- f.type === "SELECT" && /* @__PURE__ */ jsxRuntime.jsxs(
1966
- Select,
1967
- {
1968
- value: String(dataKit.filter[f.id] || "__all__"),
1969
- onValueChange: (v) => dataKit.actions.setFilter(f.id, v === "__all__" ? "" : v),
1970
- children: [
1971
- /* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectValue, {}) }),
1972
- /* @__PURE__ */ jsxRuntime.jsxs(SelectContent, { container: overlayContainer, children: [
1973
- /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { value: "__all__", children: "All" }),
1974
- f.dataset?.map((d) => /* @__PURE__ */ jsxRuntime.jsx(SelectItem, { value: d.id, children: d.label }, d.id))
1975
- ] })
1976
- ]
1977
- }
1978
- ),
1979
- f.type === "BOOLEAN" && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1980
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: f.placeholder ?? "Enable" }),
1981
- /* @__PURE__ */ jsxRuntime.jsx(
1982
- Switch,
1983
- {
1984
- checked: Boolean(dataKit.filter[f.id]),
1985
- onCheckedChange: (c) => dataKit.actions.setFilter(f.id, c)
1986
- }
1987
- )
1988
- ] })
1989
- ] }, f.id)) }),
1990
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex justify-between border-t pt-3", children: [
1991
- /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "outline", size: "sm", onClick: handleResetFilters, children: "Reset" }),
1992
- /* @__PURE__ */ jsxRuntime.jsx(Button, { size: "sm", onClick: () => setIsFilterOpen(false), children: "Done" })
1993
- ] })
1994
- ] })
1995
- ] }) }),
1996
- /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: scrollContainerRef, className: "relative flex-1 overflow-auto", children: [
1997
- pullDownToRefresh?.isActive && pullDistance > 0 && /* @__PURE__ */ jsxRuntime.jsx(
1998
- "div",
1999
- {
2000
- className: "absolute left-0 right-0 top-0 flex items-center justify-center bg-background/80 backdrop-blur-sm transition-all",
2001
- style: { height: `${pullDistance}px` },
2002
- 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" })
2003
- }
2004
- ),
2005
- !manual && 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" }) }),
2006
- inverse && /* @__PURE__ */ jsxRuntime.jsx("div", { ref: loadMoreTopRef, className: manual ? "" : "flex items-center justify-center py-4", children: !manual && dataKit.state.hasNextPage && dataKit.state.isLoading && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-6 animate-spin text-muted-foreground" }) }),
2007
- children(enhancedDataKit),
2008
- !inverse && /* @__PURE__ */ jsxRuntime.jsx("div", { ref: loadMoreBottomRef, className: manual ? "" : "flex items-center justify-center py-4", children: !manual && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2009
- dataKit.state.isLoading && /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-6 animate-spin text-muted-foreground" }),
2010
- !dataKit.state.isLoading && !dataKit.state.hasNextPage && allItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: "You're all set" })
2011
- ] }) })
2012
- ] })
2013
- ] });
2014
- };
2015
- React2__namespace.default.forwardRef(DataKitInfinityInner);
2016
1804
 
2017
1805
  exports.DataKit = DataKit;
2018
1806
  exports.DataKitContext = DefaultDataKitContext;