@profplum700/etsy-react 2.3.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.
package/dist/index.cjs ADDED
@@ -0,0 +1,335 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const EtsyContext = React.createContext(undefined);
6
+ function EtsyProvider({ client, children }) {
7
+ return (React.createElement(EtsyContext.Provider, { value: { client } }, children));
8
+ }
9
+ function useEtsyContext() {
10
+ const context = React.useContext(EtsyContext);
11
+ if (!context) {
12
+ throw new Error('useEtsyContext must be used within an EtsyProvider');
13
+ }
14
+ return context;
15
+ }
16
+ function useEtsyClient() {
17
+ const { client } = useEtsyContext();
18
+ return client;
19
+ }
20
+
21
+ function useQuery(queryFn, options = {}) {
22
+ const { enabled = true, refetchInterval, refetchOnWindowFocus = false, onSuccess, onError, } = options;
23
+ const [data, setData] = React.useState(undefined);
24
+ const [loading, setLoading] = React.useState(enabled);
25
+ const [error, setError] = React.useState(null);
26
+ const isMounted = React.useRef(true);
27
+ const intervalRef = React.useRef(null);
28
+ const fetchData = React.useCallback(async () => {
29
+ if (!enabled)
30
+ return;
31
+ setLoading(true);
32
+ setError(null);
33
+ try {
34
+ const result = await queryFn();
35
+ if (isMounted.current) {
36
+ setData(result);
37
+ setLoading(false);
38
+ onSuccess?.(result);
39
+ }
40
+ }
41
+ catch (err) {
42
+ if (isMounted.current) {
43
+ const error = err instanceof Error ? err : new Error(String(err));
44
+ setError(error);
45
+ setLoading(false);
46
+ onError?.(error);
47
+ }
48
+ }
49
+ }, [queryFn, enabled, onSuccess, onError]);
50
+ React.useEffect(() => {
51
+ isMounted.current = true;
52
+ return () => {
53
+ isMounted.current = false;
54
+ };
55
+ }, []);
56
+ React.useEffect(() => {
57
+ if (enabled) {
58
+ fetchData();
59
+ }
60
+ }, [enabled, fetchData]);
61
+ React.useEffect(() => {
62
+ if (refetchInterval && enabled) {
63
+ intervalRef.current = setInterval(() => {
64
+ fetchData();
65
+ }, refetchInterval);
66
+ return () => {
67
+ if (intervalRef.current) {
68
+ clearInterval(intervalRef.current);
69
+ }
70
+ };
71
+ }
72
+ return undefined;
73
+ }, [refetchInterval, enabled, fetchData]);
74
+ React.useEffect(() => {
75
+ if (refetchOnWindowFocus && enabled) {
76
+ const handleFocus = () => {
77
+ fetchData();
78
+ };
79
+ window.addEventListener('focus', handleFocus);
80
+ return () => {
81
+ window.removeEventListener('focus', handleFocus);
82
+ };
83
+ }
84
+ return undefined;
85
+ }, [refetchOnWindowFocus, enabled, fetchData]);
86
+ const refetch = React.useCallback(async () => {
87
+ await fetchData();
88
+ }, [fetchData]);
89
+ return {
90
+ data,
91
+ loading,
92
+ error,
93
+ refetch,
94
+ };
95
+ }
96
+
97
+ function useMutation(mutationFn, options = {}) {
98
+ const { onSuccess, onError, onSettled } = options;
99
+ const [data, setData] = React.useState(undefined);
100
+ const [loading, setLoading] = React.useState(false);
101
+ const [error, setError] = React.useState(null);
102
+ const mutateAsync = React.useCallback(async (variables) => {
103
+ setLoading(true);
104
+ setError(null);
105
+ try {
106
+ const result = await mutationFn(variables);
107
+ setData(result);
108
+ setLoading(false);
109
+ onSuccess?.(result, variables);
110
+ onSettled?.(result, null, variables);
111
+ return result;
112
+ }
113
+ catch (err) {
114
+ const error = err instanceof Error ? err : new Error(String(err));
115
+ setError(error);
116
+ setLoading(false);
117
+ onError?.(error, variables);
118
+ onSettled?.(undefined, error, variables);
119
+ throw error;
120
+ }
121
+ }, [mutationFn, onSuccess, onError, onSettled]);
122
+ const mutate = React.useCallback((variables) => {
123
+ mutateAsync(variables).catch(() => {
124
+ });
125
+ return mutateAsync(variables);
126
+ }, [mutateAsync]);
127
+ const reset = React.useCallback(() => {
128
+ setData(undefined);
129
+ setError(null);
130
+ setLoading(false);
131
+ }, []);
132
+ return {
133
+ mutate,
134
+ mutateAsync,
135
+ data,
136
+ loading,
137
+ error,
138
+ reset,
139
+ };
140
+ }
141
+
142
+ function useShop(shopId, options = {}) {
143
+ const client = useEtsyClient();
144
+ const queryFn = React.useCallback(async () => {
145
+ return await client.getShop(shopId);
146
+ }, [client, shopId]);
147
+ return useQuery(queryFn, options);
148
+ }
149
+ function useShopSections(shopId, options = {}) {
150
+ const client = useEtsyClient();
151
+ const queryFn = React.useCallback(async () => {
152
+ return await client.getShopSections(shopId);
153
+ }, [client, shopId]);
154
+ return useQuery(queryFn, options);
155
+ }
156
+
157
+ function useListings(shopId, listingsOptions = {}, queryOptions = {}) {
158
+ const client = useEtsyClient();
159
+ const [currentPage, setCurrentPage] = React.useState(0);
160
+ const [allData, setAllData] = React.useState([]);
161
+ const [hasMore, setHasMore] = React.useState(true);
162
+ const [totalPages, setTotalPages] = React.useState(null);
163
+ const limit = listingsOptions.limit || 25;
164
+ const queryFn = React.useCallback(async () => {
165
+ const offset = currentPage * limit;
166
+ const response = await client.getListingsByShop(shopId, {
167
+ ...listingsOptions,
168
+ limit,
169
+ offset,
170
+ });
171
+ const results = Array.isArray(response) ? response : response.results || [];
172
+ const count = Array.isArray(response) ? response.length : response.count || 0;
173
+ const totalPagesCalc = Math.ceil(count / limit);
174
+ setTotalPages(totalPagesCalc);
175
+ setHasMore(offset + results.length < count);
176
+ if (currentPage === 0) {
177
+ setAllData(results);
178
+ }
179
+ else {
180
+ setAllData((prev) => [...prev, ...results]);
181
+ }
182
+ return results;
183
+ }, [client, shopId, listingsOptions, limit, currentPage]);
184
+ const result = useQuery(queryFn, queryOptions);
185
+ const loadMore = React.useCallback(async () => {
186
+ if (hasMore && !result.loading) {
187
+ setCurrentPage((prev) => prev + 1);
188
+ await result.refetch();
189
+ }
190
+ }, [hasMore, result]);
191
+ return {
192
+ ...result,
193
+ data: allData,
194
+ hasMore,
195
+ loadMore,
196
+ currentPage,
197
+ totalPages,
198
+ };
199
+ }
200
+ function useListing(listingId, options = {}) {
201
+ const client = useEtsyClient();
202
+ const queryFn = React.useCallback(async () => {
203
+ return await client.getListing(listingId);
204
+ }, [client, listingId]);
205
+ return useQuery(queryFn, options);
206
+ }
207
+
208
+ function useReceipts(shopId, receiptsOptions = {}, queryOptions = {}) {
209
+ const client = useEtsyClient();
210
+ const [currentPage, setCurrentPage] = React.useState(0);
211
+ const [allData, setAllData] = React.useState([]);
212
+ const [hasMore, setHasMore] = React.useState(true);
213
+ const [totalPages, setTotalPages] = React.useState(null);
214
+ const limit = receiptsOptions.limit || 25;
215
+ const queryFn = React.useCallback(async () => {
216
+ const offset = currentPage * limit;
217
+ const response = await client.getShopReceipts(shopId, {
218
+ ...receiptsOptions,
219
+ limit,
220
+ offset,
221
+ });
222
+ const results = Array.isArray(response) ? response : response.results || [];
223
+ const count = Array.isArray(response) ? response.length : response.count || 0;
224
+ const totalPagesCalc = Math.ceil(count / limit);
225
+ setTotalPages(totalPagesCalc);
226
+ setHasMore(offset + results.length < count);
227
+ if (currentPage === 0) {
228
+ setAllData(results);
229
+ }
230
+ else {
231
+ setAllData((prev) => [...prev, ...results]);
232
+ }
233
+ return results;
234
+ }, [client, shopId, receiptsOptions, limit, currentPage]);
235
+ const result = useQuery(queryFn, queryOptions);
236
+ const loadMore = React.useCallback(async () => {
237
+ if (hasMore && !result.loading) {
238
+ setCurrentPage((prev) => prev + 1);
239
+ await result.refetch();
240
+ }
241
+ }, [hasMore, result]);
242
+ return {
243
+ ...result,
244
+ data: allData,
245
+ hasMore,
246
+ loadMore,
247
+ currentPage,
248
+ totalPages,
249
+ };
250
+ }
251
+ function useReceipt(shopId, receiptId, options = {}) {
252
+ const client = useEtsyClient();
253
+ const queryFn = React.useCallback(async () => {
254
+ return await client.getShopReceipt(shopId, receiptId);
255
+ }, [client, shopId, receiptId]);
256
+ return useQuery(queryFn, options);
257
+ }
258
+
259
+ function useUpdateListing(options) {
260
+ const client = useEtsyClient();
261
+ const mutationFn = React.useCallback(async ({ shopId, listingId, updates }) => {
262
+ return await client.updateListing(shopId, listingId, updates);
263
+ }, [client]);
264
+ return useMutation(mutationFn, options);
265
+ }
266
+ function useCreateDraftListing(options) {
267
+ const client = useEtsyClient();
268
+ const mutationFn = React.useCallback(async ({ shopId, params }) => {
269
+ return await client.createDraftListing(shopId, params);
270
+ }, [client]);
271
+ return useMutation(mutationFn, options);
272
+ }
273
+ function useDeleteListing(options) {
274
+ const client = useEtsyClient();
275
+ const mutationFn = React.useCallback(async ({ listingId }) => {
276
+ return await client.deleteListing(listingId);
277
+ }, [client]);
278
+ return useMutation(mutationFn, options);
279
+ }
280
+ function useUpdateInventory(options) {
281
+ const client = useEtsyClient();
282
+ const mutationFn = React.useCallback(async ({ listingId, updates }) => {
283
+ return await client.updateListingInventory(listingId, updates);
284
+ }, [client]);
285
+ return useMutation(mutationFn, options);
286
+ }
287
+ function useUploadListingImage(options) {
288
+ const client = useEtsyClient();
289
+ const mutationFn = React.useCallback(async ({ shopId, listingId, image, rank }) => {
290
+ return await client.uploadListingImage(shopId, listingId, image, rank ? { rank } : undefined);
291
+ }, [client]);
292
+ return useMutation(mutationFn, options);
293
+ }
294
+ function useDeleteListingImage(options) {
295
+ const client = useEtsyClient();
296
+ const mutationFn = React.useCallback(async ({ shopId, listingId, listingImageId }) => {
297
+ return await client.deleteListingImage(shopId, listingId, listingImageId);
298
+ }, [client]);
299
+ return useMutation(mutationFn, options);
300
+ }
301
+ function useUpdateReceipt(options) {
302
+ const client = useEtsyClient();
303
+ const mutationFn = React.useCallback(async ({ shopId, receiptId, was_shipped, was_paid }) => {
304
+ return await client.updateShopReceipt(shopId, receiptId, { was_shipped, was_paid });
305
+ }, [client]);
306
+ return useMutation(mutationFn, options);
307
+ }
308
+ function useCreateShippingProfile(options) {
309
+ const client = useEtsyClient();
310
+ const mutationFn = React.useCallback(async ({ shopId, params }) => {
311
+ return await client.createShopShippingProfile(shopId, params);
312
+ }, [client]);
313
+ return useMutation(mutationFn, options);
314
+ }
315
+
316
+ exports.EtsyProvider = EtsyProvider;
317
+ exports.useCreateDraftListing = useCreateDraftListing;
318
+ exports.useCreateShippingProfile = useCreateShippingProfile;
319
+ exports.useDeleteListing = useDeleteListing;
320
+ exports.useDeleteListingImage = useDeleteListingImage;
321
+ exports.useEtsyClient = useEtsyClient;
322
+ exports.useEtsyContext = useEtsyContext;
323
+ exports.useListing = useListing;
324
+ exports.useListings = useListings;
325
+ exports.useMutation = useMutation;
326
+ exports.useQuery = useQuery;
327
+ exports.useReceipt = useReceipt;
328
+ exports.useReceipts = useReceipts;
329
+ exports.useShop = useShop;
330
+ exports.useShopSections = useShopSections;
331
+ exports.useUpdateInventory = useUpdateInventory;
332
+ exports.useUpdateListing = useUpdateListing;
333
+ exports.useUpdateReceipt = useUpdateReceipt;
334
+ exports.useUploadListingImage = useUploadListingImage;
335
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/context.tsx","../../src/useQuery.ts","../../src/useMutation.ts","../../src/hooks/useShop.ts","../../src/hooks/useListings.ts","../../src/hooks/useReceipts.ts","../../src/hooks/useMutations.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":["createContext","useContext","useState","useRef","useCallback","useEffect"],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { EtsyClient, EtsyShop, EtsyShopSection, EtsyListing, EtsyShopReceipt, UpdateListingParams, CreateDraftListingParams, EtsyListingInventory, UpdateListingInventoryParams, EtsyListingImage, EtsyShippingProfile, CreateShippingProfileParams } from '@profplum700/etsy-v3-api-client';
3
+
4
+ interface EtsyContextValue {
5
+ client: EtsyClient;
6
+ }
7
+ interface EtsyProviderProps {
8
+ client: EtsyClient;
9
+ children: ReactNode;
10
+ }
11
+ declare function EtsyProvider({ client, children }: EtsyProviderProps): React.JSX.Element;
12
+ declare function useEtsyContext(): EtsyContextValue;
13
+ declare function useEtsyClient(): EtsyClient;
14
+
15
+ interface UseQueryOptions<T> {
16
+ enabled?: boolean;
17
+ refetchInterval?: number;
18
+ refetchOnWindowFocus?: boolean;
19
+ onSuccess?: (data: T) => void;
20
+ onError?: (error: Error) => void;
21
+ }
22
+ interface UseQueryResult<T> {
23
+ data: T | undefined;
24
+ loading: boolean;
25
+ error: Error | null;
26
+ refetch: () => Promise<void>;
27
+ }
28
+ interface UseMutationOptions<TData, TVariables> {
29
+ onSuccess?: (data: TData, variables: TVariables) => void;
30
+ onError?: (error: Error, variables: TVariables) => void;
31
+ onSettled?: (data: TData | undefined, error: Error | null, variables: TVariables) => void;
32
+ }
33
+ interface UseMutationResult<TData, TVariables> {
34
+ mutate: (variables: TVariables) => Promise<TData>;
35
+ mutateAsync: (variables: TVariables) => Promise<TData>;
36
+ data: TData | undefined;
37
+ loading: boolean;
38
+ error: Error | null;
39
+ reset: () => void;
40
+ }
41
+ interface UsePaginatedQueryResult<T> extends UseQueryResult<T[]> {
42
+ hasMore: boolean;
43
+ loadMore: () => Promise<void>;
44
+ currentPage: number;
45
+ totalPages: number | null;
46
+ }
47
+
48
+ declare function useQuery<T>(queryFn: () => Promise<T>, options?: UseQueryOptions<T>): UseQueryResult<T>;
49
+
50
+ declare function useMutation<TData, TVariables>(mutationFn: (variables: TVariables) => Promise<TData>, options?: UseMutationOptions<TData, TVariables>): UseMutationResult<TData, TVariables>;
51
+
52
+ declare function useShop(shopId: string, options?: UseQueryOptions<EtsyShop>): UseQueryResult<EtsyShop>;
53
+ declare function useShopSections(shopId: string, options?: UseQueryOptions<EtsyShopSection[]>): UseQueryResult<EtsyShopSection[]>;
54
+
55
+ interface ListingsOptions {
56
+ state?: 'active' | 'inactive' | 'draft' | 'expired';
57
+ limit?: number;
58
+ offset?: number;
59
+ sort_on?: 'created' | 'price';
60
+ sort_order?: 'up' | 'down';
61
+ }
62
+ declare function useListings(shopId: string, listingsOptions?: ListingsOptions, queryOptions?: UseQueryOptions<EtsyListing[]>): UsePaginatedQueryResult<EtsyListing>;
63
+ declare function useListing(listingId: string, options?: UseQueryOptions<EtsyListing>): UseQueryResult<EtsyListing>;
64
+
65
+ interface ReceiptsOptions {
66
+ was_paid?: boolean;
67
+ was_shipped?: boolean;
68
+ limit?: number;
69
+ offset?: number;
70
+ min_created?: number;
71
+ max_created?: number;
72
+ min_last_modified?: number;
73
+ max_last_modified?: number;
74
+ sort_on?: 'created' | 'updated';
75
+ sort_order?: 'up' | 'down';
76
+ }
77
+ declare function useReceipts(shopId: string, receiptsOptions?: ReceiptsOptions, queryOptions?: UseQueryOptions<EtsyShopReceipt[]>): UsePaginatedQueryResult<EtsyShopReceipt>;
78
+ declare function useReceipt(shopId: string, receiptId: string, options?: UseQueryOptions<EtsyShopReceipt>): UseQueryResult<EtsyShopReceipt>;
79
+
80
+ declare function useUpdateListing(options?: UseMutationOptions<EtsyListing, {
81
+ shopId: string;
82
+ listingId: string;
83
+ updates: UpdateListingParams;
84
+ }>): UseMutationResult<EtsyListing, {
85
+ shopId: string;
86
+ listingId: string;
87
+ updates: UpdateListingParams;
88
+ }>;
89
+ declare function useCreateDraftListing(options?: UseMutationOptions<EtsyListing, {
90
+ shopId: string;
91
+ params: CreateDraftListingParams;
92
+ }>): UseMutationResult<EtsyListing, {
93
+ shopId: string;
94
+ params: CreateDraftListingParams;
95
+ }>;
96
+ declare function useDeleteListing(options?: UseMutationOptions<void, {
97
+ listingId: string;
98
+ }>): UseMutationResult<void, {
99
+ listingId: string;
100
+ }>;
101
+ declare function useUpdateInventory(options?: UseMutationOptions<EtsyListingInventory, {
102
+ listingId: string;
103
+ updates: UpdateListingInventoryParams;
104
+ }>): UseMutationResult<EtsyListingInventory, {
105
+ listingId: string;
106
+ updates: UpdateListingInventoryParams;
107
+ }>;
108
+ declare function useUploadListingImage(options?: UseMutationOptions<EtsyListingImage, {
109
+ shopId: string;
110
+ listingId: string;
111
+ image: File | Buffer;
112
+ rank?: number;
113
+ }>): UseMutationResult<EtsyListingImage, {
114
+ shopId: string;
115
+ listingId: string;
116
+ image: File | Buffer;
117
+ rank?: number;
118
+ }>;
119
+ declare function useDeleteListingImage(options?: UseMutationOptions<void, {
120
+ shopId: string;
121
+ listingId: string;
122
+ listingImageId: string;
123
+ }>): UseMutationResult<void, {
124
+ shopId: string;
125
+ listingId: string;
126
+ listingImageId: string;
127
+ }>;
128
+ declare function useUpdateReceipt(options?: UseMutationOptions<EtsyShopReceipt, {
129
+ shopId: string;
130
+ receiptId: string;
131
+ was_shipped?: boolean;
132
+ was_paid?: boolean;
133
+ }>): UseMutationResult<EtsyShopReceipt, {
134
+ shopId: string;
135
+ receiptId: string;
136
+ was_shipped?: boolean;
137
+ was_paid?: boolean;
138
+ }>;
139
+ declare function useCreateShippingProfile(options?: UseMutationOptions<EtsyShippingProfile, {
140
+ shopId: string;
141
+ params: CreateShippingProfileParams;
142
+ }>): UseMutationResult<EtsyShippingProfile, {
143
+ shopId: string;
144
+ params: CreateShippingProfileParams;
145
+ }>;
146
+
147
+ export { EtsyProvider, useCreateDraftListing, useCreateShippingProfile, useDeleteListing, useDeleteListingImage, useEtsyClient, useEtsyContext, useListing, useListings, useMutation, useQuery, useReceipt, useReceipts, useShop, useShopSections, useUpdateInventory, useUpdateListing, useUpdateReceipt, useUploadListingImage };
148
+ export type { UseMutationOptions, UseMutationResult, UsePaginatedQueryResult, UseQueryOptions, UseQueryResult };