@objectstack/client-react 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/context.js DELETED
@@ -1,86 +0,0 @@
1
- "use strict";
2
- /**
3
- * ObjectStack React Context
4
- *
5
- * Provides ObjectStackClient instance to React components via Context API
6
- */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
- Object.defineProperty(exports, "__esModule", { value: true });
41
- exports.ObjectStackContext = void 0;
42
- exports.ObjectStackProvider = ObjectStackProvider;
43
- exports.useClient = useClient;
44
- const React = __importStar(require("react"));
45
- const react_1 = require("react");
46
- exports.ObjectStackContext = (0, react_1.createContext)(null);
47
- /**
48
- * Provider component that makes ObjectStackClient available to all child components
49
- *
50
- * @example
51
- * ```tsx
52
- * const client = new ObjectStackClient({ baseUrl: 'http://localhost:3000' });
53
- *
54
- * function App() {
55
- * return (
56
- * <ObjectStackProvider client={client}>
57
- * <YourComponents />
58
- * </ObjectStackProvider>
59
- * );
60
- * }
61
- * ```
62
- */
63
- function ObjectStackProvider({ client, children }) {
64
- return (React.createElement(exports.ObjectStackContext.Provider, { value: client }, children));
65
- }
66
- /**
67
- * Hook to access the ObjectStackClient instance from context
68
- *
69
- * @throws Error if used outside of ObjectStackProvider
70
- *
71
- * @example
72
- * ```tsx
73
- * function MyComponent() {
74
- * const client = useClient();
75
- * // Use client.data.find(), etc.
76
- * }
77
- * ```
78
- */
79
- function useClient() {
80
- const client = (0, react_1.useContext)(exports.ObjectStackContext);
81
- if (!client) {
82
- throw new Error('useClient must be used within an ObjectStackProvider. ' +
83
- 'Make sure your component is wrapped with <ObjectStackProvider client={...}>.');
84
- }
85
- return client;
86
- }
@@ -1,246 +0,0 @@
1
- /**
2
- * Data Query Hooks
3
- *
4
- * React hooks for querying and mutating ObjectStack data
5
- */
6
- import { QueryAST, FilterCondition } from '@objectstack/spec/data';
7
- import { PaginatedResult } from '@objectstack/client';
8
- /**
9
- * Query options for useQuery hook
10
- */
11
- export interface UseQueryOptions<T = any> {
12
- /** Query AST or simplified query options */
13
- query?: Partial<QueryAST>;
14
- /** Simple field selection */
15
- select?: string[];
16
- /** Simple filters */
17
- filters?: FilterCondition;
18
- /** Sort configuration */
19
- sort?: string | string[];
20
- /** Limit results */
21
- top?: number;
22
- /** Skip results (for pagination) */
23
- skip?: number;
24
- /** Enable/disable automatic query execution */
25
- enabled?: boolean;
26
- /** Refetch interval in milliseconds */
27
- refetchInterval?: number;
28
- /** Callback on successful query */
29
- onSuccess?: (data: PaginatedResult<T>) => void;
30
- /** Callback on error */
31
- onError?: (error: Error) => void;
32
- }
33
- /**
34
- * Query result for useQuery hook
35
- */
36
- export interface UseQueryResult<T = any> {
37
- /** Query result data */
38
- data: PaginatedResult<T> | null;
39
- /** Loading state */
40
- isLoading: boolean;
41
- /** Error state */
42
- error: Error | null;
43
- /** Refetch the query */
44
- refetch: () => Promise<void>;
45
- /** Is currently refetching */
46
- isRefetching: boolean;
47
- }
48
- /**
49
- * Hook for querying ObjectStack data with automatic caching and refetching
50
- *
51
- * @example
52
- * ```tsx
53
- * function TaskList() {
54
- * const { data, isLoading, error, refetch } = useQuery('todo_task', {
55
- * select: ['id', 'subject', 'priority'],
56
- * sort: ['-created_at'],
57
- * top: 20
58
- * });
59
- *
60
- * if (isLoading) return <div>Loading...</div>;
61
- * if (error) return <div>Error: {error.message}</div>;
62
- *
63
- * return (
64
- * <div>
65
- * {data?.value.map(task => (
66
- * <div key={task.id}>{task.subject}</div>
67
- * ))}
68
- * </div>
69
- * );
70
- * }
71
- * ```
72
- */
73
- export declare function useQuery<T = any>(object: string, options?: UseQueryOptions<T>): UseQueryResult<T>;
74
- /**
75
- * Mutation options for useMutation hook
76
- */
77
- export interface UseMutationOptions<TData = any, TVariables = any> {
78
- /** Callback on successful mutation */
79
- onSuccess?: (data: TData, variables: TVariables) => void;
80
- /** Callback on error */
81
- onError?: (error: Error, variables: TVariables) => void;
82
- /** Callback when mutation is settled (success or error) */
83
- onSettled?: (data: TData | undefined, error: Error | null, variables: TVariables) => void;
84
- }
85
- /**
86
- * Mutation result for useMutation hook
87
- */
88
- export interface UseMutationResult<TData = any, TVariables = any> {
89
- /** Execute the mutation */
90
- mutate: (variables: TVariables) => Promise<TData>;
91
- /** Async version of mutate that throws errors */
92
- mutateAsync: (variables: TVariables) => Promise<TData>;
93
- /** Mutation result data */
94
- data: TData | null;
95
- /** Loading state */
96
- isLoading: boolean;
97
- /** Error state */
98
- error: Error | null;
99
- /** Reset mutation state */
100
- reset: () => void;
101
- }
102
- /**
103
- * Hook for creating, updating, or deleting ObjectStack data
104
- *
105
- * @example
106
- * ```tsx
107
- * function CreateTaskForm() {
108
- * const { mutate, isLoading, error } = useMutation('todo_task', 'create', {
109
- * onSuccess: (data) => {
110
- * console.log('Task created:', data);
111
- * }
112
- * });
113
- *
114
- * const handleSubmit = (formData) => {
115
- * mutate(formData);
116
- * };
117
- *
118
- * return <form onSubmit={handleSubmit}>...</form>;
119
- * }
120
- * ```
121
- */
122
- export declare function useMutation<TData = any, TVariables = any>(object: string, operation: 'create' | 'update' | 'delete' | 'createMany' | 'updateMany' | 'deleteMany', options?: UseMutationOptions<TData, TVariables>): UseMutationResult<TData, TVariables>;
123
- /**
124
- * Pagination options for usePagination hook
125
- */
126
- export interface UsePaginationOptions<T = any> extends Omit<UseQueryOptions<T>, 'top' | 'skip'> {
127
- /** Page size */
128
- pageSize?: number;
129
- /** Initial page (1-based) */
130
- initialPage?: number;
131
- }
132
- /**
133
- * Pagination result for usePagination hook
134
- */
135
- export interface UsePaginationResult<T = any> extends UseQueryResult<T> {
136
- /** Current page (1-based) */
137
- page: number;
138
- /** Total number of pages */
139
- totalPages: number;
140
- /** Total number of records */
141
- totalCount: number;
142
- /** Go to next page */
143
- nextPage: () => void;
144
- /** Go to previous page */
145
- previousPage: () => void;
146
- /** Go to specific page */
147
- goToPage: (page: number) => void;
148
- /** Whether there is a next page */
149
- hasNextPage: boolean;
150
- /** Whether there is a previous page */
151
- hasPreviousPage: boolean;
152
- }
153
- /**
154
- * Hook for paginated data queries
155
- *
156
- * @example
157
- * ```tsx
158
- * function PaginatedTaskList() {
159
- * const {
160
- * data,
161
- * isLoading,
162
- * page,
163
- * totalPages,
164
- * nextPage,
165
- * previousPage,
166
- * hasNextPage,
167
- * hasPreviousPage
168
- * } = usePagination('todo_task', {
169
- * pageSize: 10,
170
- * sort: ['-created_at']
171
- * });
172
- *
173
- * return (
174
- * <div>
175
- * {data?.value.map(task => <div key={task.id}>{task.subject}</div>)}
176
- * <button onClick={previousPage} disabled={!hasPreviousPage}>Previous</button>
177
- * <span>Page {page} of {totalPages}</span>
178
- * <button onClick={nextPage} disabled={!hasNextPage}>Next</button>
179
- * </div>
180
- * );
181
- * }
182
- * ```
183
- */
184
- export declare function usePagination<T = any>(object: string, options?: UsePaginationOptions<T>): UsePaginationResult<T>;
185
- /**
186
- * Infinite query options for useInfiniteQuery hook
187
- */
188
- export interface UseInfiniteQueryOptions<T = any> extends Omit<UseQueryOptions<T>, 'skip'> {
189
- /** Page size for each fetch */
190
- pageSize?: number;
191
- /** Get next page parameter */
192
- getNextPageParam?: (lastPage: PaginatedResult<T>, allPages: PaginatedResult<T>[]) => number | undefined;
193
- }
194
- /**
195
- * Infinite query result for useInfiniteQuery hook
196
- */
197
- export interface UseInfiniteQueryResult<T = any> {
198
- /** All pages of data */
199
- data: PaginatedResult<T>[];
200
- /** Flattened data from all pages */
201
- flatData: T[];
202
- /** Loading state */
203
- isLoading: boolean;
204
- /** Error state */
205
- error: Error | null;
206
- /** Load the next page */
207
- fetchNextPage: () => Promise<void>;
208
- /** Whether there are more pages */
209
- hasNextPage: boolean;
210
- /** Is currently fetching next page */
211
- isFetchingNextPage: boolean;
212
- /** Refetch all pages */
213
- refetch: () => Promise<void>;
214
- }
215
- /**
216
- * Hook for infinite scrolling / load more functionality
217
- *
218
- * @example
219
- * ```tsx
220
- * function InfiniteTaskList() {
221
- * const {
222
- * flatData,
223
- * isLoading,
224
- * fetchNextPage,
225
- * hasNextPage,
226
- * isFetchingNextPage
227
- * } = useInfiniteQuery('todo_task', {
228
- * pageSize: 20,
229
- * sort: ['-created_at']
230
- * });
231
- *
232
- * return (
233
- * <div>
234
- * {flatData.map(task => <div key={task.id}>{task.subject}</div>)}
235
- * {hasNextPage && (
236
- * <button onClick={fetchNextPage} disabled={isFetchingNextPage}>
237
- * {isFetchingNextPage ? 'Loading...' : 'Load More'}
238
- * </button>
239
- * )}
240
- * </div>
241
- * );
242
- * }
243
- * ```
244
- */
245
- export declare function useInfiniteQuery<T = any>(object: string, options?: UseInfiniteQueryOptions<T>): UseInfiniteQueryResult<T>;
246
- //# sourceMappingURL=data-hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-hooks.d.ts","sourceRoot":"","sources":["../src/data-hooks.tsx"],"names":[],"mappings":"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"}