@growsober/sdk 1.0.11 → 1.0.13
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/api/mutations/index.d.ts +1 -0
- package/dist/api/mutations/index.js +2 -1
- package/dist/api/mutations/stripe-connect.d.ts +9 -0
- package/dist/api/mutations/stripe-connect.js +35 -0
- package/dist/api/queries/index.d.ts +1 -0
- package/dist/api/queries/index.js +2 -1
- package/dist/api/queries/stripe-connect.d.ts +37 -0
- package/dist/api/queries/stripe-connect.js +39 -0
- package/package.json +1 -1
- package/src/api/mutations/index.ts +1 -0
- package/src/api/mutations/stripe-connect.ts +45 -0
- package/src/api/queries/index.ts +1 -0
- package/src/api/queries/stripe-connect.ts +73 -0
|
@@ -42,4 +42,5 @@ __exportStar(require("./creators"), exports);
|
|
|
42
42
|
__exportStar(require("./brands"), exports);
|
|
43
43
|
__exportStar(require("./products"), exports);
|
|
44
44
|
__exportStar(require("./venues"), exports);
|
|
45
|
-
|
|
45
|
+
__exportStar(require("./stripe-connect"), exports);
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7R0FJRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDBDQUF3QjtBQUN4Qix5Q0FBdUI7QUFDdkIsNkNBQTJCO0FBQzNCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCO0FBQzFCLHdDQUFzQjtBQUN0QixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQyw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2QixnREFBOEI7QUFDOUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNdXRhdGlvbiBIb29rc1xuICpcbiAqIFJlLWV4cG9ydHMgYWxsIG11dGF0aW9uIGhvb2tzIGZvciBBUEkgZW5kcG9pbnRzLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYWRtaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vYm9va2luZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9odWJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGlicmFyeSc7XG5leHBvcnQgKiBmcm9tICcuL21hcCc7XG5leHBvcnQgKiBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9vZmZlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdWJzY3JpcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vc3VwcG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vamFjayc7XG5leHBvcnQgKiBmcm9tICcuL2FtYmFzc2Fkb3JzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JvdzkwJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0Y2hpbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudC1jaGF0JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1waW5zJztcbmV4cG9ydCAqIGZyb20gJy4vYmFkZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9icmFuZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9kdWN0cyc7XG5leHBvcnQgKiBmcm9tICcuL3ZlbnVlcyc7XG5leHBvcnQgKiBmcm9tICcuL3N0cmlwZS1jb25uZWN0JztcbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface OnboardingLinkResponse {
|
|
2
|
+
url: string;
|
|
3
|
+
}
|
|
4
|
+
export interface DashboardLinkResponse {
|
|
5
|
+
url: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function useStartStripeOnboarding(): import("@tanstack/react-query").UseMutationResult<OnboardingLinkResponse, Error, void, unknown>;
|
|
8
|
+
export declare function useRefreshStripeOnboarding(): import("@tanstack/react-query").UseMutationResult<OnboardingLinkResponse, Error, void, unknown>;
|
|
9
|
+
export declare function useGetStripeDashboard(): import("@tanstack/react-query").UseMutationResult<DashboardLinkResponse, Error, void, unknown>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useStartStripeOnboarding = useStartStripeOnboarding;
|
|
4
|
+
exports.useRefreshStripeOnboarding = useRefreshStripeOnboarding;
|
|
5
|
+
exports.useGetStripeDashboard = useGetStripeDashboard;
|
|
6
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
7
|
+
const client_1 = require("../client");
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// HOOKS
|
|
10
|
+
// ============================================================================
|
|
11
|
+
function useStartStripeOnboarding() {
|
|
12
|
+
return (0, react_query_1.useMutation)({
|
|
13
|
+
mutationFn: async () => {
|
|
14
|
+
const response = await (0, client_1.getApiClient)().post('/creators/me/stripe-connect/onboard');
|
|
15
|
+
return response.data;
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function useRefreshStripeOnboarding() {
|
|
20
|
+
return (0, react_query_1.useMutation)({
|
|
21
|
+
mutationFn: async () => {
|
|
22
|
+
const response = await (0, client_1.getApiClient)().post('/creators/me/stripe-connect/refresh');
|
|
23
|
+
return response.data;
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function useGetStripeDashboard() {
|
|
28
|
+
return (0, react_query_1.useMutation)({
|
|
29
|
+
mutationFn: async () => {
|
|
30
|
+
const response = await (0, client_1.getApiClient)().get('/creators/me/stripe-connect/dashboard');
|
|
31
|
+
return response.data;
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWNvbm5lY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL211dGF0aW9ucy9zdHJpcGUtY29ubmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSw0REFPQztBQUVELGdFQU9DO0FBRUQsc0RBT0M7QUE1Q0QsdURBQW9EO0FBQ3BELHNDQUF5QztBQWN6QywrRUFBK0U7QUFDL0UsUUFBUTtBQUNSLCtFQUErRTtBQUUvRSxTQUFnQix3QkFBd0I7SUFDdEMsT0FBTyxJQUFBLHlCQUFXLEVBQUM7UUFDakIsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxxQkFBWSxHQUFFLENBQUMsSUFBSSxDQUF5QixxQ0FBcUMsQ0FBQyxDQUFDO1lBQzFHLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQWdCLDBCQUEwQjtJQUN4QyxPQUFPLElBQUEseUJBQVcsRUFBQztRQUNqQixVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDckIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLHFCQUFZLEdBQUUsQ0FBQyxJQUFJLENBQXlCLHFDQUFxQyxDQUFDLENBQUM7WUFDMUcsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCO0lBQ25DLE9BQU8sSUFBQSx5QkFBVyxFQUFDO1FBQ2pCLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEscUJBQVksR0FBRSxDQUFDLEdBQUcsQ0FBd0IsdUNBQXVDLENBQUMsQ0FBQztZQUMxRyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNdXRhdGlvbiB9IGZyb20gJ0B0YW5zdGFjay9yZWFjdC1xdWVyeSc7XG5pbXBvcnQgeyBnZXRBcGlDbGllbnQgfSBmcm9tICcuLi9jbGllbnQnO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBUWVBFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uYm9hcmRpbmdMaW5rUmVzcG9uc2Uge1xuICB1cmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRMaW5rUmVzcG9uc2Uge1xuICB1cmw6IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVN0YXJ0U3RyaXBlT25ib2FyZGluZygpIHtcbiAgcmV0dXJuIHVzZU11dGF0aW9uKHtcbiAgICBtdXRhdGlvbkZuOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEFwaUNsaWVudCgpLnBvc3Q8T25ib2FyZGluZ0xpbmtSZXNwb25zZT4oJy9jcmVhdG9ycy9tZS9zdHJpcGUtY29ubmVjdC9vbmJvYXJkJyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlZnJlc2hTdHJpcGVPbmJvYXJkaW5nKCkge1xuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0QXBpQ2xpZW50KCkucG9zdDxPbmJvYXJkaW5nTGlua1Jlc3BvbnNlPignL2NyZWF0b3JzL21lL3N0cmlwZS1jb25uZWN0L3JlZnJlc2gnKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlR2V0U3RyaXBlRGFzaGJvYXJkKCkge1xuICByZXR1cm4gdXNlTXV0YXRpb24oe1xuICAgIG11dGF0aW9uRm46IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0QXBpQ2xpZW50KCkuZ2V0PERhc2hib2FyZExpbmtSZXNwb25zZT4oJy9jcmVhdG9ycy9tZS9zdHJpcGUtY29ubmVjdC9kYXNoYm9hcmQnKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0sXG4gIH0pO1xufVxuIl19
|
|
@@ -44,4 +44,5 @@ __exportStar(require("./venues"), exports);
|
|
|
44
44
|
__exportStar(require("./creators"), exports);
|
|
45
45
|
__exportStar(require("./brands"), exports);
|
|
46
46
|
__exportStar(require("./products"), exports);
|
|
47
|
-
|
|
47
|
+
__exportStar(require("./stripe-connect"), exports);
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwwQ0FBd0I7QUFDeEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qix5Q0FBdUI7QUFDdkIsNENBQTBCO0FBQzFCLHdDQUFzQjtBQUN0QixrREFBZ0M7QUFDaEMsMkNBQXlCO0FBQ3pCLGtEQUFnQztBQUNoQyw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2QixnREFBOEI7QUFDOUIsMkNBQXlCO0FBQ3pCLDZDQUEyQjtBQUMzQiwrQ0FBNkI7QUFDN0IsOENBQTRCO0FBQzVCLDJDQUF5QjtBQUN6QiwyQ0FBeUI7QUFDekIsNkNBQTJCO0FBQzNCLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBRdWVyeSBIb29rc1xuICpcbiAqIFJlLWV4cG9ydHMgYWxsIHF1ZXJ5IGhvb2tzIGZvciBBUEkgZW5kcG9pbnRzLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYWRtaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vYm9va2luZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9idXNpbmVzc2VzJztcbmV4cG9ydCAqIGZyb20gJy4vY2l0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vaHVicyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYnJhcnknO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3RpZmljYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vb2ZmZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL3N1cHBvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi91c2Vycyc7XG5leHBvcnQgKiBmcm9tICcuL2phY2snO1xuZXhwb3J0ICogZnJvbSAnLi9hbWJhc3NhZG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2dyb3c5MCc7XG5leHBvcnQgKiBmcm9tICcuL21hdGNoaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQtY2hhdCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItcGlucyc7XG5leHBvcnQgKiBmcm9tICcuL2JhZGdlcyc7XG5leHBvcnQgKiBmcm9tICcuL3ZlbnVlcyc7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vYnJhbmRzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpcGUtY29ubmVjdCc7XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type StripeConnectStatus = 'ACTIVE' | 'ONBOARDING' | 'RESTRICTED' | 'DISABLED' | 'PENDING';
|
|
2
|
+
export interface StripeAccountStatus {
|
|
3
|
+
status: StripeConnectStatus;
|
|
4
|
+
chargesEnabled: boolean;
|
|
5
|
+
payoutsEnabled: boolean;
|
|
6
|
+
detailsSubmitted: boolean;
|
|
7
|
+
createdAt?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface EarningsSummary {
|
|
10
|
+
totalEarnings: number;
|
|
11
|
+
pendingEarnings: number;
|
|
12
|
+
availableBalance: number;
|
|
13
|
+
currency: string;
|
|
14
|
+
}
|
|
15
|
+
export interface EarningsHistoryItem {
|
|
16
|
+
id: string;
|
|
17
|
+
amount: number;
|
|
18
|
+
currency: string;
|
|
19
|
+
status: string;
|
|
20
|
+
paidAt: string;
|
|
21
|
+
eventTitle?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface EarningsResponse {
|
|
24
|
+
summary: EarningsSummary;
|
|
25
|
+
history: EarningsHistoryItem[];
|
|
26
|
+
}
|
|
27
|
+
export declare const stripeConnectKeys: {
|
|
28
|
+
all: readonly ["stripe-connect"];
|
|
29
|
+
status: () => readonly ["stripe-connect", "status"];
|
|
30
|
+
earnings: () => readonly ["stripe-connect", "earnings"];
|
|
31
|
+
};
|
|
32
|
+
export declare function useStripeConnectStatus(options?: {
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
}): import("@tanstack/react-query").UseQueryResult<StripeAccountStatus, Error>;
|
|
35
|
+
export declare function useCreatorEarnings(options?: {
|
|
36
|
+
enabled?: boolean;
|
|
37
|
+
}): import("@tanstack/react-query").UseQueryResult<EarningsResponse, Error>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stripeConnectKeys = void 0;
|
|
4
|
+
exports.useStripeConnectStatus = useStripeConnectStatus;
|
|
5
|
+
exports.useCreatorEarnings = useCreatorEarnings;
|
|
6
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
7
|
+
const client_1 = require("../client");
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// QUERY KEYS
|
|
10
|
+
// ============================================================================
|
|
11
|
+
exports.stripeConnectKeys = {
|
|
12
|
+
all: ['stripe-connect'],
|
|
13
|
+
status: () => [...exports.stripeConnectKeys.all, 'status'],
|
|
14
|
+
earnings: () => [...exports.stripeConnectKeys.all, 'earnings'],
|
|
15
|
+
};
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// HOOKS
|
|
18
|
+
// ============================================================================
|
|
19
|
+
function useStripeConnectStatus(options) {
|
|
20
|
+
return (0, react_query_1.useQuery)({
|
|
21
|
+
queryKey: exports.stripeConnectKeys.status(),
|
|
22
|
+
queryFn: async () => {
|
|
23
|
+
const response = await (0, client_1.getApiClient)().get('/creators/me/stripe-connect/status');
|
|
24
|
+
return response.data;
|
|
25
|
+
},
|
|
26
|
+
enabled: options?.enabled ?? true,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function useCreatorEarnings(options) {
|
|
30
|
+
return (0, react_query_1.useQuery)({
|
|
31
|
+
queryKey: exports.stripeConnectKeys.earnings(),
|
|
32
|
+
queryFn: async () => {
|
|
33
|
+
const response = await (0, client_1.getApiClient)().get('/creators/me/stripe-connect/earnings');
|
|
34
|
+
return response.data;
|
|
35
|
+
},
|
|
36
|
+
enabled: options?.enabled ?? true,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaXBlLWNvbm5lY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3F1ZXJpZXMvc3RyaXBlLWNvbm5lY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0RBLHdEQVNDO0FBRUQsZ0RBU0M7QUF4RUQsdURBQWlEO0FBQ2pELHNDQUF5QztBQXFDekMsK0VBQStFO0FBQy9FLGFBQWE7QUFDYiwrRUFBK0U7QUFFbEUsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBVTtJQUNoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLHlCQUFpQixDQUFDLEdBQUcsRUFBRSxRQUFRLENBQVU7SUFDM0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyx5QkFBaUIsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFVO0NBQ2hFLENBQUM7QUFFRiwrRUFBK0U7QUFDL0UsUUFBUTtBQUNSLCtFQUErRTtBQUUvRSxTQUFnQixzQkFBc0IsQ0FBQyxPQUErQjtJQUNwRSxPQUFPLElBQUEsc0JBQVEsRUFBQztRQUNkLFFBQVEsRUFBRSx5QkFBaUIsQ0FBQyxNQUFNLEVBQUU7UUFDcEMsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2xCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxxQkFBWSxHQUFFLENBQUMsR0FBRyxDQUFzQixvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3JHLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksSUFBSTtLQUNsQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsT0FBK0I7SUFDaEUsT0FBTyxJQUFBLHNCQUFRLEVBQUM7UUFDZCxRQUFRLEVBQUUseUJBQWlCLENBQUMsUUFBUSxFQUFFO1FBQ3RDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtZQUNsQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEscUJBQVksR0FBRSxDQUFDLEdBQUcsQ0FBbUIsc0NBQXNDLENBQUMsQ0FBQztZQUNwRyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUk7S0FDbEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVF1ZXJ5IH0gZnJvbSAnQHRhbnN0YWNrL3JlYWN0LXF1ZXJ5JztcbmltcG9ydCB7IGdldEFwaUNsaWVudCB9IGZyb20gJy4uL2NsaWVudCc7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCB0eXBlIFN0cmlwZUNvbm5lY3RTdGF0dXMgPSAnQUNUSVZFJyB8ICdPTkJPQVJESU5HJyB8ICdSRVNUUklDVEVEJyB8ICdESVNBQkxFRCcgfCAnUEVORElORyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaXBlQWNjb3VudFN0YXR1cyB7XG4gIHN0YXR1czogU3RyaXBlQ29ubmVjdFN0YXR1cztcbiAgY2hhcmdlc0VuYWJsZWQ6IGJvb2xlYW47XG4gIHBheW91dHNFbmFibGVkOiBib29sZWFuO1xuICBkZXRhaWxzU3VibWl0dGVkOiBib29sZWFuO1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWFybmluZ3NTdW1tYXJ5IHtcbiAgdG90YWxFYXJuaW5nczogbnVtYmVyO1xuICBwZW5kaW5nRWFybmluZ3M6IG51bWJlcjtcbiAgYXZhaWxhYmxlQmFsYW5jZTogbnVtYmVyO1xuICBjdXJyZW5jeTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVhcm5pbmdzSGlzdG9yeUl0ZW0ge1xuICBpZDogc3RyaW5nO1xuICBhbW91bnQ6IG51bWJlcjtcbiAgY3VycmVuY3k6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHBhaWRBdDogc3RyaW5nO1xuICBldmVudFRpdGxlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVhcm5pbmdzUmVzcG9uc2Uge1xuICBzdW1tYXJ5OiBFYXJuaW5nc1N1bW1hcnk7XG4gIGhpc3Rvcnk6IEVhcm5pbmdzSGlzdG9yeUl0ZW1bXTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUVVFUlkgS0VZU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgY29uc3Qgc3RyaXBlQ29ubmVjdEtleXMgPSB7XG4gIGFsbDogWydzdHJpcGUtY29ubmVjdCddIGFzIGNvbnN0LFxuICBzdGF0dXM6ICgpID0+IFsuLi5zdHJpcGVDb25uZWN0S2V5cy5hbGwsICdzdGF0dXMnXSBhcyBjb25zdCxcbiAgZWFybmluZ3M6ICgpID0+IFsuLi5zdHJpcGVDb25uZWN0S2V5cy5hbGwsICdlYXJuaW5ncyddIGFzIGNvbnN0LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSE9PS1Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVN0cmlwZUNvbm5lY3RTdGF0dXMob3B0aW9ucz86IHsgZW5hYmxlZD86IGJvb2xlYW4gfSkge1xuICByZXR1cm4gdXNlUXVlcnkoe1xuICAgIHF1ZXJ5S2V5OiBzdHJpcGVDb25uZWN0S2V5cy5zdGF0dXMoKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEFwaUNsaWVudCgpLmdldDxTdHJpcGVBY2NvdW50U3RhdHVzPignL2NyZWF0b3JzL21lL3N0cmlwZS1jb25uZWN0L3N0YXR1cycpO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSxcbiAgICBlbmFibGVkOiBvcHRpb25zPy5lbmFibGVkID8/IHRydWUsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQ3JlYXRvckVhcm5pbmdzKG9wdGlvbnM/OiB7IGVuYWJsZWQ/OiBib29sZWFuIH0pIHtcbiAgcmV0dXJuIHVzZVF1ZXJ5KHtcbiAgICBxdWVyeUtleTogc3RyaXBlQ29ubmVjdEtleXMuZWFybmluZ3MoKSxcbiAgICBxdWVyeUZuOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldEFwaUNsaWVudCgpLmdldDxFYXJuaW5nc1Jlc3BvbnNlPignL2NyZWF0b3JzL21lL3N0cmlwZS1jb25uZWN0L2Vhcm5pbmdzJyk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9LFxuICAgIGVuYWJsZWQ6IG9wdGlvbnM/LmVuYWJsZWQgPz8gdHJ1ZSxcbiAgfSk7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { useMutation } from '@tanstack/react-query';
|
|
2
|
+
import { getApiClient } from '../client';
|
|
3
|
+
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// TYPES
|
|
6
|
+
// ============================================================================
|
|
7
|
+
|
|
8
|
+
export interface OnboardingLinkResponse {
|
|
9
|
+
url: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface DashboardLinkResponse {
|
|
13
|
+
url: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// ============================================================================
|
|
17
|
+
// HOOKS
|
|
18
|
+
// ============================================================================
|
|
19
|
+
|
|
20
|
+
export function useStartStripeOnboarding() {
|
|
21
|
+
return useMutation({
|
|
22
|
+
mutationFn: async () => {
|
|
23
|
+
const response = await getApiClient().post<OnboardingLinkResponse>('/creators/me/stripe-connect/onboard');
|
|
24
|
+
return response.data;
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function useRefreshStripeOnboarding() {
|
|
30
|
+
return useMutation({
|
|
31
|
+
mutationFn: async () => {
|
|
32
|
+
const response = await getApiClient().post<OnboardingLinkResponse>('/creators/me/stripe-connect/refresh');
|
|
33
|
+
return response.data;
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function useGetStripeDashboard() {
|
|
39
|
+
return useMutation({
|
|
40
|
+
mutationFn: async () => {
|
|
41
|
+
const response = await getApiClient().get<DashboardLinkResponse>('/creators/me/stripe-connect/dashboard');
|
|
42
|
+
return response.data;
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
package/src/api/queries/index.ts
CHANGED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { useQuery } from '@tanstack/react-query';
|
|
2
|
+
import { getApiClient } from '../client';
|
|
3
|
+
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// TYPES
|
|
6
|
+
// ============================================================================
|
|
7
|
+
|
|
8
|
+
export type StripeConnectStatus = 'ACTIVE' | 'ONBOARDING' | 'RESTRICTED' | 'DISABLED' | 'PENDING';
|
|
9
|
+
|
|
10
|
+
export interface StripeAccountStatus {
|
|
11
|
+
status: StripeConnectStatus;
|
|
12
|
+
chargesEnabled: boolean;
|
|
13
|
+
payoutsEnabled: boolean;
|
|
14
|
+
detailsSubmitted: boolean;
|
|
15
|
+
createdAt?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface EarningsSummary {
|
|
19
|
+
totalEarnings: number;
|
|
20
|
+
pendingEarnings: number;
|
|
21
|
+
availableBalance: number;
|
|
22
|
+
currency: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface EarningsHistoryItem {
|
|
26
|
+
id: string;
|
|
27
|
+
amount: number;
|
|
28
|
+
currency: string;
|
|
29
|
+
status: string;
|
|
30
|
+
paidAt: string;
|
|
31
|
+
eventTitle?: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface EarningsResponse {
|
|
35
|
+
summary: EarningsSummary;
|
|
36
|
+
history: EarningsHistoryItem[];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ============================================================================
|
|
40
|
+
// QUERY KEYS
|
|
41
|
+
// ============================================================================
|
|
42
|
+
|
|
43
|
+
export const stripeConnectKeys = {
|
|
44
|
+
all: ['stripe-connect'] as const,
|
|
45
|
+
status: () => [...stripeConnectKeys.all, 'status'] as const,
|
|
46
|
+
earnings: () => [...stripeConnectKeys.all, 'earnings'] as const,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// ============================================================================
|
|
50
|
+
// HOOKS
|
|
51
|
+
// ============================================================================
|
|
52
|
+
|
|
53
|
+
export function useStripeConnectStatus(options?: { enabled?: boolean }) {
|
|
54
|
+
return useQuery({
|
|
55
|
+
queryKey: stripeConnectKeys.status(),
|
|
56
|
+
queryFn: async () => {
|
|
57
|
+
const response = await getApiClient().get<StripeAccountStatus>('/creators/me/stripe-connect/status');
|
|
58
|
+
return response.data;
|
|
59
|
+
},
|
|
60
|
+
enabled: options?.enabled ?? true,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function useCreatorEarnings(options?: { enabled?: boolean }) {
|
|
65
|
+
return useQuery({
|
|
66
|
+
queryKey: stripeConnectKeys.earnings(),
|
|
67
|
+
queryFn: async () => {
|
|
68
|
+
const response = await getApiClient().get<EarningsResponse>('/creators/me/stripe-connect/earnings');
|
|
69
|
+
return response.data;
|
|
70
|
+
},
|
|
71
|
+
enabled: options?.enabled ?? true,
|
|
72
|
+
});
|
|
73
|
+
}
|