@growsober/sdk 1.0.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/README.md +276 -0
- package/dist/__tests__/e2e.test.d.ts +7 -0
- package/dist/__tests__/e2e.test.js +472 -0
- package/dist/api/client.d.ts +11 -0
- package/dist/api/client.js +61 -0
- package/dist/api/mutations/admin.d.ts +167 -0
- package/dist/api/mutations/admin.js +326 -0
- package/dist/api/mutations/ambassadors.d.ts +52 -0
- package/dist/api/mutations/ambassadors.js +148 -0
- package/dist/api/mutations/auth.d.ts +267 -0
- package/dist/api/mutations/auth.js +332 -0
- package/dist/api/mutations/bookings.d.ts +59 -0
- package/dist/api/mutations/bookings.js +143 -0
- package/dist/api/mutations/event-chat.d.ts +35 -0
- package/dist/api/mutations/event-chat.js +147 -0
- package/dist/api/mutations/events.d.ts +87 -0
- package/dist/api/mutations/events.js +205 -0
- package/dist/api/mutations/grow90.d.ts +36 -0
- package/dist/api/mutations/grow90.js +132 -0
- package/dist/api/mutations/hubs.d.ts +111 -0
- package/dist/api/mutations/hubs.js +240 -0
- package/dist/api/mutations/index.d.ts +22 -0
- package/dist/api/mutations/index.js +39 -0
- package/dist/api/mutations/jack.d.ts +61 -0
- package/dist/api/mutations/jack.js +104 -0
- package/dist/api/mutations/library.d.ts +67 -0
- package/dist/api/mutations/library.js +168 -0
- package/dist/api/mutations/map.d.ts +153 -0
- package/dist/api/mutations/map.js +181 -0
- package/dist/api/mutations/matching.d.ts +130 -0
- package/dist/api/mutations/matching.js +204 -0
- package/dist/api/mutations/notifications.d.ts +63 -0
- package/dist/api/mutations/notifications.js +106 -0
- package/dist/api/mutations/offers.d.ts +26 -0
- package/dist/api/mutations/offers.js +47 -0
- package/dist/api/mutations/subscriptions.d.ts +127 -0
- package/dist/api/mutations/subscriptions.js +140 -0
- package/dist/api/mutations/support.d.ts +165 -0
- package/dist/api/mutations/support.js +307 -0
- package/dist/api/mutations/users.d.ts +211 -0
- package/dist/api/mutations/users.js +261 -0
- package/dist/api/queries/admin.d.ts +257 -0
- package/dist/api/queries/admin.js +320 -0
- package/dist/api/queries/ambassadors.d.ts +53 -0
- package/dist/api/queries/ambassadors.js +98 -0
- package/dist/api/queries/auth.d.ts +16 -0
- package/dist/api/queries/auth.js +25 -0
- package/dist/api/queries/bookings.d.ts +91 -0
- package/dist/api/queries/bookings.js +102 -0
- package/dist/api/queries/businesses.d.ts +212 -0
- package/dist/api/queries/businesses.js +154 -0
- package/dist/api/queries/event-chat.d.ts +19 -0
- package/dist/api/queries/event-chat.js +75 -0
- package/dist/api/queries/events.d.ts +322 -0
- package/dist/api/queries/events.js +221 -0
- package/dist/api/queries/grow90.d.ts +26 -0
- package/dist/api/queries/grow90.js +85 -0
- package/dist/api/queries/hubs.d.ts +165 -0
- package/dist/api/queries/hubs.js +143 -0
- package/dist/api/queries/index.d.ts +23 -0
- package/dist/api/queries/index.js +40 -0
- package/dist/api/queries/jack.d.ts +63 -0
- package/dist/api/queries/jack.js +92 -0
- package/dist/api/queries/library.d.ts +132 -0
- package/dist/api/queries/library.js +120 -0
- package/dist/api/queries/map.d.ts +216 -0
- package/dist/api/queries/map.js +278 -0
- package/dist/api/queries/matching.d.ts +136 -0
- package/dist/api/queries/matching.js +161 -0
- package/dist/api/queries/notifications.d.ts +78 -0
- package/dist/api/queries/notifications.js +88 -0
- package/dist/api/queries/offers.d.ts +91 -0
- package/dist/api/queries/offers.js +103 -0
- package/dist/api/queries/subscriptions.d.ts +56 -0
- package/dist/api/queries/subscriptions.js +73 -0
- package/dist/api/queries/support.d.ts +106 -0
- package/dist/api/queries/support.js +202 -0
- package/dist/api/queries/users.d.ts +293 -0
- package/dist/api/queries/users.js +370 -0
- package/dist/api/types.d.ts +464 -0
- package/dist/api/types.js +9 -0
- package/dist/hooks/useAuth.d.ts +5 -0
- package/dist/hooks/useAuth.js +39 -0
- package/dist/hooks/useUser.d.ts +43 -0
- package/dist/hooks/useUser.js +44 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +67 -0
- package/package.json +62 -0
- package/src/__tests__/e2e.test.ts +502 -0
- package/src/api/client.ts +71 -0
- package/src/api/mutations/admin.ts +531 -0
- package/src/api/mutations/ambassadors.ts +185 -0
- package/src/api/mutations/auth.ts +350 -0
- package/src/api/mutations/bookings.ts +190 -0
- package/src/api/mutations/event-chat.ts +177 -0
- package/src/api/mutations/events.ts +273 -0
- package/src/api/mutations/grow90.ts +169 -0
- package/src/api/mutations/hubs.ts +385 -0
- package/src/api/mutations/index.ts +23 -0
- package/src/api/mutations/jack.ts +130 -0
- package/src/api/mutations/library.ts +212 -0
- package/src/api/mutations/map.ts +230 -0
- package/src/api/mutations/matching.ts +271 -0
- package/src/api/mutations/notifications.ts +114 -0
- package/src/api/mutations/offers.ts +73 -0
- package/src/api/mutations/subscriptions.ts +162 -0
- package/src/api/mutations/support.ts +390 -0
- package/src/api/mutations/users.ts +271 -0
- package/src/api/queries/admin.ts +480 -0
- package/src/api/queries/ambassadors.ts +139 -0
- package/src/api/queries/auth.ts +24 -0
- package/src/api/queries/bookings.ts +135 -0
- package/src/api/queries/businesses.ts +203 -0
- package/src/api/queries/event-chat.ts +78 -0
- package/src/api/queries/events.ts +272 -0
- package/src/api/queries/grow90.ts +98 -0
- package/src/api/queries/hubs.ts +211 -0
- package/src/api/queries/index.ts +24 -0
- package/src/api/queries/jack.ts +127 -0
- package/src/api/queries/library.ts +166 -0
- package/src/api/queries/map.ts +331 -0
- package/src/api/queries/matching.ts +238 -0
- package/src/api/queries/notifications.ts +103 -0
- package/src/api/queries/offers.ts +136 -0
- package/src/api/queries/subscriptions.ts +91 -0
- package/src/api/queries/support.ts +235 -0
- package/src/api/queries/users.ts +393 -0
- package/src/api/types.ts +596 -0
- package/src/index.ts +57 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUpdateChatSettings = useUpdateChatSettings;
|
|
4
|
+
exports.useJoinEventChat = useJoinEventChat;
|
|
5
|
+
exports.useLeaveEventChat = useLeaveEventChat;
|
|
6
|
+
exports.useUpdateMemberSettings = useUpdateMemberSettings;
|
|
7
|
+
exports.useMarkMessagesAsRead = useMarkMessagesAsRead;
|
|
8
|
+
exports.useSendEventChatMessage = useSendEventChatMessage;
|
|
9
|
+
exports.useUpdateEventChatMessage = useUpdateEventChatMessage;
|
|
10
|
+
exports.useDeleteEventChatMessage = useDeleteEventChatMessage;
|
|
11
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
12
|
+
const client_1 = require("../client");
|
|
13
|
+
const event_chat_1 = require("../queries/event-chat");
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// CHAT MANAGEMENT
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Update chat settings (hosts only)
|
|
19
|
+
*/
|
|
20
|
+
function useUpdateChatSettings(eventId) {
|
|
21
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
22
|
+
return (0, react_query_1.useMutation)({
|
|
23
|
+
mutationFn: async (data) => {
|
|
24
|
+
const client = (0, client_1.getApiClient)();
|
|
25
|
+
const response = await client.put(`/events/${eventId}/chat/settings`, data);
|
|
26
|
+
return response.data;
|
|
27
|
+
},
|
|
28
|
+
onSuccess: () => {
|
|
29
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.chat(eventId) });
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
// ============================================================================
|
|
34
|
+
// MEMBER MANAGEMENT
|
|
35
|
+
// ============================================================================
|
|
36
|
+
/**
|
|
37
|
+
* Join event chat
|
|
38
|
+
*/
|
|
39
|
+
function useJoinEventChat(eventId) {
|
|
40
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
41
|
+
return (0, react_query_1.useMutation)({
|
|
42
|
+
mutationFn: async () => {
|
|
43
|
+
const client = (0, client_1.getApiClient)();
|
|
44
|
+
const response = await client.post(`/events/${eventId}/chat/join`);
|
|
45
|
+
return response.data;
|
|
46
|
+
},
|
|
47
|
+
onSuccess: () => {
|
|
48
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.chat(eventId) });
|
|
49
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.members(eventId) });
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Leave event chat
|
|
55
|
+
*/
|
|
56
|
+
function useLeaveEventChat(eventId) {
|
|
57
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
58
|
+
return (0, react_query_1.useMutation)({
|
|
59
|
+
mutationFn: async () => {
|
|
60
|
+
const client = (0, client_1.getApiClient)();
|
|
61
|
+
await client.post(`/events/${eventId}/chat/leave`);
|
|
62
|
+
},
|
|
63
|
+
onSuccess: () => {
|
|
64
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.chat(eventId) });
|
|
65
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.members(eventId) });
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Update member settings (mute, nickname)
|
|
71
|
+
*/
|
|
72
|
+
function useUpdateMemberSettings(eventId) {
|
|
73
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
74
|
+
return (0, react_query_1.useMutation)({
|
|
75
|
+
mutationFn: async (data) => {
|
|
76
|
+
const client = (0, client_1.getApiClient)();
|
|
77
|
+
const response = await client.put(`/events/${eventId}/chat/settings/me`, data);
|
|
78
|
+
return response.data;
|
|
79
|
+
},
|
|
80
|
+
onSuccess: () => {
|
|
81
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.members(eventId) });
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Mark messages as read
|
|
87
|
+
*/
|
|
88
|
+
function useMarkMessagesAsRead(eventId) {
|
|
89
|
+
return (0, react_query_1.useMutation)({
|
|
90
|
+
mutationFn: async () => {
|
|
91
|
+
const client = (0, client_1.getApiClient)();
|
|
92
|
+
await client.post(`/events/${eventId}/chat/read`);
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
// ============================================================================
|
|
97
|
+
// MESSAGES
|
|
98
|
+
// ============================================================================
|
|
99
|
+
/**
|
|
100
|
+
* Send a message
|
|
101
|
+
*/
|
|
102
|
+
function useSendEventChatMessage(eventId) {
|
|
103
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
104
|
+
return (0, react_query_1.useMutation)({
|
|
105
|
+
mutationFn: async (data) => {
|
|
106
|
+
const client = (0, client_1.getApiClient)();
|
|
107
|
+
const response = await client.post(`/events/${eventId}/chat/messages`, data);
|
|
108
|
+
return response.data;
|
|
109
|
+
},
|
|
110
|
+
onSuccess: () => {
|
|
111
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.messages(eventId) });
|
|
112
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.chat(eventId) });
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Update a message
|
|
118
|
+
*/
|
|
119
|
+
function useUpdateEventChatMessage(eventId) {
|
|
120
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
121
|
+
return (0, react_query_1.useMutation)({
|
|
122
|
+
mutationFn: async ({ messageId, content }) => {
|
|
123
|
+
const client = (0, client_1.getApiClient)();
|
|
124
|
+
const response = await client.put(`/events/${eventId}/chat/messages/${messageId}`, { content });
|
|
125
|
+
return response.data;
|
|
126
|
+
},
|
|
127
|
+
onSuccess: () => {
|
|
128
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.messages(eventId) });
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Delete a message
|
|
134
|
+
*/
|
|
135
|
+
function useDeleteEventChatMessage(eventId) {
|
|
136
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
137
|
+
return (0, react_query_1.useMutation)({
|
|
138
|
+
mutationFn: async (messageId) => {
|
|
139
|
+
const client = (0, client_1.getApiClient)();
|
|
140
|
+
await client.delete(`/events/${eventId}/chat/messages/${messageId}`);
|
|
141
|
+
},
|
|
142
|
+
onSuccess: () => {
|
|
143
|
+
queryClient.invalidateQueries({ queryKey: event_chat_1.eventChatKeys.messages(eventId) });
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtY2hhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvbXV0YXRpb25zL2V2ZW50LWNoYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFvQkEsc0RBZ0JDO0FBU0QsNENBZ0JDO0FBS0QsOENBYUM7QUFLRCwwREFnQkM7QUFLRCxzREFPQztBQVNELDBEQWlCQztBQUtELDhEQWdCQztBQUtELDhEQVlDO0FBaExELHVEQUFvRTtBQUNwRSxzQ0FBeUM7QUFDekMsc0RBQXNEO0FBV3RELCtFQUErRTtBQUMvRSxrQkFBa0I7QUFDbEIsK0VBQStFO0FBRS9FOztHQUVHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsT0FBZTtJQUNuRCxNQUFNLFdBQVcsR0FBRyxJQUFBLDRCQUFjLEdBQUUsQ0FBQztJQUVyQyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxFQUFFLElBQStCLEVBQUUsRUFBRTtZQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFZLEdBQUUsQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQy9CLFdBQVcsT0FBTyxnQkFBZ0IsRUFDbEMsSUFBSSxDQUNMLENBQUM7WUFDRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDZCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsMEJBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsK0VBQStFO0FBQy9FLG9CQUFvQjtBQUNwQiwrRUFBK0U7QUFFL0U7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFlO0lBQzlDLE1BQU0sV0FBVyxHQUFHLElBQUEsNEJBQWMsR0FBRSxDQUFDO0lBRXJDLE9B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QztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLE9BQWU7SUFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFpQixFQUFFLEVBQUU7WUFDdEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBWSxHQUFFLENBQUM7WUFDOUIsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsT0FBTyxrQkFBa0IsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNkLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSwwQkFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNdXRhdGlvbiwgdXNlUXVlcnlDbGllbnQgfSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IGV2ZW50Q2hhdEtleXMgfSBmcm9tICcuLi9xdWVyaWVzL2V2ZW50LWNoYXQnO1xuaW1wb3J0IHR5cGUge1xuICBDaGF0TWVtYmVyUmVzcG9uc2UsXG4gIE1lc3NhZ2VSZXNwb25zZSxcbiAgRXZlbnRDaGF0UmVzcG9uc2UsXG4gIFNlbmRNZXNzYWdlUmVxdWVzdCxcbiAgVXBkYXRlTWVzc2FnZVJlcXVlc3QsXG4gIFVwZGF0ZUNoYXRTZXR0aW5nc1JlcXVlc3QsXG4gIFVwZGF0ZU1lbWJlclNldHRpbmdzUmVxdWVzdCxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDSEFUIE1BTkFHRU1FTlRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBVcGRhdGUgY2hhdCBzZXR0aW5ncyAoaG9zdHMgb25seSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUNoYXRTZXR0aW5ncyhldmVudElkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGRhdGE6IFVwZGF0ZUNoYXRTZXR0aW5nc1JlcXVlc3QpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0PEV2ZW50Q2hhdFJlc3BvbnNlPihcbiAgICAgICAgYC9ldmVudHMvJHtldmVudElkfS9jaGF0L3NldHRpbmdzYCxcbiAgICAgICAgZGF0YVxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAoKSA9PiB7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudENoYXRLZXlzLmNoYXQoZXZlbnRJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1FTUJFUiBNQU5BR0VNRU5UXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogSm9pbiBldmVudCBjaGF0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VKb2luRXZlbnRDaGF0KGV2ZW50SWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8Q2hhdE1lbWJlclJlc3BvbnNlPihcbiAgICAgICAgYC9ldmVudHMvJHtldmVudElkfS9jaGF0L2pvaW5gXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50Q2hhdEtleXMuY2hhdChldmVudElkKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50Q2hhdEtleXMubWVtYmVycyhldmVudElkKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBMZWF2ZSBldmVudCBjaGF0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VMZWF2ZUV2ZW50Q2hhdChldmVudElkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY2xpZW50ID0gZ2V0QXBpQ2xpZW50KCk7XG4gICAgICBhd2FpdCBjbGllbnQucG9zdChgL2V2ZW50cy8ke2V2ZW50SWR9L2NoYXQvbGVhdmVgKTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRDaGF0S2V5cy5jaGF0KGV2ZW50SWQpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRDaGF0S2V5cy5tZW1iZXJzKGV2ZW50SWQpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBtZW1iZXIgc2V0dGluZ3MgKG11dGUsIG5pY2tuYW1lKVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlTWVtYmVyU2V0dGluZ3MoZXZlbnRJZDogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBVcGRhdGVNZW1iZXJTZXR0aW5nc1JlcXVlc3QpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0PENoYXRNZW1iZXJSZXNwb25zZT4oXG4gICAgICAgIGAvZXZlbnRzLyR7ZXZlbnRJZH0vY2hhdC9zZXR0aW5ncy9tZWAsXG4gICAgICAgIGRhdGFcbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRDaGF0S2V5cy5tZW1iZXJzKGV2ZW50SWQpIH0pO1xuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIE1hcmsgbWVzc2FnZXMgYXMgcmVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlTWFya01lc3NhZ2VzQXNSZWFkKGV2ZW50SWQ6IHN0cmluZykge1xuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LnBvc3QoYC9ldmVudHMvJHtldmVudElkfS9jaGF0L3JlYWRgKTtcbiAgICB9LFxuICB9KTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTUVTU0FHRVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBTZW5kIGEgbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VuZEV2ZW50Q2hhdE1lc3NhZ2UoZXZlbnRJZDogc3RyaW5nKSB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBTZW5kTWVzc2FnZVJlcXVlc3QpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDxNZXNzYWdlUmVzcG9uc2U+KFxuICAgICAgICBgL2V2ZW50cy8ke2V2ZW50SWR9L2NoYXQvbWVzc2FnZXNgLFxuICAgICAgICBkYXRhXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50Q2hhdEtleXMubWVzc2FnZXMoZXZlbnRJZCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudENoYXRLZXlzLmNoYXQoZXZlbnRJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogVXBkYXRlIGEgbWVzc2FnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlVXBkYXRlRXZlbnRDaGF0TWVzc2FnZShldmVudElkOiBzdHJpbmcpIHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHsgbWVzc2FnZUlkLCBjb250ZW50IH06IHsgbWVzc2FnZUlkOiBzdHJpbmcgfSAmIFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0KSA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnB1dDxNZXNzYWdlUmVzcG9uc2U+KFxuICAgICAgICBgL2V2ZW50cy8ke2V2ZW50SWR9L2NoYXQvbWVzc2FnZXMvJHttZXNzYWdlSWR9YCxcbiAgICAgICAgeyBjb250ZW50IH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRDaGF0S2V5cy5tZXNzYWdlcyhldmVudElkKSB9KTtcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBEZWxldGUgYSBtZXNzYWdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWxldGVFdmVudENoYXRNZXNzYWdlKGV2ZW50SWQ6IHN0cmluZykge1xuICBjb25zdCBxdWVyeUNsaWVudCA9IHVzZVF1ZXJ5Q2xpZW50KCk7XG5cbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAobWVzc2FnZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgL2V2ZW50cy8ke2V2ZW50SWR9L2NoYXQvbWVzc2FnZXMvJHttZXNzYWdlSWR9YCk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50Q2hhdEtleXMubWVzc2FnZXMoZXZlbnRJZCkgfSk7XG4gICAgfSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import type { EventResponse, CreateEventRequest, UpdateEventRequest } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Create a new event
|
|
5
|
+
*
|
|
6
|
+
* @param options - TanStack Query mutation options
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* const { mutate, isPending } = useCreateEvent();
|
|
11
|
+
*
|
|
12
|
+
* mutate({
|
|
13
|
+
* title: 'Yoga in the Park',
|
|
14
|
+
* description: 'Join us for morning yoga',
|
|
15
|
+
* startDate: new Date('2025-01-15T10:00:00Z'),
|
|
16
|
+
* // ... other fields
|
|
17
|
+
* });
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function useCreateEvent(options?: Omit<UseMutationOptions<EventResponse, Error, CreateEventRequest>, 'mutationFn'>): UseMutationResult<EventResponse, Error, CreateEventRequest>;
|
|
21
|
+
/**
|
|
22
|
+
* Update an existing event
|
|
23
|
+
*
|
|
24
|
+
* @param options - TanStack Query mutation options
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* const { mutate, isPending } = useUpdateEvent();
|
|
29
|
+
*
|
|
30
|
+
* mutate({
|
|
31
|
+
* id: 'event-123',
|
|
32
|
+
* data: {
|
|
33
|
+
* title: 'Updated Event Title',
|
|
34
|
+
* isFeatured: true,
|
|
35
|
+
* }
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare function useUpdateEvent(options?: Omit<UseMutationOptions<EventResponse, Error, {
|
|
40
|
+
id: string;
|
|
41
|
+
data: UpdateEventRequest;
|
|
42
|
+
}>, 'mutationFn'>): UseMutationResult<EventResponse, Error, {
|
|
43
|
+
id: string;
|
|
44
|
+
data: UpdateEventRequest;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Delete an event
|
|
48
|
+
*
|
|
49
|
+
* @param options - TanStack Query mutation options
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* const { mutate, isPending } = useDeleteEvent();
|
|
54
|
+
*
|
|
55
|
+
* mutate('event-123');
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function useDeleteEvent(options?: Omit<UseMutationOptions<void, Error, string>, 'mutationFn'>): UseMutationResult<void, Error, string>;
|
|
59
|
+
/**
|
|
60
|
+
* Cancel an event
|
|
61
|
+
*
|
|
62
|
+
* @param options - TanStack Query mutation options
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```tsx
|
|
66
|
+
* const { mutate, isPending } = useCancelEvent();
|
|
67
|
+
*
|
|
68
|
+
* mutate('event-123');
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function useCancelEvent(options?: Omit<UseMutationOptions<EventResponse, Error, string>, 'mutationFn'>): UseMutationResult<EventResponse, Error, string>;
|
|
72
|
+
/**
|
|
73
|
+
* Publish an event
|
|
74
|
+
*
|
|
75
|
+
* Note: This mutation is provided for future compatibility.
|
|
76
|
+
* The API endpoint exists but may require specific permissions.
|
|
77
|
+
*
|
|
78
|
+
* @param options - TanStack Query mutation options
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```tsx
|
|
82
|
+
* const { mutate, isPending } = usePublishEvent();
|
|
83
|
+
*
|
|
84
|
+
* mutate('event-123');
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function usePublishEvent(options?: Omit<UseMutationOptions<EventResponse, Error, string>, 'mutationFn'>): UseMutationResult<EventResponse, Error, string>;
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCreateEvent = useCreateEvent;
|
|
4
|
+
exports.useUpdateEvent = useUpdateEvent;
|
|
5
|
+
exports.useDeleteEvent = useDeleteEvent;
|
|
6
|
+
exports.useCancelEvent = useCancelEvent;
|
|
7
|
+
exports.usePublishEvent = usePublishEvent;
|
|
8
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
9
|
+
const client_1 = require("../client");
|
|
10
|
+
const events_1 = require("../queries/events");
|
|
11
|
+
// ============================================================================
|
|
12
|
+
// MUTATION HOOKS
|
|
13
|
+
// ============================================================================
|
|
14
|
+
/**
|
|
15
|
+
* Create a new event
|
|
16
|
+
*
|
|
17
|
+
* @param options - TanStack Query mutation options
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* const { mutate, isPending } = useCreateEvent();
|
|
22
|
+
*
|
|
23
|
+
* mutate({
|
|
24
|
+
* title: 'Yoga in the Park',
|
|
25
|
+
* description: 'Join us for morning yoga',
|
|
26
|
+
* startDate: new Date('2025-01-15T10:00:00Z'),
|
|
27
|
+
* // ... other fields
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
function useCreateEvent(options) {
|
|
32
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
33
|
+
return (0, react_query_1.useMutation)({
|
|
34
|
+
mutationFn: async (data) => {
|
|
35
|
+
const client = (0, client_1.getApiClient)();
|
|
36
|
+
const response = await client.post('/api/v1/events', data);
|
|
37
|
+
return response.data;
|
|
38
|
+
},
|
|
39
|
+
onSuccess: (newEvent, variables, context) => {
|
|
40
|
+
// Invalidate all event lists to include the new event
|
|
41
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.lists() });
|
|
42
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.upcoming() });
|
|
43
|
+
// If the event is featured, invalidate featured events
|
|
44
|
+
if (newEvent.isFeatured) {
|
|
45
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.featured() });
|
|
46
|
+
}
|
|
47
|
+
// Call user's onSuccess if provided
|
|
48
|
+
},
|
|
49
|
+
...options,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Update an existing event
|
|
54
|
+
*
|
|
55
|
+
* @param options - TanStack Query mutation options
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* const { mutate, isPending } = useUpdateEvent();
|
|
60
|
+
*
|
|
61
|
+
* mutate({
|
|
62
|
+
* id: 'event-123',
|
|
63
|
+
* data: {
|
|
64
|
+
* title: 'Updated Event Title',
|
|
65
|
+
* isFeatured: true,
|
|
66
|
+
* }
|
|
67
|
+
* });
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
function useUpdateEvent(options) {
|
|
71
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
72
|
+
return (0, react_query_1.useMutation)({
|
|
73
|
+
mutationFn: async ({ id, data, }) => {
|
|
74
|
+
const client = (0, client_1.getApiClient)();
|
|
75
|
+
const response = await client.put(`/api/v1/events/${id}`, data);
|
|
76
|
+
return response.data;
|
|
77
|
+
},
|
|
78
|
+
onSuccess: (updatedEvent, variables, context) => {
|
|
79
|
+
// Update the specific event in cache
|
|
80
|
+
queryClient.setQueryData(events_1.eventKeys.detail(variables.id), updatedEvent);
|
|
81
|
+
// If the event has a slug, update the slug-based query too
|
|
82
|
+
if (updatedEvent.slug && typeof updatedEvent.slug === 'string') {
|
|
83
|
+
queryClient.setQueryData(events_1.eventKeys.detailBySlug(updatedEvent.slug), updatedEvent);
|
|
84
|
+
}
|
|
85
|
+
// Invalidate lists to reflect changes in ordering/filtering
|
|
86
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.lists() });
|
|
87
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.upcoming() });
|
|
88
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.featured() });
|
|
89
|
+
// Call user's onSuccess if provided
|
|
90
|
+
},
|
|
91
|
+
...options,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Delete an event
|
|
96
|
+
*
|
|
97
|
+
* @param options - TanStack Query mutation options
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```tsx
|
|
101
|
+
* const { mutate, isPending } = useDeleteEvent();
|
|
102
|
+
*
|
|
103
|
+
* mutate('event-123');
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
function useDeleteEvent(options) {
|
|
107
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
108
|
+
return (0, react_query_1.useMutation)({
|
|
109
|
+
mutationFn: async (id) => {
|
|
110
|
+
const client = (0, client_1.getApiClient)();
|
|
111
|
+
await client.delete(`/api/v1/events/${id}`);
|
|
112
|
+
},
|
|
113
|
+
onSuccess: (data, eventId, context) => {
|
|
114
|
+
// Remove the event from cache
|
|
115
|
+
queryClient.removeQueries({ queryKey: events_1.eventKeys.detail(eventId) });
|
|
116
|
+
// Invalidate all lists
|
|
117
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.lists() });
|
|
118
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.upcoming() });
|
|
119
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.featured() });
|
|
120
|
+
// Call user's onSuccess if provided
|
|
121
|
+
},
|
|
122
|
+
...options,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Cancel an event
|
|
127
|
+
*
|
|
128
|
+
* @param options - TanStack Query mutation options
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```tsx
|
|
132
|
+
* const { mutate, isPending } = useCancelEvent();
|
|
133
|
+
*
|
|
134
|
+
* mutate('event-123');
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
function useCancelEvent(options) {
|
|
138
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
139
|
+
return (0, react_query_1.useMutation)({
|
|
140
|
+
mutationFn: async (id) => {
|
|
141
|
+
const client = (0, client_1.getApiClient)();
|
|
142
|
+
const response = await client.post(`/api/v1/events/${id}/cancel`);
|
|
143
|
+
return response.data;
|
|
144
|
+
},
|
|
145
|
+
onSuccess: (cancelledEvent, eventId, context) => {
|
|
146
|
+
// Update the specific event in cache
|
|
147
|
+
queryClient.setQueryData(events_1.eventKeys.detail(eventId), cancelledEvent);
|
|
148
|
+
// If the event has a slug, update the slug-based query too
|
|
149
|
+
if (cancelledEvent.slug && typeof cancelledEvent.slug === 'string') {
|
|
150
|
+
queryClient.setQueryData(events_1.eventKeys.detailBySlug(cancelledEvent.slug), cancelledEvent);
|
|
151
|
+
}
|
|
152
|
+
// Invalidate lists to reflect the cancelled status
|
|
153
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.lists() });
|
|
154
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.upcoming() });
|
|
155
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.featured() });
|
|
156
|
+
// Invalidate bookings for this event
|
|
157
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.bookings(eventId) });
|
|
158
|
+
// Call user's onSuccess if provided
|
|
159
|
+
},
|
|
160
|
+
...options,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Publish an event
|
|
165
|
+
*
|
|
166
|
+
* Note: This mutation is provided for future compatibility.
|
|
167
|
+
* The API endpoint exists but may require specific permissions.
|
|
168
|
+
*
|
|
169
|
+
* @param options - TanStack Query mutation options
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```tsx
|
|
173
|
+
* const { mutate, isPending } = usePublishEvent();
|
|
174
|
+
*
|
|
175
|
+
* mutate('event-123');
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
function usePublishEvent(options) {
|
|
179
|
+
const queryClient = (0, react_query_1.useQueryClient)();
|
|
180
|
+
return (0, react_query_1.useMutation)({
|
|
181
|
+
mutationFn: async (id) => {
|
|
182
|
+
const client = (0, client_1.getApiClient)();
|
|
183
|
+
const response = await client.post(`/api/v1/events/${id}/publish`);
|
|
184
|
+
return response.data;
|
|
185
|
+
},
|
|
186
|
+
onSuccess: (publishedEvent, eventId, context) => {
|
|
187
|
+
// Update the specific event in cache
|
|
188
|
+
queryClient.setQueryData(events_1.eventKeys.detail(eventId), publishedEvent);
|
|
189
|
+
// If the event has a slug, update the slug-based query too
|
|
190
|
+
if (publishedEvent.slug && typeof publishedEvent.slug === 'string') {
|
|
191
|
+
queryClient.setQueryData(events_1.eventKeys.detailBySlug(publishedEvent.slug), publishedEvent);
|
|
192
|
+
}
|
|
193
|
+
// Invalidate lists to reflect the published status
|
|
194
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.lists() });
|
|
195
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.upcoming() });
|
|
196
|
+
// If the event is featured, invalidate featured events
|
|
197
|
+
if (publishedEvent.isFeatured) {
|
|
198
|
+
queryClient.invalidateQueries({ queryKey: events_1.eventKeys.featured() });
|
|
199
|
+
}
|
|
200
|
+
// Call user's onSuccess if provided
|
|
201
|
+
},
|
|
202
|
+
...options,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9tdXRhdGlvbnMvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0JBLHdDQTRCQztBQW9CRCx3Q0FnREM7QUFjRCx3Q0F1QkM7QUFjRCx3Q0FzQ0M7QUFpQkQsMENBdUNDO0FBaFJELHVEQUsrQjtBQUMvQixzQ0FBeUM7QUFFekMsOENBQThDO0FBRTlDLCtFQUErRTtBQUMvRSxpQkFBaUI7QUFDakIsK0VBQStFO0FBRS9FOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsU0FBZ0IsY0FBYyxDQUM1QixPQUdDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSw0QkFBYyxHQUFFLENBQUM7SUFFckMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUF3QixFQUEwQixFQUFFO1lBQ3JFLE1BQU0sTUFBTSxHQUFHLElBQUEscUJBQVksR0FBRSxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMzRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDMUMsc0RBQXNEO1lBQ3RELFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxrQkFBUyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFRLEVBQUUsa0JBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFbEUsdURBQXVEO1lBQ3ZELElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN4QixXQUFXLENBQUMsaUJBQWlCLENBQUMsRUFBRSxRQUFR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QUFpQixDQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxrQkFBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUVsRSx1REFBdUQ7WUFDdkQsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzlCLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxrQkFBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBRUQsb0NBQW9DO1FBQ3RDLENBQUM7UUFDRCxHQUFHLE9BQU87S0FDWCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdXNlTXV0YXRpb24sXG4gIHVzZVF1ZXJ5Q2xpZW50LFxuICBVc2VNdXRhdGlvbk9wdGlvbnMsXG4gIFVzZU11dGF0aW9uUmVzdWx0LFxufSBmcm9tICdAdGFuc3RhY2svcmVhY3QtcXVlcnknO1xuaW1wb3J0IHsgZ2V0QXBpQ2xpZW50IH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB0eXBlIHsgRXZlbnRSZXNwb25zZSwgQ3JlYXRlRXZlbnRSZXF1ZXN0LCBVcGRhdGVFdmVudFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBldmVudEtleXMgfSBmcm9tICcuLi9xdWVyaWVzL2V2ZW50cyc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIE1VVEFUSU9OIEhPT0tTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IGV2ZW50XG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBtdXRhdGlvbiBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGUsIGlzUGVuZGluZyB9ID0gdXNlQ3JlYXRlRXZlbnQoKTtcbiAqXG4gKiBtdXRhdGUoe1xuICogICB0aXRsZTogJ1lvZ2EgaW4gdGhlIFBhcmsnLFxuICogICBkZXNjcmlwdGlvbjogJ0pvaW4gdXMgZm9yIG1vcm5pbmcgeW9nYScsXG4gKiAgIHN0YXJ0RGF0ZTogbmV3IERhdGUoJzIwMjUtMDEtMTVUMTA6MDA6MDBaJyksXG4gKiAgIC8vIC4uLiBvdGhlciBmaWVsZHNcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VDcmVhdGVFdmVudChcbiAgb3B0aW9ucz86IE9taXQ8XG4gICAgVXNlTXV0YXRpb25PcHRpb25zPEV2ZW50UmVzcG9uc2UsIEVycm9yLCBDcmVhdGVFdmVudFJlcXVlc3Q+LFxuICAgICdtdXRhdGlvbkZuJ1xuICA+XG4pOiBVc2VNdXRhdGlvblJlc3VsdDxFdmVudFJlc3BvbnNlLCBFcnJvciwgQ3JlYXRlRXZlbnRSZXF1ZXN0PiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChkYXRhOiBDcmVhdGVFdmVudFJlcXVlc3QpOiBQcm9taXNlPEV2ZW50UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdCgnL2FwaS92MS9ldmVudHMnLCBkYXRhKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAobmV3RXZlbnQsIHZhcmlhYmxlcywgY29udGV4dCkgPT4ge1xuICAgICAgLy8gSW52YWxpZGF0ZSBhbGwgZXZlbnQgbGlzdHMgdG8gaW5jbHVkZSB0aGUgbmV3IGV2ZW50XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMubGlzdHMoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50S2V5cy51cGNvbWluZygpIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgZXZlbnQgaXMgZmVhdHVyZWQsIGludmFsaWRhdGUgZmVhdHVyZWQgZXZlbnRzXG4gICAgICBpZiAobmV3RXZlbnQuaXNGZWF0dXJlZCkge1xuICAgICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMuZmVhdHVyZWQoKSB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2FsbCB1c2VyJ3Mgb25TdWNjZXNzIGlmIHByb3ZpZGVkXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBVcGRhdGUgYW4gZXhpc3RpbmcgZXZlbnRcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG11dGF0aW9uIG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZSwgaXNQZW5kaW5nIH0gPSB1c2VVcGRhdGVFdmVudCgpO1xuICpcbiAqIG11dGF0ZSh7XG4gKiAgIGlkOiAnZXZlbnQtMTIzJyxcbiAqICAgZGF0YToge1xuICogICAgIHRpdGxlOiAnVXBkYXRlZCBFdmVudCBUaXRsZScsXG4gKiAgICAgaXNGZWF0dXJlZDogdHJ1ZSxcbiAqICAgfVxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVVwZGF0ZUV2ZW50KFxuICBvcHRpb25zPzogT21pdDxcbiAgICBVc2VNdXRhdGlvbk9wdGlvbnM8XG4gICAgICBFdmVudFJlc3BvbnNlLFxuICAgICAgRXJyb3IsXG4gICAgICB7IGlkOiBzdHJpbmc7IGRhdGE6IFVwZGF0ZUV2ZW50UmVxdWVzdCB9XG4gICAgPixcbiAgICAnbXV0YXRpb25GbidcbiAgPlxuKTogVXNlTXV0YXRpb25SZXN1bHQ8RXZlbnRSZXNwb25zZSwgRXJyb3IsIHsgaWQ6IHN0cmluZzsgZGF0YTogVXBkYXRlRXZlbnRSZXF1ZXN0IH0+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKHtcbiAgICAgIGlkLFxuICAgICAgZGF0YSxcbiAgICB9OiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAgZGF0YTogVXBkYXRlRXZlbnRSZXF1ZXN0O1xuICAgIH0pOiBQcm9taXNlPEV2ZW50UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucHV0KGAvYXBpL3YxL2V2ZW50cy8ke2lkfWAsIGRhdGEpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6ICh1cGRhdGVkRXZlbnQsIHZhcmlhYmxlcywgY29udGV4dCkgPT4ge1xuICAgICAgLy8gVXBkYXRlIHRoZSBzcGVjaWZpYyBldmVudCBpbiBjYWNoZVxuICAgICAgcXVlcnlDbGllbnQuc2V0UXVlcnlEYXRhKFxuICAgICAgICBldmVudEtleXMuZGV0YWlsKHZhcmlhYmxlcy5pZCksXG4gICAgICAgIHVwZGF0ZWRFdmVudFxuICAgICAgKTtcblxuICAgICAgLy8gSWYgdGhlIGV2ZW50IGhhcyBhIHNsdWcsIHVwZGF0ZSB0aGUgc2x1Zy1iYXNlZCBxdWVyeSB0b29cbiAgICAgIGlmICh1cGRhdGVkRXZlbnQuc2x1ZyAmJiB0eXBlb2YgdXBkYXRlZEV2ZW50LnNsdWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHF1ZXJ5Q2xpZW50LnNldFF1ZXJ5RGF0YShcbiAgICAgICAgICBldmVudEtleXMuZGV0YWlsQnlTbHVnKHVwZGF0ZWRFdmVudC5zbHVnKSxcbiAgICAgICAgICB1cGRhdGVkRXZlbnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSW52YWxpZGF0ZSBsaXN0cyB0byByZWZsZWN0IGNoYW5nZXMgaW4gb3JkZXJpbmcvZmlsdGVyaW5nXG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMubGlzdHMoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50S2V5cy51cGNvbWluZygpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRLZXlzLmZlYXR1cmVkKCkgfSk7XG5cbiAgICAgIC8vIENhbGwgdXNlcidzIG9uU3VjY2VzcyBpZiBwcm92aWRlZFxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogRGVsZXRlIGFuIGV2ZW50XG4gKlxuICogQHBhcmFtIG9wdGlvbnMgLSBUYW5TdGFjayBRdWVyeSBtdXRhdGlvbiBvcHRpb25zXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzeFxuICogY29uc3QgeyBtdXRhdGUsIGlzUGVuZGluZyB9ID0gdXNlRGVsZXRlRXZlbnQoKTtcbiAqXG4gKiBtdXRhdGUoJ2V2ZW50LTEyMycpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEZWxldGVFdmVudChcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPHZvaWQsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+XG4pOiBVc2VNdXRhdGlvblJlc3VsdDx2b2lkLCBFcnJvciwgc3RyaW5nPiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGF3YWl0IGNsaWVudC5kZWxldGUoYC9hcGkvdjEvZXZlbnRzLyR7aWR9YCk7XG4gICAgfSxcbiAgICBvblN1Y2Nlc3M6IChkYXRhLCBldmVudElkLCBjb250ZXh0KSA9PiB7XG4gICAgICAvLyBSZW1vdmUgdGhlIGV2ZW50IGZyb20gY2FjaGVcbiAgICAgIHF1ZXJ5Q2xpZW50LnJlbW92ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRLZXlzLmRldGFpbChldmVudElkKSB9KTtcblxuICAgICAgLy8gSW52YWxpZGF0ZSBhbGwgbGlzdHNcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50S2V5cy5saXN0cygpIH0pO1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRLZXlzLnVwY29taW5nKCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMuZmVhdHVyZWQoKSB9KTtcblxuICAgICAgLy8gQ2FsbCB1c2VyJ3Mgb25TdWNjZXNzIGlmIHByb3ZpZGVkXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cblxuLyoqXG4gKiBDYW5jZWwgYW4gZXZlbnRcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRhblN0YWNrIFF1ZXJ5IG11dGF0aW9uIG9wdGlvbnNcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiBjb25zdCB7IG11dGF0ZSwgaXNQZW5kaW5nIH0gPSB1c2VDYW5jZWxFdmVudCgpO1xuICpcbiAqIG11dGF0ZSgnZXZlbnQtMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNhbmNlbEV2ZW50KFxuICBvcHRpb25zPzogT21pdDxVc2VNdXRhdGlvbk9wdGlvbnM8RXZlbnRSZXNwb25zZSwgRXJyb3IsIHN0cmluZz4sICdtdXRhdGlvbkZuJz5cbik6IFVzZU11dGF0aW9uUmVzdWx0PEV2ZW50UmVzcG9uc2UsIEVycm9yLCBzdHJpbmc+IHtcbiAgY29uc3QgcXVlcnlDbGllbnQgPSB1c2VRdWVyeUNsaWVudCgpO1xuXG4gIHJldHVybiB1c2VNdXRhdGlvbih7XG4gICAgbXV0YXRpb25GbjogYXN5bmMgKGlkOiBzdHJpbmcpOiBQcm9taXNlPEV2ZW50UmVzcG9uc2U+ID0+IHtcbiAgICAgIGNvbnN0IGNsaWVudCA9IGdldEFwaUNsaWVudCgpO1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdChgL2FwaS92MS9ldmVudHMvJHtpZH0vY2FuY2VsYCk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIG9uU3VjY2VzczogKGNhbmNlbGxlZEV2ZW50LCBldmVudElkLCBjb250ZXh0KSA9PiB7XG4gICAgICAvLyBVcGRhdGUgdGhlIHNwZWNpZmljIGV2ZW50IGluIGNhY2hlXG4gICAgICBxdWVyeUNsaWVudC5zZXRRdWVyeURhdGEoXG4gICAgICAgIGV2ZW50S2V5cy5kZXRhaWwoZXZlbnRJZCksXG4gICAgICAgIGNhbmNlbGxlZEV2ZW50XG4gICAgICApO1xuXG4gICAgICAvLyBJZiB0aGUgZXZlbnQgaGFzIGEgc2x1ZywgdXBkYXRlIHRoZSBzbHVnLWJhc2VkIHF1ZXJ5IHRvb1xuICAgICAgaWYgKGNhbmNlbGxlZEV2ZW50LnNsdWcgJiYgdHlwZW9mIGNhbmNlbGxlZEV2ZW50LnNsdWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHF1ZXJ5Q2xpZW50LnNldFF1ZXJ5RGF0YShcbiAgICAgICAgICBldmVudEtleXMuZGV0YWlsQnlTbHVnKGNhbmNlbGxlZEV2ZW50LnNsdWcpLFxuICAgICAgICAgIGNhbmNlbGxlZEV2ZW50XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEludmFsaWRhdGUgbGlzdHMgdG8gcmVmbGVjdCB0aGUgY2FuY2VsbGVkIHN0YXR1c1xuICAgICAgcXVlcnlDbGllbnQuaW52YWxpZGF0ZVF1ZXJpZXMoeyBxdWVyeUtleTogZXZlbnRLZXlzLmxpc3RzKCkgfSk7XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMudXBjb21pbmcoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50S2V5cy5mZWF0dXJlZCgpIH0pO1xuXG4gICAgICAvLyBJbnZhbGlkYXRlIGJvb2tpbmdzIGZvciB0aGlzIGV2ZW50XG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMuYm9va2luZ3MoZXZlbnRJZCkgfSk7XG5cbiAgICAgIC8vIENhbGwgdXNlcidzIG9uU3VjY2VzcyBpZiBwcm92aWRlZFxuICAgIH0sXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG59XG5cbi8qKlxuICogUHVibGlzaCBhbiBldmVudFxuICpcbiAqIE5vdGU6IFRoaXMgbXV0YXRpb24gaXMgcHJvdmlkZWQgZm9yIGZ1dHVyZSBjb21wYXRpYmlsaXR5LlxuICogVGhlIEFQSSBlbmRwb2ludCBleGlzdHMgYnV0IG1heSByZXF1aXJlIHNwZWNpZmljIHBlcm1pc3Npb25zLlxuICpcbiAqIEBwYXJhbSBvcHRpb25zIC0gVGFuU3RhY2sgUXVlcnkgbXV0YXRpb24gb3B0aW9uc1xuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIGNvbnN0IHsgbXV0YXRlLCBpc1BlbmRpbmcgfSA9IHVzZVB1Ymxpc2hFdmVudCgpO1xuICpcbiAqIG11dGF0ZSgnZXZlbnQtMTIzJyk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVB1Ymxpc2hFdmVudChcbiAgb3B0aW9ucz86IE9taXQ8VXNlTXV0YXRpb25PcHRpb25zPEV2ZW50UmVzcG9uc2UsIEVycm9yLCBzdHJpbmc+LCAnbXV0YXRpb25Gbic+XG4pOiBVc2VNdXRhdGlvblJlc3VsdDxFdmVudFJlc3BvbnNlLCBFcnJvciwgc3RyaW5nPiB7XG4gIGNvbnN0IHF1ZXJ5Q2xpZW50ID0gdXNlUXVlcnlDbGllbnQoKTtcblxuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jIChpZDogc3RyaW5nKTogUHJvbWlzZTxFdmVudFJlc3BvbnNlPiA9PiB7XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXRBcGlDbGllbnQoKTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoYC9hcGkvdjEvZXZlbnRzLyR7aWR9L3B1Ymxpc2hgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gICAgb25TdWNjZXNzOiAocHVibGlzaGVkRXZlbnQsIGV2ZW50SWQsIGNvbnRleHQpID0+IHtcbiAgICAgIC8vIFVwZGF0ZSB0aGUgc3BlY2lmaWMgZXZlbnQgaW4gY2FjaGVcbiAgICAgIHF1ZXJ5Q2xpZW50LnNldFF1ZXJ5RGF0YShcbiAgICAgICAgZXZlbnRLZXlzLmRldGFpbChldmVudElkKSxcbiAgICAgICAgcHVibGlzaGVkRXZlbnRcbiAgICAgICk7XG5cbiAgICAgIC8vIElmIHRoZSBldmVudCBoYXMgYSBzbHVnLCB1cGRhdGUgdGhlIHNsdWctYmFzZWQgcXVlcnkgdG9vXG4gICAgICBpZiAocHVibGlzaGVkRXZlbnQuc2x1ZyAmJiB0eXBlb2YgcHVibGlzaGVkRXZlbnQuc2x1ZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcXVlcnlDbGllbnQuc2V0UXVlcnlEYXRhKFxuICAgICAgICAgIGV2ZW50S2V5cy5kZXRhaWxCeVNsdWcocHVibGlzaGVkRXZlbnQuc2x1ZyksXG4gICAgICAgICAgcHVibGlzaGVkRXZlbnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSW52YWxpZGF0ZSBsaXN0cyB0byByZWZsZWN0IHRoZSBwdWJsaXNoZWQgc3RhdHVzXG4gICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMubGlzdHMoKSB9KTtcbiAgICAgIHF1ZXJ5Q2xpZW50LmludmFsaWRhdGVRdWVyaWVzKHsgcXVlcnlLZXk6IGV2ZW50S2V5cy51cGNvbWluZygpIH0pO1xuXG4gICAgICAvLyBJZiB0aGUgZXZlbnQgaXMgZmVhdHVyZWQsIGludmFsaWRhdGUgZmVhdHVyZWQgZXZlbnRzXG4gICAgICBpZiAocHVibGlzaGVkRXZlbnQuaXNGZWF0dXJlZCkge1xuICAgICAgICBxdWVyeUNsaWVudC5pbnZhbGlkYXRlUXVlcmllcyh7IHF1ZXJ5S2V5OiBldmVudEtleXMuZmVhdHVyZWQoKSB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2FsbCB1c2VyJ3Mgb25TdWNjZXNzIGlmIHByb3ZpZGVkXG4gICAgfSxcbiAgICAuLi5vcHRpb25zLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
|
|
2
|
+
import type { Grow90EnrollmentResponse, Grow90ProgressResponse, EnrollGrow90Request, UpdateGrow90ProgressRequest, UpdateGrow90SettingsRequest } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Enroll in GROW90 program
|
|
5
|
+
*/
|
|
6
|
+
export declare function useEnrollGrow90(options?: Omit<UseMutationOptions<Grow90EnrollmentResponse, Error, EnrollGrow90Request>, 'mutationFn'>): UseMutationResult<Grow90EnrollmentResponse, Error, EnrollGrow90Request>;
|
|
7
|
+
/**
|
|
8
|
+
* Update progress for a specific day
|
|
9
|
+
*/
|
|
10
|
+
export declare function useUpdateGrow90Progress(options?: Omit<UseMutationOptions<Grow90ProgressResponse, Error, {
|
|
11
|
+
day: number;
|
|
12
|
+
data: UpdateGrow90ProgressRequest;
|
|
13
|
+
}>, 'mutationFn'>): UseMutationResult<Grow90ProgressResponse, Error, {
|
|
14
|
+
day: number;
|
|
15
|
+
data: UpdateGrow90ProgressRequest;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Update GROW90 settings
|
|
19
|
+
*/
|
|
20
|
+
export declare function useUpdateGrow90Settings(options?: Omit<UseMutationOptions<Grow90EnrollmentResponse, Error, UpdateGrow90SettingsRequest>, 'mutationFn'>): UseMutationResult<Grow90EnrollmentResponse, Error, UpdateGrow90SettingsRequest>;
|
|
21
|
+
/**
|
|
22
|
+
* Pause GROW90 program
|
|
23
|
+
*/
|
|
24
|
+
export declare function usePauseGrow90(options?: Omit<UseMutationOptions<Grow90EnrollmentResponse, Error, void>, 'mutationFn'>): UseMutationResult<Grow90EnrollmentResponse, Error, void>;
|
|
25
|
+
/**
|
|
26
|
+
* Resume GROW90 program
|
|
27
|
+
*/
|
|
28
|
+
export declare function useResumeGrow90(options?: Omit<UseMutationOptions<Grow90EnrollmentResponse, Error, void>, 'mutationFn'>): UseMutationResult<Grow90EnrollmentResponse, Error, void>;
|
|
29
|
+
/**
|
|
30
|
+
* Abandon GROW90 program
|
|
31
|
+
*/
|
|
32
|
+
export declare function useAbandonGrow90(options?: Omit<UseMutationOptions<{
|
|
33
|
+
success: boolean;
|
|
34
|
+
}, Error, void>, 'mutationFn'>): UseMutationResult<{
|
|
35
|
+
success: boolean;
|
|
36
|
+
}, Error, void>;
|