@spotsdev/sdk 1.3.3 → 1.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.
- package/dist/index.cjs +2139 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1718 -0
- package/dist/index.d.ts +1717 -36
- package/dist/index.js +1996 -64
- package/dist/index.js.map +1 -0
- package/package.json +22 -6
- package/src/api/entities.ts +28 -84
- package/dist/api/client.d.ts +0 -12
- package/dist/api/client.js +0 -72
- package/dist/api/entities.d.ts +0 -326
- package/dist/api/entities.js +0 -9
- package/dist/api/mutations/clubs.d.ts +0 -47
- package/dist/api/mutations/clubs.js +0 -97
- package/dist/api/mutations/conversations.d.ts +0 -45
- package/dist/api/mutations/conversations.js +0 -114
- package/dist/api/mutations/index.d.ts +0 -14
- package/dist/api/mutations/index.js +0 -40
- package/dist/api/mutations/notifications.d.ts +0 -38
- package/dist/api/mutations/notifications.js +0 -64
- package/dist/api/mutations/orders.d.ts +0 -73
- package/dist/api/mutations/orders.js +0 -114
- package/dist/api/mutations/posts.d.ts +0 -123
- package/dist/api/mutations/posts.js +0 -242
- package/dist/api/mutations/products.d.ts +0 -81
- package/dist/api/mutations/products.js +0 -98
- package/dist/api/mutations/redemptions.d.ts +0 -33
- package/dist/api/mutations/redemptions.js +0 -63
- package/dist/api/mutations/spots.d.ts +0 -93
- package/dist/api/mutations/spots.js +0 -167
- package/dist/api/mutations/users.d.ts +0 -73
- package/dist/api/mutations/users.js +0 -175
- package/dist/api/queries/auth.d.ts +0 -37
- package/dist/api/queries/auth.js +0 -61
- package/dist/api/queries/clubs.d.ts +0 -52
- package/dist/api/queries/clubs.js +0 -116
- package/dist/api/queries/conversations.d.ts +0 -52
- package/dist/api/queries/conversations.js +0 -83
- package/dist/api/queries/index.d.ts +0 -28
- package/dist/api/queries/index.js +0 -69
- package/dist/api/queries/misc.d.ts +0 -30
- package/dist/api/queries/misc.js +0 -91
- package/dist/api/queries/notifications.d.ts +0 -34
- package/dist/api/queries/notifications.js +0 -62
- package/dist/api/queries/orders.d.ts +0 -45
- package/dist/api/queries/orders.js +0 -93
- package/dist/api/queries/posts.d.ts +0 -92
- package/dist/api/queries/posts.js +0 -233
- package/dist/api/queries/products.d.ts +0 -48
- package/dist/api/queries/products.js +0 -87
- package/dist/api/queries/spots.d.ts +0 -93
- package/dist/api/queries/spots.js +0 -250
- package/dist/api/queries/templates.d.ts +0 -39
- package/dist/api/queries/templates.js +0 -81
- package/dist/api/queries/users.d.ts +0 -104
- package/dist/api/queries/users.js +0 -235
- package/dist/api/queries/wallet.d.ts +0 -109
- package/dist/api/queries/wallet.js +0 -136
- package/dist/api/services/index.d.ts +0 -2
- package/dist/api/services/index.js +0 -8
- package/dist/api/services/marketplace.d.ts +0 -129
- package/dist/api/services/marketplace.js +0 -168
- package/dist/api/types.d.ts +0 -57
- package/dist/api/types.js +0 -33
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Spots SDK Query Hooks Index
|
|
3
|
-
*
|
|
4
|
-
* Re-exports all query hooks and keys.
|
|
5
|
-
*/
|
|
6
|
-
export * from './auth';
|
|
7
|
-
export * from './users';
|
|
8
|
-
export { userKeys } from './users';
|
|
9
|
-
export * from './spots';
|
|
10
|
-
export { spotKeys } from './spots';
|
|
11
|
-
export * from './posts';
|
|
12
|
-
export { postKeys } from './posts';
|
|
13
|
-
export * from './conversations';
|
|
14
|
-
export { conversationKeys } from './conversations';
|
|
15
|
-
export * from './clubs';
|
|
16
|
-
export { clubKeys } from './clubs';
|
|
17
|
-
export * from './templates';
|
|
18
|
-
export { templateKeys } from './templates';
|
|
19
|
-
export * from './notifications';
|
|
20
|
-
export { notificationKeys } from './notifications';
|
|
21
|
-
export * from './misc';
|
|
22
|
-
export { miscKeys } from './misc';
|
|
23
|
-
export * from './products';
|
|
24
|
-
export { productKeys } from './products';
|
|
25
|
-
export * from './orders';
|
|
26
|
-
export { orderKeys } from './orders';
|
|
27
|
-
export * from './wallet';
|
|
28
|
-
export { walletKeys } from './wallet';
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Spots SDK Query Hooks Index
|
|
4
|
-
*
|
|
5
|
-
* Re-exports all query hooks and keys.
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.walletKeys = exports.orderKeys = exports.productKeys = exports.miscKeys = exports.notificationKeys = exports.templateKeys = exports.clubKeys = exports.conversationKeys = exports.postKeys = exports.spotKeys = exports.userKeys = void 0;
|
|
23
|
-
// Auth (mutations, but grouped with queries for convenience)
|
|
24
|
-
__exportStar(require("./auth"), exports);
|
|
25
|
-
// Users
|
|
26
|
-
__exportStar(require("./users"), exports);
|
|
27
|
-
var users_1 = require("./users");
|
|
28
|
-
Object.defineProperty(exports, "userKeys", { enumerable: true, get: function () { return users_1.userKeys; } });
|
|
29
|
-
// Spots
|
|
30
|
-
__exportStar(require("./spots"), exports);
|
|
31
|
-
var spots_1 = require("./spots");
|
|
32
|
-
Object.defineProperty(exports, "spotKeys", { enumerable: true, get: function () { return spots_1.spotKeys; } });
|
|
33
|
-
// Posts
|
|
34
|
-
__exportStar(require("./posts"), exports);
|
|
35
|
-
var posts_1 = require("./posts");
|
|
36
|
-
Object.defineProperty(exports, "postKeys", { enumerable: true, get: function () { return posts_1.postKeys; } });
|
|
37
|
-
// Conversations
|
|
38
|
-
__exportStar(require("./conversations"), exports);
|
|
39
|
-
var conversations_1 = require("./conversations");
|
|
40
|
-
Object.defineProperty(exports, "conversationKeys", { enumerable: true, get: function () { return conversations_1.conversationKeys; } });
|
|
41
|
-
// Clubs
|
|
42
|
-
__exportStar(require("./clubs"), exports);
|
|
43
|
-
var clubs_1 = require("./clubs");
|
|
44
|
-
Object.defineProperty(exports, "clubKeys", { enumerable: true, get: function () { return clubs_1.clubKeys; } });
|
|
45
|
-
// Templates
|
|
46
|
-
__exportStar(require("./templates"), exports);
|
|
47
|
-
var templates_1 = require("./templates");
|
|
48
|
-
Object.defineProperty(exports, "templateKeys", { enumerable: true, get: function () { return templates_1.templateKeys; } });
|
|
49
|
-
// Notifications
|
|
50
|
-
__exportStar(require("./notifications"), exports);
|
|
51
|
-
var notifications_1 = require("./notifications");
|
|
52
|
-
Object.defineProperty(exports, "notificationKeys", { enumerable: true, get: function () { return notifications_1.notificationKeys; } });
|
|
53
|
-
// Misc (cities, vibes, events)
|
|
54
|
-
__exportStar(require("./misc"), exports);
|
|
55
|
-
var misc_1 = require("./misc");
|
|
56
|
-
Object.defineProperty(exports, "miscKeys", { enumerable: true, get: function () { return misc_1.miscKeys; } });
|
|
57
|
-
// Products (marketplace)
|
|
58
|
-
__exportStar(require("./products"), exports);
|
|
59
|
-
var products_1 = require("./products");
|
|
60
|
-
Object.defineProperty(exports, "productKeys", { enumerable: true, get: function () { return products_1.productKeys; } });
|
|
61
|
-
// Orders (marketplace)
|
|
62
|
-
__exportStar(require("./orders"), exports);
|
|
63
|
-
var orders_1 = require("./orders");
|
|
64
|
-
Object.defineProperty(exports, "orderKeys", { enumerable: true, get: function () { return orders_1.orderKeys; } });
|
|
65
|
-
// Wallet (redemptions)
|
|
66
|
-
__exportStar(require("./wallet"), exports);
|
|
67
|
-
var wallet_1 = require("./wallet");
|
|
68
|
-
Object.defineProperty(exports, "walletKeys", { enumerable: true, get: function () { return wallet_1.walletKeys; } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsNkRBQTZEO0FBQzdELHlDQUFzQjtBQUV0QixRQUFRO0FBQ1IsMENBQXVCO0FBQ3ZCLGlDQUFnQztBQUF4QixpR0FBQSxRQUFRLE9BQUE7QUFFaEIsUUFBUTtBQUNSLDBDQUF1QjtBQUN2QixpQ0FBZ0M7QUFBeEIsaUdBQUEsUUFBUSxPQUFBO0FBRWhCLFFBQVE7QUFDUiwwQ0FBdUI7QUFDdkIsaUNBQWdDO0FBQXhCLGlHQUFBLFFBQVEsT0FBQTtBQUVoQixnQkFBZ0I7QUFDaEIsa0RBQStCO0FBQy9CLGlEQUFnRDtBQUF4QyxpSEFBQSxnQkFBZ0IsT0FBQTtBQUV4QixRQUFRO0FBQ1IsMENBQXVCO0FBQ3ZCLGlDQUFnQztBQUF4QixpR0FBQSxRQUFRLE9BQUE7QUFFaEIsWUFBWTtBQUNaLDhDQUEyQjtBQUMzQix5Q0FBd0M7QUFBaEMseUdBQUEsWUFBWSxPQUFBO0FBRXBCLGdCQUFnQjtBQUNoQixrREFBK0I7QUFDL0IsaURBQWdEO0FBQXhDLGlIQUFBLGdCQUFnQixPQUFBO0FBRXhCLCtCQUErQjtBQUMvQix5Q0FBc0I7QUFDdEIsK0JBQStCO0FBQXZCLGdHQUFBLFFBQVEsT0FBQTtBQUVoQix5QkFBeUI7QUFDekIsNkNBQTBCO0FBQzFCLHVDQUFzQztBQUE5Qix1R0FBQSxXQUFXLE9BQUE7QUFFbkIsdUJBQXVCO0FBQ3ZCLDJDQUF3QjtBQUN4QixtQ0FBa0M7QUFBMUIsbUdBQUEsU0FBUyxPQUFBO0FBRWpCLHVCQUF1QjtBQUN2QiwyQ0FBd0I7QUFDeEIsbUNBQW1DO0FBQTNCLG9HQUFBLFVBQVUsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3BvdHMgU0RLIFF1ZXJ5IEhvb2tzIEluZGV4XG4gKlxuICogUmUtZXhwb3J0cyBhbGwgcXVlcnkgaG9va3MgYW5kIGtleXMuXG4gKi9cblxuLy8gQXV0aCAobXV0YXRpb25zLCBidXQgZ3JvdXBlZCB3aXRoIHF1ZXJpZXMgZm9yIGNvbnZlbmllbmNlKVxuZXhwb3J0ICogZnJvbSAnLi9hdXRoJ1xuXG4vLyBVc2Vyc1xuZXhwb3J0ICogZnJvbSAnLi91c2VycydcbmV4cG9ydCB7dXNlcktleXN9IGZyb20gJy4vdXNlcnMnXG5cbi8vIFNwb3RzXG5leHBvcnQgKiBmcm9tICcuL3Nwb3RzJ1xuZXhwb3J0IHtzcG90S2V5c30gZnJvbSAnLi9zcG90cydcblxuLy8gUG9zdHNcbmV4cG9ydCAqIGZyb20gJy4vcG9zdHMnXG5leHBvcnQge3Bvc3RLZXlzfSBmcm9tICcuL3Bvc3RzJ1xuXG4vLyBDb252ZXJzYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL2NvbnZlcnNhdGlvbnMnXG5leHBvcnQge2NvbnZlcnNhdGlvbktleXN9IGZyb20gJy4vY29udmVyc2F0aW9ucydcblxuLy8gQ2x1YnNcbmV4cG9ydCAqIGZyb20gJy4vY2x1YnMnXG5leHBvcnQge2NsdWJLZXlzfSBmcm9tICcuL2NsdWJzJ1xuXG4vLyBUZW1wbGF0ZXNcbmV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGVzJ1xuZXhwb3J0IHt0ZW1wbGF0ZUtleXN9IGZyb20gJy4vdGVtcGxhdGVzJ1xuXG4vLyBOb3RpZmljYXRpb25zXG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnXG5leHBvcnQge25vdGlmaWNhdGlvbktleXN9IGZyb20gJy4vbm90aWZpY2F0aW9ucydcblxuLy8gTWlzYyAoY2l0aWVzLCB2aWJlcywgZXZlbnRzKVxuZXhwb3J0ICogZnJvbSAnLi9taXNjJ1xuZXhwb3J0IHttaXNjS2V5c30gZnJvbSAnLi9taXNjJ1xuXG4vLyBQcm9kdWN0cyAobWFya2V0cGxhY2UpXG5leHBvcnQgKiBmcm9tICcuL3Byb2R1Y3RzJ1xuZXhwb3J0IHtwcm9kdWN0S2V5c30gZnJvbSAnLi9wcm9kdWN0cydcblxuLy8gT3JkZXJzIChtYXJrZXRwbGFjZSlcbmV4cG9ydCAqIGZyb20gJy4vb3JkZXJzJ1xuZXhwb3J0IHtvcmRlcktleXN9IGZyb20gJy4vb3JkZXJzJ1xuXG4vLyBXYWxsZXQgKHJlZGVtcHRpb25zKVxuZXhwb3J0ICogZnJvbSAnLi93YWxsZXQnXG5leHBvcnQge3dhbGxldEtleXN9IGZyb20gJy4vd2FsbGV0J1xuIl19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Misc Query Hooks
|
|
3
|
-
*
|
|
4
|
-
* TanStack Query hooks for cities, vibes, and other reference data.
|
|
5
|
-
*/
|
|
6
|
-
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
7
|
-
import { type City, type LifeSituation, type Vibe } from '../types';
|
|
8
|
-
export declare const miscKeys: {
|
|
9
|
-
cities: () => readonly ["cities"];
|
|
10
|
-
vibes: () => readonly ["vibes"];
|
|
11
|
-
lifeSituations: () => readonly ["life-situations"];
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Get all cities
|
|
15
|
-
*
|
|
16
|
-
* @endpoint GET /cities
|
|
17
|
-
*/
|
|
18
|
-
export declare function useCities(options?: Omit<UseQueryOptions<City[]>, 'queryKey' | 'queryFn'>): UseQueryResult<City[]>;
|
|
19
|
-
/**
|
|
20
|
-
* Get all vibes
|
|
21
|
-
*
|
|
22
|
-
* @endpoint GET /vibes
|
|
23
|
-
*/
|
|
24
|
-
export declare function useVibes(options?: Omit<UseQueryOptions<Vibe[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Vibe[]>;
|
|
25
|
-
/**
|
|
26
|
-
* Get all life situations (for onboarding)
|
|
27
|
-
*
|
|
28
|
-
* @endpoint GET /life-situations
|
|
29
|
-
*/
|
|
30
|
-
export declare function useLifeSituations(options?: Omit<UseQueryOptions<LifeSituation[]>, 'queryKey' | 'queryFn'>): UseQueryResult<LifeSituation[]>;
|
package/dist/api/queries/misc.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Misc Query Hooks
|
|
4
|
-
*
|
|
5
|
-
* TanStack Query hooks for cities, vibes, and other reference data.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.miscKeys = void 0;
|
|
9
|
-
exports.useCities = useCities;
|
|
10
|
-
exports.useVibes = useVibes;
|
|
11
|
-
exports.useLifeSituations = useLifeSituations;
|
|
12
|
-
const react_query_1 = require("@tanstack/react-query");
|
|
13
|
-
const client_1 = require("../client");
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// HELPER FUNCTIONS
|
|
16
|
-
// ============================================================================
|
|
17
|
-
function extractArrayData(data) {
|
|
18
|
-
if (Array.isArray(data)) {
|
|
19
|
-
return data;
|
|
20
|
-
}
|
|
21
|
-
if (data && typeof data === 'object' && 'data' in data) {
|
|
22
|
-
const nested = data.data;
|
|
23
|
-
if (Array.isArray(nested)) {
|
|
24
|
-
return nested;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return [];
|
|
28
|
-
}
|
|
29
|
-
// ============================================================================
|
|
30
|
-
// QUERY KEYS
|
|
31
|
-
// ============================================================================
|
|
32
|
-
exports.miscKeys = {
|
|
33
|
-
cities: () => ['cities'],
|
|
34
|
-
vibes: () => ['vibes'],
|
|
35
|
-
lifeSituations: () => ['life-situations'],
|
|
36
|
-
};
|
|
37
|
-
// ============================================================================
|
|
38
|
-
// QUERY HOOKS
|
|
39
|
-
// ============================================================================
|
|
40
|
-
/**
|
|
41
|
-
* Get all cities
|
|
42
|
-
*
|
|
43
|
-
* @endpoint GET /cities
|
|
44
|
-
*/
|
|
45
|
-
function useCities(options) {
|
|
46
|
-
return (0, react_query_1.useQuery)({
|
|
47
|
-
queryKey: exports.miscKeys.cities(),
|
|
48
|
-
queryFn: async () => {
|
|
49
|
-
const client = (0, client_1.getApiClient)();
|
|
50
|
-
const response = await client.get('/cities');
|
|
51
|
-
return extractArrayData(response.data.data);
|
|
52
|
-
},
|
|
53
|
-
staleTime: 1000 * 60 * 60,
|
|
54
|
-
...options,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Get all vibes
|
|
59
|
-
*
|
|
60
|
-
* @endpoint GET /vibes
|
|
61
|
-
*/
|
|
62
|
-
function useVibes(options) {
|
|
63
|
-
return (0, react_query_1.useQuery)({
|
|
64
|
-
queryKey: exports.miscKeys.vibes(),
|
|
65
|
-
queryFn: async () => {
|
|
66
|
-
const client = (0, client_1.getApiClient)();
|
|
67
|
-
const response = await client.get('/vibes');
|
|
68
|
-
return extractArrayData(response.data.data);
|
|
69
|
-
},
|
|
70
|
-
staleTime: 1000 * 60 * 60,
|
|
71
|
-
...options,
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get all life situations (for onboarding)
|
|
76
|
-
*
|
|
77
|
-
* @endpoint GET /life-situations
|
|
78
|
-
*/
|
|
79
|
-
function useLifeSituations(options) {
|
|
80
|
-
return (0, react_query_1.useQuery)({
|
|
81
|
-
queryKey: exports.miscKeys.lifeSituations(),
|
|
82
|
-
queryFn: async () => {
|
|
83
|
-
const client = (0, client_1.getApiClient)();
|
|
84
|
-
const response = await client.get('/life-situations');
|
|
85
|
-
return extractArrayData(response.data.data);
|
|
86
|
-
},
|
|
87
|
-
staleTime: 1000 * 60 * 60,
|
|
88
|
-
...options,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFvREgsOEJBYUM7QUFPRCw0QkFhQztBQU9ELDhDQWNDO0FBeEdELHVEQUk4QjtBQUU5QixzQ0FBc0M7QUFRdEMsK0VBQStFO0FBQy9FLG1CQUFtQjtBQUNuQiwrRUFBK0U7QUFFL0UsU0FBUyxnQkFBZ0IsQ0FBSSxJQUFhO0lBQ3hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUNELElBQUksSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUksSUFBd0IsQ0FBQyxJQUFJLENBQUE7UUFDN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQztBQUVELCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBVTtJQUNqQyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQVU7SUFDL0IsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQVU7Q0FDbkQsQ0FBQTtBQUVELCtFQUErRTtBQUMvRSxjQUFjO0FBQ2QsK0VBQStFO0FBRS9FOzs7O0dBSUc7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsTUFBTSxFQUFFO1FBQzNCLE9BQU8sRUFBRSxLQUFLLElBQXFCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUF1QixTQUFTLENBQUMsQ0FBQTtZQUNsRSxPQUFPLGdCQUFnQixDQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkQsQ0FBQztRQUNELFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDekIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQ3RCLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLGdCQUFRLENBQUMsS0FBSyxFQUFFO1FBQzFCLE9BQU8sRUFBRSxLQUFLLElBQXFCLEVBQUU7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUE7WUFDN0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUF1QixRQUFRLENBQUMsQ0FBQTtZQUNqRSxPQUFPLGdCQUFnQixDQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkQsQ0FBQztRQUNELFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUU7UUFDekIsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsT0FBd0U7SUFFeEUsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUsZ0JBQVEsQ0FBQyxjQUFjLEVBQUU7UUFDbkMsT0FBTyxFQUFFLEtBQUssSUFBOEIsRUFBRTtZQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFFBQVEsR0FDWixNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQXVCLGtCQUFrQixDQUFDLENBQUE7WUFDNUQsT0FBTyxnQkFBZ0IsQ0FBZ0IsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1RCxDQUFDO1FBQ0QsU0FBUyxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRTtRQUN6QixHQUFHLE9BQU87S0FDWCxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNaXNjIFF1ZXJ5IEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIGNpdGllcywgdmliZXMsIGFuZCBvdGhlciByZWZlcmVuY2UgZGF0YS5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VRdWVyeSxcbiAgdHlwZSBVc2VRdWVyeU9wdGlvbnMsXG4gIHR5cGUgVXNlUXVlcnlSZXN1bHQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7XG4gIHR5cGUgQXBpUmVzcG9uc2UsXG4gIHR5cGUgQ2l0eSxcbiAgdHlwZSBMaWZlU2l0dWF0aW9uLFxuICB0eXBlIFZpYmUsXG59IGZyb20gJy4uL3R5cGVzJ1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBIRUxQRVIgRlVOQ1RJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmZ1bmN0aW9uIGV4dHJhY3RBcnJheURhdGE8VD4oZGF0YTogdW5rbm93bik6IFRbXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuICBpZiAoZGF0YSAmJiB0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgJ2RhdGEnIGluIGRhdGEpIHtcbiAgICBjb25zdCBuZXN0ZWQgPSAoZGF0YSBhcyB7ZGF0YTogdW5rbm93bn0pLmRhdGFcbiAgICBpZiAoQXJyYXkuaXNBcnJheShuZXN0ZWQpKSB7XG4gICAgICByZXR1cm4gbmVzdGVkXG4gICAgfVxuICB9XG4gIHJldHVybiBbXVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVlTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBtaXNjS2V5cyA9IHtcbiAgY2l0aWVzOiAoKSA9PiBbJ2NpdGllcyddIGFzIGNvbnN0LFxuICB2aWJlczogKCkgPT4gWyd2aWJlcyddIGFzIGNvbnN0LFxuICBsaWZlU2l0dWF0aW9uczogKCkgPT4gWydsaWZlLXNpdHVhdGlvbnMnXSBhcyBjb25zdCxcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgYWxsIGNpdGllc1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL2NpdGllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQ2l0aWVzKFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Q2l0eVtdPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxDaXR5W10+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogbWlzY0tleXMuY2l0aWVzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8Q2l0eVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PignL2NpdGllcycpXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTxDaXR5PihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICBzdGFsZVRpbWU6IDEwMDAgKiA2MCAqIDYwLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGFsbCB2aWJlc1xuICpcbiAqIEBlbmRwb2ludCBHRVQgL3ZpYmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VWaWJlcyhcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPFZpYmVbXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8VmliZVtdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG1pc2NLZXlzLnZpYmVzKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8VmliZVtdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PignL3ZpYmVzJylcbiAgICAgIHJldHVybiBleHRyYWN0QXJyYXlEYXRhPFZpYmU+KHJlc3BvbnNlLmRhdGEuZGF0YSlcbiAgICB9LFxuICAgIHN0YWxlVGltZTogMTAwMCAqIDYwICogNjAsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgYWxsIGxpZmUgc2l0dWF0aW9ucyAoZm9yIG9uYm9hcmRpbmcpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvbGlmZS1zaXR1YXRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VMaWZlU2l0dWF0aW9ucyhcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPExpZmVTaXR1YXRpb25bXT4sICdxdWVyeUtleScgfCAncXVlcnlGbic+LFxuKTogVXNlUXVlcnlSZXN1bHQ8TGlmZVNpdHVhdGlvbltdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG1pc2NLZXlzLmxpZmVTaXR1YXRpb25zKCksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8TGlmZVNpdHVhdGlvbltdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPVxuICAgICAgICBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPHVua25vd24+PignL2xpZmUtc2l0dWF0aW9ucycpXG4gICAgICByZXR1cm4gZXh0cmFjdEFycmF5RGF0YTxMaWZlU2l0dWF0aW9uPihyZXNwb25zZS5kYXRhLmRhdGEpXG4gICAgfSxcbiAgICBzdGFsZVRpbWU6IDEwMDAgKiA2MCAqIDYwLFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG4iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Notifications Query Hooks
|
|
3
|
-
*
|
|
4
|
-
* TanStack Query hooks for notification operations.
|
|
5
|
-
*/
|
|
6
|
-
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
7
|
-
import { type Notification } from '../types';
|
|
8
|
-
export declare const notificationKeys: {
|
|
9
|
-
all: readonly ["notifications"];
|
|
10
|
-
lists: () => readonly ["notifications", "list"];
|
|
11
|
-
list: (params?: {
|
|
12
|
-
limit?: number;
|
|
13
|
-
unreadOnly?: boolean;
|
|
14
|
-
}) => readonly ["notifications", "list", {
|
|
15
|
-
limit?: number;
|
|
16
|
-
unreadOnly?: boolean;
|
|
17
|
-
} | undefined];
|
|
18
|
-
unreadCount: () => readonly ["notifications", "unreadCount"];
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* Get notifications for current user
|
|
22
|
-
*
|
|
23
|
-
* @endpoint GET /notifications
|
|
24
|
-
*/
|
|
25
|
-
export declare function useNotifications(params?: {
|
|
26
|
-
limit?: number;
|
|
27
|
-
unreadOnly?: boolean;
|
|
28
|
-
}, options?: Omit<UseQueryOptions<Notification[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Notification[]>;
|
|
29
|
-
/**
|
|
30
|
-
* Get unread notification count
|
|
31
|
-
*
|
|
32
|
-
* @endpoint GET /notifications/unread-count
|
|
33
|
-
*/
|
|
34
|
-
export declare function useUnreadNotificationCount(options?: Omit<UseQueryOptions<number>, 'queryKey' | 'queryFn'>): UseQueryResult<number>;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Notifications Query Hooks
|
|
4
|
-
*
|
|
5
|
-
* TanStack Query hooks for notification operations.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.notificationKeys = void 0;
|
|
9
|
-
exports.useNotifications = useNotifications;
|
|
10
|
-
exports.useUnreadNotificationCount = useUnreadNotificationCount;
|
|
11
|
-
const react_query_1 = require("@tanstack/react-query");
|
|
12
|
-
const client_1 = require("../client");
|
|
13
|
-
// ============================================================================
|
|
14
|
-
// QUERY KEYS
|
|
15
|
-
// ============================================================================
|
|
16
|
-
exports.notificationKeys = {
|
|
17
|
-
all: ['notifications'],
|
|
18
|
-
lists: () => [...exports.notificationKeys.all, 'list'],
|
|
19
|
-
list: (params) => [...exports.notificationKeys.lists(), params],
|
|
20
|
-
unreadCount: () => [...exports.notificationKeys.all, 'unreadCount'],
|
|
21
|
-
};
|
|
22
|
-
// ============================================================================
|
|
23
|
-
// QUERY HOOKS
|
|
24
|
-
// ============================================================================
|
|
25
|
-
/**
|
|
26
|
-
* Get notifications for current user
|
|
27
|
-
*
|
|
28
|
-
* @endpoint GET /notifications
|
|
29
|
-
*/
|
|
30
|
-
function useNotifications(params, options) {
|
|
31
|
-
return (0, react_query_1.useQuery)({
|
|
32
|
-
queryKey: exports.notificationKeys.list(params),
|
|
33
|
-
queryFn: async () => {
|
|
34
|
-
const client = (0, client_1.getApiClient)();
|
|
35
|
-
const queryParams = new URLSearchParams();
|
|
36
|
-
if (params?.limit)
|
|
37
|
-
queryParams.set('limit', String(params.limit));
|
|
38
|
-
if (params?.unreadOnly)
|
|
39
|
-
queryParams.set('unreadOnly', String(params.unreadOnly));
|
|
40
|
-
const response = await client.get(`/notifications?${queryParams}`);
|
|
41
|
-
return response.data.data;
|
|
42
|
-
},
|
|
43
|
-
...options,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get unread notification count
|
|
48
|
-
*
|
|
49
|
-
* @endpoint GET /notifications/unread-count
|
|
50
|
-
*/
|
|
51
|
-
function useUnreadNotificationCount(options) {
|
|
52
|
-
return (0, react_query_1.useQuery)({
|
|
53
|
-
queryKey: exports.notificationKeys.unreadCount(),
|
|
54
|
-
queryFn: async () => {
|
|
55
|
-
const client = (0, client_1.getApiClient)();
|
|
56
|
-
const response = await client.get('/notifications/unread-count');
|
|
57
|
-
return response.data.data.count;
|
|
58
|
-
},
|
|
59
|
-
...options,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcXVlcmllcy9ub3RpZmljYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFnQ0gsNENBbUJDO0FBT0QsZ0VBY0M7QUF0RUQsdURBSThCO0FBRTlCLHNDQUFzQztBQUd0QywrRUFBK0U7QUFDL0UsYUFBYTtBQUNiLCtFQUErRTtBQUVsRSxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBVTtJQUMvQixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLHdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLENBQVU7SUFDdkQsSUFBSSxFQUFFLENBQUMsTUFBK0MsRUFBRSxFQUFFLENBQ3hELENBQUMsR0FBRyx3QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLENBQVU7SUFDaEQsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyx3QkFBZ0IsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFVO0NBQ3JFLENBQUE7QUFFRCwrRUFBK0U7QUFDL0UsY0FBYztBQUNkLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLE1BQStDLEVBQy9DLE9BQXVFO0lBRXZFLE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLHdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkMsT0FBTyxFQUFFLEtBQUssSUFBNkIsRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQTtZQUM3QixNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFBO1lBQ3pDLElBQUksTUFBTSxFQUFFLEtBQUs7Z0JBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQ2pFLElBQUksTUFBTSxFQUFFLFVBQVU7Z0JBQ3BCLFdBQVcsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUMxRCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLGtCQUFrQixXQUFXLEVBQUUsQ0FDaEMsQ0FBQTtZQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDM0IsQ0FBQztRQUNELEdBQUcsT0FBTztLQUNYLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQ3hDLE9BQStEO0lBRS9ELE9BQU8sSUFBQSxzQkFBUSxFQUFDO1FBQ2QsUUFBUSxFQUFFLHdCQUFnQixDQUFDLFdBQVcsRUFBRTtRQUN4QyxPQUFPLEVBQUUsS0FBSyxJQUFxQixFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFBO1lBQzdCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0IsNkJBQTZCLENBQzlCLENBQUE7WUFDRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUNqQyxDQUFDO1FBQ0QsR0FBRyxPQUFPO0tBQ1gsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTm90aWZpY2F0aW9ucyBRdWVyeSBIb29rc1xuICpcbiAqIFRhblN0YWNrIFF1ZXJ5IGhvb2tzIGZvciBub3RpZmljYXRpb24gb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge1xuICB1c2VRdWVyeSxcbiAgdHlwZSBVc2VRdWVyeU9wdGlvbnMsXG4gIHR5cGUgVXNlUXVlcnlSZXN1bHQsXG59IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSdcblxuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB7dHlwZSBBcGlSZXNwb25zZSwgdHlwZSBOb3RpZmljYXRpb259IGZyb20gJy4uL3R5cGVzJ1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBRVUVSWSBLRVlTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBjb25zdCBub3RpZmljYXRpb25LZXlzID0ge1xuICBhbGw6IFsnbm90aWZpY2F0aW9ucyddIGFzIGNvbnN0LFxuICBsaXN0czogKCkgPT4gWy4uLm5vdGlmaWNhdGlvbktleXMuYWxsLCAnbGlzdCddIGFzIGNvbnN0LFxuICBsaXN0OiAocGFyYW1zPzoge2xpbWl0PzogbnVtYmVyOyB1bnJlYWRPbmx5PzogYm9vbGVhbn0pID0+XG4gICAgWy4uLm5vdGlmaWNhdGlvbktleXMubGlzdHMoKSwgcGFyYW1zXSBhcyBjb25zdCxcbiAgdW5yZWFkQ291bnQ6ICgpID0+IFsuLi5ub3RpZmljYXRpb25LZXlzLmFsbCwgJ3VucmVhZENvdW50J10gYXMgY29uc3QsXG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogR2V0IG5vdGlmaWNhdGlvbnMgZm9yIGN1cnJlbnQgdXNlclxuICpcbiAqIEBlbmRwb2ludCBHRVQgL25vdGlmaWNhdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU5vdGlmaWNhdGlvbnMoXG4gIHBhcmFtcz86IHtsaW1pdD86IG51bWJlcjsgdW5yZWFkT25seT86IGJvb2xlYW59LFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8Tm90aWZpY2F0aW9uW10+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PE5vdGlmaWNhdGlvbltdPiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG5vdGlmaWNhdGlvbktleXMubGlzdChwYXJhbXMpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPE5vdGlmaWNhdGlvbltdPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpXG4gICAgICBpZiAocGFyYW1zPy51bnJlYWRPbmx5KVxuICAgICAgICBxdWVyeVBhcmFtcy5zZXQoJ3VucmVhZE9ubHknLCBTdHJpbmcocGFyYW1zLnVucmVhZE9ubHkpKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPE5vdGlmaWNhdGlvbltdPj4oXG4gICAgICAgIGAvbm90aWZpY2F0aW9ucz8ke3F1ZXJ5UGFyYW1zfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuXG4vKipcbiAqIEdldCB1bnJlYWQgbm90aWZpY2F0aW9uIGNvdW50XG4gKlxuICogQGVuZHBvaW50IEdFVCAvbm90aWZpY2F0aW9ucy91bnJlYWQtY291bnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVucmVhZE5vdGlmaWNhdGlvbkNvdW50KFxuICBvcHRpb25zPzogT21pdDxVc2VRdWVyeU9wdGlvbnM8bnVtYmVyPiwgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJz4sXG4pOiBVc2VRdWVyeVJlc3VsdDxudW1iZXI+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogbm90aWZpY2F0aW9uS2V5cy51bnJlYWRDb3VudCgpLFxuICAgIHF1ZXJ5Rm46IGFzeW5jICgpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxBcGlSZXNwb25zZTx7Y291bnQ6IG51bWJlcn0+PihcbiAgICAgICAgJy9ub3RpZmljYXRpb25zL3VucmVhZC1jb3VudCcsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhLmNvdW50XG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Orders Query Hooks
|
|
3
|
-
*
|
|
4
|
-
* TanStack Query hooks for order-related operations.
|
|
5
|
-
*/
|
|
6
|
-
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
7
|
-
import type { Order, OrderItem, Product, Spot, OrderStatus, PaginatedResponse } from '../types';
|
|
8
|
-
export declare const orderKeys: {
|
|
9
|
-
all: readonly ["orders"];
|
|
10
|
-
lists: () => readonly ["orders", "list"];
|
|
11
|
-
list: (filters?: Record<string, unknown>) => readonly ["orders", "list", Record<string, unknown> | undefined];
|
|
12
|
-
details: () => readonly ["orders", "detail"];
|
|
13
|
-
detail: (id: string) => readonly ["orders", "detail", string];
|
|
14
|
-
myOrders: () => readonly ["orders", "my"];
|
|
15
|
-
spotOrders: (spotId: string) => readonly ["orders", "spot", string];
|
|
16
|
-
};
|
|
17
|
-
export interface OrderWithDetails extends Order {
|
|
18
|
-
items: (OrderItem & {
|
|
19
|
-
product: Pick<Product, 'id' | 'name' | 'slug' | 'type' | 'imageUrl'>;
|
|
20
|
-
})[];
|
|
21
|
-
spot: Pick<Spot, 'id' | 'name' | 'slug'>;
|
|
22
|
-
}
|
|
23
|
-
export interface OrderFilters {
|
|
24
|
-
status?: OrderStatus;
|
|
25
|
-
limit?: number;
|
|
26
|
-
page?: number;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get current user's orders (purchases)
|
|
30
|
-
*
|
|
31
|
-
* @endpoint GET /users/me/orders
|
|
32
|
-
*/
|
|
33
|
-
export declare function useMyOrders(params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
|
|
34
|
-
/**
|
|
35
|
-
* Get a single order by ID
|
|
36
|
-
*
|
|
37
|
-
* @endpoint GET /orders/{orderId}
|
|
38
|
-
*/
|
|
39
|
-
export declare function useOrder(orderId: string, options?: Omit<UseQueryOptions<OrderWithDetails>, 'queryKey' | 'queryFn'>): UseQueryResult<OrderWithDetails>;
|
|
40
|
-
/**
|
|
41
|
-
* Get orders for a spot (seller view)
|
|
42
|
-
*
|
|
43
|
-
* @endpoint GET /seller/spots/{spotId}/orders
|
|
44
|
-
*/
|
|
45
|
-
export declare function useSpotOrders(spotId: string, params?: OrderFilters, options?: Omit<UseQueryOptions<PaginatedResponse<OrderWithDetails>>, 'queryKey' | 'queryFn'>): UseQueryResult<PaginatedResponse<OrderWithDetails>>;
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Orders Query Hooks
|
|
4
|
-
*
|
|
5
|
-
* TanStack Query hooks for order-related operations.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.orderKeys = void 0;
|
|
9
|
-
exports.useMyOrders = useMyOrders;
|
|
10
|
-
exports.useOrder = useOrder;
|
|
11
|
-
exports.useSpotOrders = useSpotOrders;
|
|
12
|
-
const react_query_1 = require("@tanstack/react-query");
|
|
13
|
-
const client_1 = require("../client");
|
|
14
|
-
// ============================================================================
|
|
15
|
-
// QUERY KEYS
|
|
16
|
-
// ============================================================================
|
|
17
|
-
exports.orderKeys = {
|
|
18
|
-
all: ['orders'],
|
|
19
|
-
lists: () => [...exports.orderKeys.all, 'list'],
|
|
20
|
-
list: (filters) => [...exports.orderKeys.lists(), filters],
|
|
21
|
-
details: () => [...exports.orderKeys.all, 'detail'],
|
|
22
|
-
detail: (id) => [...exports.orderKeys.details(), id],
|
|
23
|
-
myOrders: () => [...exports.orderKeys.all, 'my'],
|
|
24
|
-
spotOrders: (spotId) => [...exports.orderKeys.all, 'spot', spotId],
|
|
25
|
-
};
|
|
26
|
-
// ============================================================================
|
|
27
|
-
// QUERY HOOKS
|
|
28
|
-
// ============================================================================
|
|
29
|
-
/**
|
|
30
|
-
* Get current user's orders (purchases)
|
|
31
|
-
*
|
|
32
|
-
* @endpoint GET /users/me/orders
|
|
33
|
-
*/
|
|
34
|
-
function useMyOrders(params, options) {
|
|
35
|
-
return (0, react_query_1.useQuery)({
|
|
36
|
-
queryKey: exports.orderKeys.list({ ...params, my: true }),
|
|
37
|
-
queryFn: async () => {
|
|
38
|
-
const client = (0, client_1.getApiClient)();
|
|
39
|
-
const queryParams = new URLSearchParams();
|
|
40
|
-
if (params?.status)
|
|
41
|
-
queryParams.set('status', params.status);
|
|
42
|
-
if (params?.limit)
|
|
43
|
-
queryParams.set('limit', String(params.limit));
|
|
44
|
-
if (params?.page)
|
|
45
|
-
queryParams.set('page', String(params.page));
|
|
46
|
-
const response = await client.get(`/users/me/orders?${queryParams}`);
|
|
47
|
-
return response.data.data;
|
|
48
|
-
},
|
|
49
|
-
...options,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Get a single order by ID
|
|
54
|
-
*
|
|
55
|
-
* @endpoint GET /orders/{orderId}
|
|
56
|
-
*/
|
|
57
|
-
function useOrder(orderId, options) {
|
|
58
|
-
return (0, react_query_1.useQuery)({
|
|
59
|
-
queryKey: exports.orderKeys.detail(orderId),
|
|
60
|
-
queryFn: async () => {
|
|
61
|
-
const client = (0, client_1.getApiClient)();
|
|
62
|
-
const response = await client.get(`/orders/${orderId}`);
|
|
63
|
-
return response.data.data;
|
|
64
|
-
},
|
|
65
|
-
enabled: !!orderId,
|
|
66
|
-
...options,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Get orders for a spot (seller view)
|
|
71
|
-
*
|
|
72
|
-
* @endpoint GET /seller/spots/{spotId}/orders
|
|
73
|
-
*/
|
|
74
|
-
function useSpotOrders(spotId, params, options) {
|
|
75
|
-
return (0, react_query_1.useQuery)({
|
|
76
|
-
queryKey: exports.orderKeys.spotOrders(spotId),
|
|
77
|
-
queryFn: async () => {
|
|
78
|
-
const client = (0, client_1.getApiClient)();
|
|
79
|
-
const queryParams = new URLSearchParams();
|
|
80
|
-
if (params?.status)
|
|
81
|
-
queryParams.set('status', params.status);
|
|
82
|
-
if (params?.limit)
|
|
83
|
-
queryParams.set('limit', String(params.limit));
|
|
84
|
-
if (params?.page)
|
|
85
|
-
queryParams.set('page', String(params.page));
|
|
86
|
-
const response = await client.get(`/seller/spots/${spotId}/orders?${queryParams}`);
|
|
87
|
-
return response.data.data;
|
|
88
|
-
},
|
|
89
|
-
enabled: !!spotId,
|
|
90
|
-
...options,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9xdWVyaWVzL29yZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7O0FBdURILGtDQXNCQztBQU9ELDRCQWdCQztBQU9ELHNDQXdCQztBQWpJRCx1REFBeUY7QUFDekYsc0NBQXNDO0FBV3RDLCtFQUErRTtBQUMvRSxhQUFhO0FBQ2IsK0VBQStFO0FBRWxFLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBVTtJQUN4QixLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBVTtJQUNoRCxJQUFJLEVBQUUsQ0FBQyxPQUFpQyxFQUFFLEVBQUUsQ0FDMUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxDQUFVO0lBQzFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFVO0lBQ3BELE1BQU0sRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFVO0lBQzdELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFVO0lBQ2pELFVBQVUsRUFBRSxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGlCQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVU7Q0FDNUUsQ0FBQTtBQW1CRCwrRUFBK0U7QUFDL0UsY0FBYztBQUNkLCtFQUErRTtBQUUvRTs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUN6QixNQUFxQixFQUNyQixPQUdDO0lBRUQsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFD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b250ZW50IjpbIi8qKlxuICogT3JkZXJzIFF1ZXJ5IEhvb2tzXG4gKlxuICogVGFuU3RhY2sgUXVlcnkgaG9va3MgZm9yIG9yZGVyLXJlbGF0ZWQgb3BlcmF0aW9ucy5cbiAqL1xuXG5pbXBvcnQge3VzZVF1ZXJ5LCB0eXBlIFVzZVF1ZXJ5T3B0aW9ucywgdHlwZSBVc2VRdWVyeVJlc3VsdH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5J1xuaW1wb3J0IHtnZXRBcGlDbGllbnR9IGZyb20gJy4uL2NsaWVudCdcbmltcG9ydCB0eXBlIHtcbiAgT3JkZXIsXG4gIE9yZGVySXRlbSxcbiAgUHJvZHVjdCxcbiAgU3BvdCxcbiAgT3JkZXJTdGF0dXMsXG4gIEFwaVJlc3BvbnNlLFxuICBQYWdpbmF0ZWRSZXNwb25zZSxcbn0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFFVRVJZIEtFWVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGNvbnN0IG9yZGVyS2V5cyA9IHtcbiAgYWxsOiBbJ29yZGVycyddIGFzIGNvbnN0LFxuICBsaXN0czogKCkgPT4gWy4uLm9yZGVyS2V5cy5hbGwsICdsaXN0J10gYXMgY29uc3QsXG4gIGxpc3Q6IChmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+XG4gICAgWy4uLm9yZGVyS2V5cy5saXN0cygpLCBmaWx0ZXJzXSBhcyBjb25zdCxcbiAgZGV0YWlsczogKCkgPT4gWy4uLm9yZGVyS2V5cy5hbGwsICdkZXRhaWwnXSBhcyBjb25zdCxcbiAgZGV0YWlsOiAoaWQ6IHN0cmluZykgPT4gWy4uLm9yZGVyS2V5cy5kZXRhaWxzKCksIGlkXSBhcyBjb25zdCxcbiAgbXlPcmRlcnM6ICgpID0+IFsuLi5vcmRlcktleXMuYWxsLCAnbXknXSBhcyBjb25zdCxcbiAgc3BvdE9yZGVyczogKHNwb3RJZDogc3RyaW5nKSA9PiBbLi4ub3JkZXJLZXlzLmFsbCwgJ3Nwb3QnLCBzcG90SWRdIGFzIGNvbnN0LFxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyV2l0aERldGFpbHMgZXh0ZW5kcyBPcmRlciB7XG4gIGl0ZW1zOiAoT3JkZXJJdGVtICYge1xuICAgIHByb2R1Y3Q6IFBpY2s8UHJvZHVjdCwgJ2lkJyB8ICduYW1lJyB8ICdzbHVnJyB8ICd0eXBlJyB8ICdpbWFnZVVybCc+XG4gIH0pW11cbiAgc3BvdDogUGljazxTcG90LCAnaWQnIHwgJ25hbWUnIHwgJ3NsdWcnPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyRmlsdGVycyB7XG4gIHN0YXR1cz86IE9yZGVyU3RhdHVzXG4gIGxpbWl0PzogbnVtYmVyXG4gIHBhZ2U/OiBudW1iZXJcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBHZXQgY3VycmVudCB1c2VyJ3Mgb3JkZXJzIChwdXJjaGFzZXMpXG4gKlxuICogQGVuZHBvaW50IEdFVCAvdXNlcnMvbWUvb3JkZXJzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VNeU9yZGVycyhcbiAgcGFyYW1zPzogT3JkZXJGaWx0ZXJzLFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VRdWVyeU9wdGlvbnM8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+LFxuICAgICdxdWVyeUtleScgfCAncXVlcnlGbidcbiAgPixcbik6IFVzZVF1ZXJ5UmVzdWx0PFBhZ2luYXRlZFJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PiB7XG4gIHJldHVybiB1c2VRdWVyeSh7XG4gICAgcXVlcnlLZXk6IG9yZGVyS2V5cy5saXN0KHsuLi5wYXJhbXMsIG15OiB0cnVlfSksXG4gICAgcXVlcnlGbjogYXN5bmMgKCk6IFByb21pc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpXG4gICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuICAgICAgaWYgKHBhcmFtcz8uc3RhdHVzKSBxdWVyeVBhcmFtcy5zZXQoJ3N0YXR1cycsIHBhcmFtcy5zdGF0dXMpXG4gICAgICBpZiAocGFyYW1zPy5saW1pdCkgcXVlcnlQYXJhbXMuc2V0KCdsaW1pdCcsIFN0cmluZyhwYXJhbXMubGltaXQpKVxuICAgICAgaWYgKHBhcmFtcz8ucGFnZSkgcXVlcnlQYXJhbXMuc2V0KCdwYWdlJywgU3RyaW5nKHBhcmFtcy5wYWdlKSlcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxcbiAgICAgICAgQXBpUmVzcG9uc2U8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+XG4gICAgICA+KGAvdXNlcnMvbWUvb3JkZXJzPyR7cXVlcnlQYXJhbXN9YClcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLmRhdGFcbiAgICB9LFxuICAgIC4uLm9wdGlvbnMsXG4gIH0pXG59XG5cbi8qKlxuICogR2V0IGEgc2luZ2xlIG9yZGVyIGJ5IElEXG4gKlxuICogQGVuZHBvaW50IEdFVCAvb3JkZXJzL3tvcmRlcklkfVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlT3JkZXIoXG4gIG9yZGVySWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IE9taXQ8VXNlUXVlcnlPcHRpb25zPE9yZGVyV2l0aERldGFpbHM+LCAncXVlcnlLZXknIHwgJ3F1ZXJ5Rm4nPixcbik6IFVzZVF1ZXJ5UmVzdWx0PE9yZGVyV2l0aERldGFpbHM+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogb3JkZXJLZXlzLmRldGFpbChvcmRlcklkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxPcmRlcldpdGhEZXRhaWxzPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PEFwaVJlc3BvbnNlPE9yZGVyV2l0aERldGFpbHM+PihcbiAgICAgICAgYC9vcmRlcnMvJHtvcmRlcklkfWAsXG4gICAgICApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBlbmFibGVkOiAhIW9yZGVySWQsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSlcbn1cblxuLyoqXG4gKiBHZXQgb3JkZXJzIGZvciBhIHNwb3QgKHNlbGxlciB2aWV3KVxuICpcbiAqIEBlbmRwb2ludCBHRVQgL3NlbGxlci9zcG90cy97c3BvdElkfS9vcmRlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNwb3RPcmRlcnMoXG4gIHNwb3RJZDogc3RyaW5nLFxuICBwYXJhbXM/OiBPcmRlckZpbHRlcnMsXG4gIG9wdGlvbnM/OiBPbWl0PFxuICAgIFVzZVF1ZXJ5T3B0aW9uczxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4sXG4gICAgJ3F1ZXJ5S2V5JyB8ICdxdWVyeUZuJ1xuICA+LFxuKTogVXNlUXVlcnlSZXN1bHQ8UGFnaW5hdGVkUmVzcG9uc2U8T3JkZXJXaXRoRGV0YWlscz4+IHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogb3JkZXJLZXlzLnNwb3RPcmRlcnMoc3BvdElkKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKTogUHJvbWlzZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj4gPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KClcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgICBpZiAocGFyYW1zPy5zdGF0dXMpIHF1ZXJ5UGFyYW1zLnNldCgnc3RhdHVzJywgcGFyYW1zLnN0YXR1cylcbiAgICAgIGlmIChwYXJhbXM/LmxpbWl0KSBxdWVyeVBhcmFtcy5zZXQoJ2xpbWl0JywgU3RyaW5nKHBhcmFtcy5saW1pdCkpXG4gICAgICBpZiAocGFyYW1zPy5wYWdlKSBxdWVyeVBhcmFtcy5zZXQoJ3BhZ2UnLCBTdHJpbmcocGFyYW1zLnBhZ2UpKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFxuICAgICAgICBBcGlSZXNwb25zZTxQYWdpbmF0ZWRSZXNwb25zZTxPcmRlcldpdGhEZXRhaWxzPj5cbiAgICAgID4oYC9zZWxsZXIvc3BvdHMvJHtzcG90SWR9L29yZGVycz8ke3F1ZXJ5UGFyYW1zfWApXG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgfSxcbiAgICBlbmFibGVkOiAhIXNwb3RJZCxcbiAgICAuLi5vcHRpb25zLFxuICB9KVxufVxuIl19
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Posts Query Hooks
|
|
3
|
-
*
|
|
4
|
-
* TanStack Query hooks for post/board operations.
|
|
5
|
-
*/
|
|
6
|
-
import { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query';
|
|
7
|
-
import { type Post, type PostResponse, type PostStatusDto, type PostUpvotesResponse } from '../types';
|
|
8
|
-
export declare const postKeys: {
|
|
9
|
-
all: readonly ["posts"];
|
|
10
|
-
lists: () => readonly ["posts", "list"];
|
|
11
|
-
list: (filters?: Record<string, unknown>) => readonly ["posts", "list", Record<string, unknown> | undefined];
|
|
12
|
-
bySpot: (spotId: string, filters?: Record<string, unknown>) => readonly ["posts", "spot", string, Record<string, unknown> | undefined];
|
|
13
|
-
details: () => readonly ["posts", "detail"];
|
|
14
|
-
detail: (id: string) => readonly ["posts", "detail", string];
|
|
15
|
-
responses: (postId: string) => readonly ["posts", "detail", string, "responses"];
|
|
16
|
-
status: (postId: string) => readonly ["posts", "detail", string, "status"];
|
|
17
|
-
upvotes: (postId: string, filters?: {
|
|
18
|
-
limit?: number;
|
|
19
|
-
offset?: number;
|
|
20
|
-
}) => readonly ["posts", "detail", string, "upvotes", {
|
|
21
|
-
limit?: number;
|
|
22
|
-
offset?: number;
|
|
23
|
-
} | undefined];
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Get posts for a spot
|
|
27
|
-
*
|
|
28
|
-
* @endpoint GET /spots/{spotId}/posts
|
|
29
|
-
*/
|
|
30
|
-
export declare function useSpotPosts(spotId: string, params?: {
|
|
31
|
-
postType?: string;
|
|
32
|
-
status?: string;
|
|
33
|
-
page?: number;
|
|
34
|
-
limit?: number;
|
|
35
|
-
}, options?: Omit<UseQueryOptions<Post[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Post[]>;
|
|
36
|
-
/**
|
|
37
|
-
* Get a single post by ID
|
|
38
|
-
*
|
|
39
|
-
* @endpoint GET /posts/{postId}
|
|
40
|
-
*/
|
|
41
|
-
export declare function usePost(postId: string, options?: Omit<UseQueryOptions<Post>, 'queryKey' | 'queryFn'>): UseQueryResult<Post>;
|
|
42
|
-
/**
|
|
43
|
-
* Get responses for a post
|
|
44
|
-
*
|
|
45
|
-
* @endpoint GET /posts/{postId}/responses
|
|
46
|
-
*/
|
|
47
|
-
export declare function usePostResponses(postId: string, options?: Omit<UseQueryOptions<PostResponse[]>, 'queryKey' | 'queryFn'>): UseQueryResult<PostResponse[]>;
|
|
48
|
-
/**
|
|
49
|
-
* Get all posts (with filters)
|
|
50
|
-
*
|
|
51
|
-
* @endpoint GET /posts
|
|
52
|
-
*/
|
|
53
|
-
export declare function usePosts(params?: {
|
|
54
|
-
postType?: string;
|
|
55
|
-
limit?: number;
|
|
56
|
-
}, options?: Omit<UseQueryOptions<Post[]>, 'queryKey' | 'queryFn'>): UseQueryResult<Post[]>;
|
|
57
|
-
/**
|
|
58
|
-
* Get user's status for a post (read/hidden/pinned)
|
|
59
|
-
*
|
|
60
|
-
* @endpoint GET /posts/{postId}/status
|
|
61
|
-
*/
|
|
62
|
-
export declare function usePostStatus(postId: string, options?: Omit<UseQueryOptions<PostStatusDto>, 'queryKey' | 'queryFn'>): UseQueryResult<PostStatusDto>;
|
|
63
|
-
/**
|
|
64
|
-
* Get upvotes for a post (list of users who upvoted)
|
|
65
|
-
*
|
|
66
|
-
* @endpoint GET /posts/{postId}/upvotes
|
|
67
|
-
*/
|
|
68
|
-
export declare function usePostUpvotes(postId: string, params?: {
|
|
69
|
-
limit?: number;
|
|
70
|
-
offset?: number;
|
|
71
|
-
}, options?: Omit<UseQueryOptions<PostUpvotesResponse>, 'queryKey' | 'queryFn'>): UseQueryResult<PostUpvotesResponse>;
|
|
72
|
-
/**
|
|
73
|
-
* Get nearby posts feed
|
|
74
|
-
*
|
|
75
|
-
* @endpoint GET /posts/feed
|
|
76
|
-
*/
|
|
77
|
-
export declare function usePostsFeed(params: {
|
|
78
|
-
lat: number;
|
|
79
|
-
lng: number;
|
|
80
|
-
radius?: number;
|
|
81
|
-
postType?: string;
|
|
82
|
-
cursor?: string;
|
|
83
|
-
limit?: number;
|
|
84
|
-
}, options?: Omit<UseQueryOptions<{
|
|
85
|
-
posts: Post[];
|
|
86
|
-
hasMore: boolean;
|
|
87
|
-
nextCursor?: string;
|
|
88
|
-
}>, 'queryKey' | 'queryFn'>): UseQueryResult<{
|
|
89
|
-
posts: Post[];
|
|
90
|
-
hasMore: boolean;
|
|
91
|
-
nextCursor?: string;
|
|
92
|
-
}>;
|