@dofe/sso-hooks 0.1.6 → 0.1.7
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.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/useI18nValidation.d.ts +2 -10
- package/dist/useI18nValidation.d.ts.map +1 -1
- package/dist/useTeam.d.ts +227 -0
- package/dist/useTeam.d.ts.map +1 -0
- package/dist/useTeam.js +256 -0
- package/dist/useTeam.js.map +1 -0
- package/dist/useTenant.d.ts +216 -0
- package/dist/useTenant.d.ts.map +1 -0
- package/dist/useTenant.js +271 -0
- package/dist/useTenant.js.map +1 -0
- package/package.json +5 -3
package/dist/index.d.ts
CHANGED
|
@@ -5,4 +5,6 @@ export { useI18nValidation, createPasswordConfirmSchema } from './useI18nValidat
|
|
|
5
5
|
export { useOperationFeedback } from './useOperationFeedback';
|
|
6
6
|
export { usePermissions } from './usePermissions';
|
|
7
7
|
export { useAspectRatioSize } from './useAspectRatioSize';
|
|
8
|
+
export { teamKeys, useUserTeams, useTeamList, useTeam, useTeamMembers, useUserPermissions, useCreateTeam, useUpdateTeam, useDeleteTeam, useAddTeamMember, useRemoveTeamMember, useCheckPermission, type UseTeamHooksOptions, } from './useTeam';
|
|
9
|
+
export { tenantKeys, useTenant, useTenantMembers, useTenantInvitations, useUserTenantPreference, useAddTenantMember, useRemoveTenantMember, useUpdateTenantMemberRole, useCreateTenantInvitation, useRespondToTenantInvitation, useCancelTenantInvitation, useUpdateUserTenantPreference, type UseTenantHooksOptions, } from './useTenant';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,mBAAmB,GACzB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,EAC7B,KAAK,qBAAqB,GAC3B,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,8 @@ export { useI18nValidation, createPasswordConfirmSchema } from './useI18nValidat
|
|
|
5
5
|
export { useOperationFeedback } from './useOperationFeedback';
|
|
6
6
|
export { usePermissions } from './usePermissions';
|
|
7
7
|
export { useAspectRatioSize } from './useAspectRatioSize';
|
|
8
|
+
// Team Hooks (SSO Internal API)
|
|
9
|
+
export { teamKeys, useUserTeams, useTeamList, useTeam, useTeamMembers, useUserPermissions, useCreateTeam, useUpdateTeam, useDeleteTeam, useAddTeamMember, useRemoveTeamMember, useCheckPermission, } from './useTeam';
|
|
10
|
+
// Tenant Hooks (SSO Internal API)
|
|
11
|
+
export { tenantKeys, useTenant, useTenantMembers, useTenantInvitations, useUserTenantPreference, useAddTenantMember, useRemoveTenantMember, useUpdateTenantMemberRole, useCreateTenantInvitation, useRespondToTenantInvitation, useCancelTenantInvitation, useUpdateUserTenantPreference, } from './useTenant';
|
|
8
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,gCAAgC;AAChC,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,WAAW,CAAC;AAEnB,kCAAkC;AAClC,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,4BAA4B,EAC5B,yBAAyB,EACzB,6BAA6B,GAE9B,MAAM,aAAa,CAAC"}
|
|
@@ -65,16 +65,8 @@ export declare function createPasswordConfirmSchema(v: ReturnType<typeof useI18n
|
|
|
65
65
|
confirmField?: string;
|
|
66
66
|
minLength?: number;
|
|
67
67
|
requireStrong?: boolean;
|
|
68
|
-
}): z.
|
|
68
|
+
}): z.ZodObject<{
|
|
69
69
|
[x: string]: z.ZodString;
|
|
70
|
-
},
|
|
71
|
-
[x: string]: string;
|
|
72
|
-
}, {
|
|
73
|
-
[x: string]: string;
|
|
74
|
-
}>, {
|
|
75
|
-
[x: string]: string;
|
|
76
|
-
}, {
|
|
77
|
-
[x: string]: string;
|
|
78
|
-
}>;
|
|
70
|
+
}, z.core.$strip>;
|
|
79
71
|
export {};
|
|
80
72
|
//# sourceMappingURL=useI18nValidation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useI18nValidation.d.ts","sourceRoot":"","sources":["../src/useI18nValidation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,KAAK,QAAQ,GACT,UAAU,GACV,OAAO,GACP,UAAU,GACV,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,OAAO,GACP,MAAM,GACN,OAAO,GACP,SAAS,GACT,aAAa,GACb,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,MAAM,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB;6BAOlB,QAAQ,GAAG,MAAM,KAAG,MAAM;6BAgBvB,MAAM,WACT;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,KACjE,MAAM;yBAmBE,QAAQ,GAAG,MAAM;uBAUjB,QAAQ,GAAG,MAAM,YAAY;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;;;;yBAmD3D;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE;uBAsBzC,QAAQ,GAAG,MAAM,YAAY;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;;EA0CzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACvC,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB
|
|
1
|
+
{"version":3,"file":"useI18nValidation.d.ts","sourceRoot":"","sources":["../src/useI18nValidation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,KAAK,QAAQ,GACT,UAAU,GACV,OAAO,GACP,UAAU,GACV,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,OAAO,GACP,MAAM,GACN,OAAO,GACP,SAAS,GACT,aAAa,GACb,MAAM,GACN,UAAU,GACV,gBAAgB,GAChB,MAAM,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB;6BAOlB,QAAQ,GAAG,MAAM,KAAG,MAAM;6BAgBvB,MAAM,WACT;QAAE,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,KACjE,MAAM;yBAmBE,QAAQ,GAAG,MAAM;uBAUjB,QAAQ,GAAG,MAAM,YAAY;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;;;;yBAmD3D;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE;uBAsBzC,QAAQ,GAAG,MAAM,YAAY;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;;EA0CzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACvC,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACpB;;kBAkBP"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Team API Hooks for SSO Internal API
|
|
3
|
+
*
|
|
4
|
+
* These hooks provide React Query integration for team management operations.
|
|
5
|
+
* They require the @repo/contracts package and @tanstack/react-query.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const { data: teams } = useUserTeams(userId);
|
|
9
|
+
* const { mutate: createTeam } = useCreateTeam();
|
|
10
|
+
* const { mutate: addMember } = useAddTeamMember();
|
|
11
|
+
*/
|
|
12
|
+
export declare const teamKeys: {
|
|
13
|
+
all: readonly ["teams"];
|
|
14
|
+
list: (filters?: Record<string, unknown>) => readonly ["teams", "list", Record<string, unknown> | undefined];
|
|
15
|
+
detail: (id: string) => readonly ["teams", "detail", string];
|
|
16
|
+
members: (teamId: string) => readonly ["teams", "members", string];
|
|
17
|
+
userTeams: (userId: string) => readonly ["teams", "user", string];
|
|
18
|
+
userPermissions: (userId: string, teamId?: string) => readonly ["teams", "permissions", string, string | undefined];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Hook Options Type
|
|
22
|
+
*
|
|
23
|
+
* @property apiClient - The ts-rest client for SSO Internal API
|
|
24
|
+
* Must be created from @repo/contracts internalContract
|
|
25
|
+
*/
|
|
26
|
+
export interface UseTeamHooksOptions {
|
|
27
|
+
apiClient: {
|
|
28
|
+
getUserTeams: (params: {
|
|
29
|
+
pathParams: {
|
|
30
|
+
id: string;
|
|
31
|
+
};
|
|
32
|
+
}) => Promise<{
|
|
33
|
+
body: unknown;
|
|
34
|
+
status: number;
|
|
35
|
+
}>;
|
|
36
|
+
listTeams: (params: {
|
|
37
|
+
query?: Record<string, unknown>;
|
|
38
|
+
}) => Promise<{
|
|
39
|
+
body: unknown;
|
|
40
|
+
status: number;
|
|
41
|
+
}>;
|
|
42
|
+
getTeam: (params: {
|
|
43
|
+
pathParams: {
|
|
44
|
+
id: string;
|
|
45
|
+
};
|
|
46
|
+
}) => Promise<{
|
|
47
|
+
body: unknown;
|
|
48
|
+
status: number;
|
|
49
|
+
}>;
|
|
50
|
+
getTeamMembers: (params: {
|
|
51
|
+
pathParams: {
|
|
52
|
+
id: string;
|
|
53
|
+
};
|
|
54
|
+
}) => Promise<{
|
|
55
|
+
body: unknown;
|
|
56
|
+
status: number;
|
|
57
|
+
}>;
|
|
58
|
+
createTeam: (params: {
|
|
59
|
+
body: Record<string, unknown>;
|
|
60
|
+
}) => Promise<{
|
|
61
|
+
body: unknown;
|
|
62
|
+
status: number;
|
|
63
|
+
}>;
|
|
64
|
+
updateTeam: (params: {
|
|
65
|
+
pathParams: {
|
|
66
|
+
id: string;
|
|
67
|
+
};
|
|
68
|
+
body: Record<string, unknown>;
|
|
69
|
+
}) => Promise<{
|
|
70
|
+
body: unknown;
|
|
71
|
+
status: number;
|
|
72
|
+
}>;
|
|
73
|
+
deleteTeam: (params: {
|
|
74
|
+
pathParams: {
|
|
75
|
+
id: string;
|
|
76
|
+
};
|
|
77
|
+
}) => Promise<{
|
|
78
|
+
body: unknown;
|
|
79
|
+
status: number;
|
|
80
|
+
}>;
|
|
81
|
+
addTeamMember: (params: {
|
|
82
|
+
pathParams: {
|
|
83
|
+
id: string;
|
|
84
|
+
};
|
|
85
|
+
body: Record<string, unknown>;
|
|
86
|
+
}) => Promise<{
|
|
87
|
+
body: unknown;
|
|
88
|
+
status: number;
|
|
89
|
+
}>;
|
|
90
|
+
removeTeamMember: (params: {
|
|
91
|
+
pathParams: {
|
|
92
|
+
id: string;
|
|
93
|
+
userId: string;
|
|
94
|
+
};
|
|
95
|
+
}) => Promise<{
|
|
96
|
+
body: unknown;
|
|
97
|
+
status: number;
|
|
98
|
+
}>;
|
|
99
|
+
getUserPermissions: (params: {
|
|
100
|
+
pathParams: {
|
|
101
|
+
id: string;
|
|
102
|
+
};
|
|
103
|
+
query?: {
|
|
104
|
+
teamId?: string;
|
|
105
|
+
};
|
|
106
|
+
}) => Promise<{
|
|
107
|
+
body: unknown;
|
|
108
|
+
status: number;
|
|
109
|
+
}>;
|
|
110
|
+
checkPermission: (params: {
|
|
111
|
+
query: Record<string, unknown>;
|
|
112
|
+
}) => Promise<{
|
|
113
|
+
body: unknown;
|
|
114
|
+
status: number;
|
|
115
|
+
}>;
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Use User Teams Hook
|
|
120
|
+
*
|
|
121
|
+
* Fetches all teams that a user belongs to.
|
|
122
|
+
*/
|
|
123
|
+
export declare function useUserTeams(userId: string | null | undefined, options: UseTeamHooksOptions): import("@tanstack/react-query").UseQueryResult<unknown[] | null, Error>;
|
|
124
|
+
/**
|
|
125
|
+
* Use Team List Hook
|
|
126
|
+
*
|
|
127
|
+
* Fetches a paginated list of teams.
|
|
128
|
+
*/
|
|
129
|
+
export declare function useTeamList(query: {
|
|
130
|
+
tenantId?: string;
|
|
131
|
+
userId?: string;
|
|
132
|
+
page?: number;
|
|
133
|
+
limit?: number;
|
|
134
|
+
} | undefined, options: UseTeamHooksOptions): import("@tanstack/react-query").UseQueryResult<{
|
|
135
|
+
list?: unknown[];
|
|
136
|
+
total?: number;
|
|
137
|
+
page?: number;
|
|
138
|
+
limit?: number;
|
|
139
|
+
}, Error>;
|
|
140
|
+
/**
|
|
141
|
+
* Use Team Detail Hook
|
|
142
|
+
*
|
|
143
|
+
* Fetches a single team by ID.
|
|
144
|
+
*/
|
|
145
|
+
export declare function useTeam(teamId: string | null | undefined, options: UseTeamHooksOptions): import("@tanstack/react-query").UseQueryResult<{} | null, Error>;
|
|
146
|
+
/**
|
|
147
|
+
* Use Team Members Hook
|
|
148
|
+
*
|
|
149
|
+
* Fetches all members of a team.
|
|
150
|
+
*/
|
|
151
|
+
export declare function useTeamMembers(teamId: string | null | undefined, options: UseTeamHooksOptions): import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
|
|
152
|
+
/**
|
|
153
|
+
* Use User Permissions Hook
|
|
154
|
+
*
|
|
155
|
+
* Fetches user permissions for a specific team (optional).
|
|
156
|
+
*/
|
|
157
|
+
export declare function useUserPermissions(userId: string | null | undefined, options: UseTeamHooksOptions, teamId?: string): import("@tanstack/react-query").UseQueryResult<{
|
|
158
|
+
permissions?: string[];
|
|
159
|
+
roles?: string[];
|
|
160
|
+
}, Error>;
|
|
161
|
+
/**
|
|
162
|
+
* Use Create Team Mutation
|
|
163
|
+
*
|
|
164
|
+
* Creates a new team.
|
|
165
|
+
*/
|
|
166
|
+
export declare function useCreateTeam(options: UseTeamHooksOptions): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
|
|
167
|
+
tenantId: string;
|
|
168
|
+
slug: string;
|
|
169
|
+
name: string;
|
|
170
|
+
description?: string;
|
|
171
|
+
type?: string;
|
|
172
|
+
externalId?: string;
|
|
173
|
+
metadata?: Record<string, unknown>;
|
|
174
|
+
}, unknown>;
|
|
175
|
+
/**
|
|
176
|
+
* Use Update Team Mutation
|
|
177
|
+
*
|
|
178
|
+
* Updates an existing team.
|
|
179
|
+
*/
|
|
180
|
+
export declare function useUpdateTeam(options: UseTeamHooksOptions): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
|
|
181
|
+
teamId: string;
|
|
182
|
+
body: Partial<{
|
|
183
|
+
name: string;
|
|
184
|
+
description: string;
|
|
185
|
+
type: string;
|
|
186
|
+
status: string;
|
|
187
|
+
metadata: Record<string, unknown>;
|
|
188
|
+
}>;
|
|
189
|
+
}, unknown>;
|
|
190
|
+
/**
|
|
191
|
+
* Use Delete Team Mutation
|
|
192
|
+
*
|
|
193
|
+
* Soft deletes a team.
|
|
194
|
+
*/
|
|
195
|
+
export declare function useDeleteTeam(options: UseTeamHooksOptions): import("@tanstack/react-query").UseMutationResult<boolean, Error, string, unknown>;
|
|
196
|
+
/**
|
|
197
|
+
* Use Add Team Member Mutation
|
|
198
|
+
*
|
|
199
|
+
* Adds a member to a team.
|
|
200
|
+
*/
|
|
201
|
+
export declare function useAddTeamMember(options: UseTeamHooksOptions): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
|
|
202
|
+
teamId: string;
|
|
203
|
+
userId: string;
|
|
204
|
+
role?: string;
|
|
205
|
+
}, unknown>;
|
|
206
|
+
/**
|
|
207
|
+
* Use Remove Team Member Mutation
|
|
208
|
+
*
|
|
209
|
+
* Removes a member from a team.
|
|
210
|
+
*/
|
|
211
|
+
export declare function useRemoveTeamMember(options: UseTeamHooksOptions): import("@tanstack/react-query").UseMutationResult<boolean, Error, {
|
|
212
|
+
teamId: string;
|
|
213
|
+
userId: string;
|
|
214
|
+
}, unknown>;
|
|
215
|
+
/**
|
|
216
|
+
* Use Check Permission Hook
|
|
217
|
+
*
|
|
218
|
+
* Checks if a user has a specific permission.
|
|
219
|
+
*/
|
|
220
|
+
export declare function useCheckPermission(query: {
|
|
221
|
+
userId?: string;
|
|
222
|
+
teamId?: string;
|
|
223
|
+
permission?: string;
|
|
224
|
+
}, options: UseTeamHooksOptions): import("@tanstack/react-query").UseQueryResult<{
|
|
225
|
+
hasPermission: boolean;
|
|
226
|
+
}, Error>;
|
|
227
|
+
//# sourceMappingURL=useTeam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTeam.d.ts","sourceRoot":"","sources":["../src/useTeam.ts"],"names":[],"mappings":"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"}
|
package/dist/useTeam.js
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
/**
|
|
4
|
+
* Team API Hooks for SSO Internal API
|
|
5
|
+
*
|
|
6
|
+
* These hooks provide React Query integration for team management operations.
|
|
7
|
+
* They require the @repo/contracts package and @tanstack/react-query.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* const { data: teams } = useUserTeams(userId);
|
|
11
|
+
* const { mutate: createTeam } = useCreateTeam();
|
|
12
|
+
* const { mutate: addMember } = useAddTeamMember();
|
|
13
|
+
*/
|
|
14
|
+
// Query Keys
|
|
15
|
+
export const teamKeys = {
|
|
16
|
+
all: ['teams'],
|
|
17
|
+
list: (filters) => [...teamKeys.all, 'list', filters],
|
|
18
|
+
detail: (id) => [...teamKeys.all, 'detail', id],
|
|
19
|
+
members: (teamId) => [...teamKeys.all, 'members', teamId],
|
|
20
|
+
userTeams: (userId) => [...teamKeys.all, 'user', userId],
|
|
21
|
+
userPermissions: (userId, teamId) => [...teamKeys.all, 'permissions', userId, teamId],
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Use User Teams Hook
|
|
25
|
+
*
|
|
26
|
+
* Fetches all teams that a user belongs to.
|
|
27
|
+
*/
|
|
28
|
+
export function useUserTeams(userId, options) {
|
|
29
|
+
return useQuery({
|
|
30
|
+
queryKey: teamKeys.userTeams(userId ?? ''),
|
|
31
|
+
queryFn: async () => {
|
|
32
|
+
if (!userId)
|
|
33
|
+
return null;
|
|
34
|
+
const response = await options.apiClient.getUserTeams({ pathParams: { id: userId } });
|
|
35
|
+
if (response.status !== 200)
|
|
36
|
+
throw new Error('Failed to fetch user teams');
|
|
37
|
+
const body = response.body;
|
|
38
|
+
return body?.data?.data ?? [];
|
|
39
|
+
},
|
|
40
|
+
enabled: !!userId,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Use Team List Hook
|
|
45
|
+
*
|
|
46
|
+
* Fetches a paginated list of teams.
|
|
47
|
+
*/
|
|
48
|
+
export function useTeamList(query = {}, options) {
|
|
49
|
+
return useQuery({
|
|
50
|
+
queryKey: teamKeys.list(query),
|
|
51
|
+
queryFn: async () => {
|
|
52
|
+
const response = await options.apiClient.listTeams({ query });
|
|
53
|
+
if (response.status !== 200)
|
|
54
|
+
throw new Error('Failed to fetch teams');
|
|
55
|
+
const body = response.body;
|
|
56
|
+
return body?.data?.data ?? { list: [], total: 0, page: 1, limit: 20 };
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Use Team Detail Hook
|
|
62
|
+
*
|
|
63
|
+
* Fetches a single team by ID.
|
|
64
|
+
*/
|
|
65
|
+
export function useTeam(teamId, options) {
|
|
66
|
+
return useQuery({
|
|
67
|
+
queryKey: teamKeys.detail(teamId ?? ''),
|
|
68
|
+
queryFn: async () => {
|
|
69
|
+
if (!teamId)
|
|
70
|
+
return null;
|
|
71
|
+
const response = await options.apiClient.getTeam({ pathParams: { id: teamId } });
|
|
72
|
+
if (response.status !== 200)
|
|
73
|
+
throw new Error('Failed to fetch team');
|
|
74
|
+
const body = response.body;
|
|
75
|
+
return body?.data?.data ?? null;
|
|
76
|
+
},
|
|
77
|
+
enabled: !!teamId,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Use Team Members Hook
|
|
82
|
+
*
|
|
83
|
+
* Fetches all members of a team.
|
|
84
|
+
*/
|
|
85
|
+
export function useTeamMembers(teamId, options) {
|
|
86
|
+
return useQuery({
|
|
87
|
+
queryKey: teamKeys.members(teamId ?? ''),
|
|
88
|
+
queryFn: async () => {
|
|
89
|
+
if (!teamId)
|
|
90
|
+
return [];
|
|
91
|
+
const response = await options.apiClient.getTeamMembers({ pathParams: { id: teamId } });
|
|
92
|
+
if (response.status !== 200)
|
|
93
|
+
throw new Error('Failed to fetch team members');
|
|
94
|
+
const body = response.body;
|
|
95
|
+
return body?.data?.data ?? [];
|
|
96
|
+
},
|
|
97
|
+
enabled: !!teamId,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Use User Permissions Hook
|
|
102
|
+
*
|
|
103
|
+
* Fetches user permissions for a specific team (optional).
|
|
104
|
+
*/
|
|
105
|
+
export function useUserPermissions(userId, options, teamId) {
|
|
106
|
+
return useQuery({
|
|
107
|
+
queryKey: teamKeys.userPermissions(userId ?? '', teamId),
|
|
108
|
+
queryFn: async () => {
|
|
109
|
+
if (!userId)
|
|
110
|
+
return { permissions: [], roles: [] };
|
|
111
|
+
const response = await options.apiClient.getUserPermissions({
|
|
112
|
+
pathParams: { id: userId },
|
|
113
|
+
query: teamId ? { teamId } : undefined,
|
|
114
|
+
});
|
|
115
|
+
if (response.status !== 200)
|
|
116
|
+
throw new Error('Failed to fetch user permissions');
|
|
117
|
+
const body = response.body;
|
|
118
|
+
return body?.data?.data ?? { permissions: [], roles: [] };
|
|
119
|
+
},
|
|
120
|
+
enabled: !!userId,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Use Create Team Mutation
|
|
125
|
+
*
|
|
126
|
+
* Creates a new team.
|
|
127
|
+
*/
|
|
128
|
+
export function useCreateTeam(options) {
|
|
129
|
+
const queryClient = useQueryClient();
|
|
130
|
+
return useMutation({
|
|
131
|
+
mutationFn: async (body) => {
|
|
132
|
+
const response = await options.apiClient.createTeam({ body });
|
|
133
|
+
if (response.status !== 200)
|
|
134
|
+
throw new Error('Failed to create team');
|
|
135
|
+
const resBody = response.body;
|
|
136
|
+
return resBody?.data?.data;
|
|
137
|
+
},
|
|
138
|
+
onSuccess: () => {
|
|
139
|
+
queryClient.invalidateQueries({ queryKey: teamKeys.all });
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Use Update Team Mutation
|
|
145
|
+
*
|
|
146
|
+
* Updates an existing team.
|
|
147
|
+
*/
|
|
148
|
+
export function useUpdateTeam(options) {
|
|
149
|
+
const queryClient = useQueryClient();
|
|
150
|
+
return useMutation({
|
|
151
|
+
mutationFn: async (params) => {
|
|
152
|
+
const response = await options.apiClient.updateTeam({
|
|
153
|
+
pathParams: { id: params.teamId },
|
|
154
|
+
body: params.body,
|
|
155
|
+
});
|
|
156
|
+
if (response.status !== 200)
|
|
157
|
+
throw new Error('Failed to update team');
|
|
158
|
+
const resBody = response.body;
|
|
159
|
+
return resBody?.data?.data;
|
|
160
|
+
},
|
|
161
|
+
onSuccess: (_data, variables) => {
|
|
162
|
+
queryClient.invalidateQueries({ queryKey: teamKeys.detail(variables.teamId) });
|
|
163
|
+
queryClient.invalidateQueries({ queryKey: teamKeys.list() });
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Use Delete Team Mutation
|
|
169
|
+
*
|
|
170
|
+
* Soft deletes a team.
|
|
171
|
+
*/
|
|
172
|
+
export function useDeleteTeam(options) {
|
|
173
|
+
const queryClient = useQueryClient();
|
|
174
|
+
return useMutation({
|
|
175
|
+
mutationFn: async (teamId) => {
|
|
176
|
+
const response = await options.apiClient.deleteTeam({ pathParams: { id: teamId } });
|
|
177
|
+
if (response.status !== 200)
|
|
178
|
+
throw new Error('Failed to delete team');
|
|
179
|
+
return true;
|
|
180
|
+
},
|
|
181
|
+
onSuccess: () => {
|
|
182
|
+
queryClient.invalidateQueries({ queryKey: teamKeys.all });
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Use Add Team Member Mutation
|
|
188
|
+
*
|
|
189
|
+
* Adds a member to a team.
|
|
190
|
+
*/
|
|
191
|
+
export function useAddTeamMember(options) {
|
|
192
|
+
const queryClient = useQueryClient();
|
|
193
|
+
return useMutation({
|
|
194
|
+
mutationFn: async (params) => {
|
|
195
|
+
const response = await options.apiClient.addTeamMember({
|
|
196
|
+
pathParams: { id: params.teamId },
|
|
197
|
+
body: { userId: params.userId, role: params.role ?? 'MEMBER' },
|
|
198
|
+
});
|
|
199
|
+
if (response.status !== 200)
|
|
200
|
+
throw new Error('Failed to add team member');
|
|
201
|
+
const resBody = response.body;
|
|
202
|
+
return resBody?.data?.data;
|
|
203
|
+
},
|
|
204
|
+
onSuccess: (_data, variables) => {
|
|
205
|
+
queryClient.invalidateQueries({ queryKey: teamKeys.members(variables.teamId) });
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Use Remove Team Member Mutation
|
|
211
|
+
*
|
|
212
|
+
* Removes a member from a team.
|
|
213
|
+
*/
|
|
214
|
+
export function useRemoveTeamMember(options) {
|
|
215
|
+
const queryClient = useQueryClient();
|
|
216
|
+
return useMutation({
|
|
217
|
+
mutationFn: async (params) => {
|
|
218
|
+
const response = await options.apiClient.removeTeamMember({
|
|
219
|
+
pathParams: { id: params.teamId, userId: params.userId },
|
|
220
|
+
});
|
|
221
|
+
if (response.status !== 200)
|
|
222
|
+
throw new Error('Failed to remove team member');
|
|
223
|
+
return true;
|
|
224
|
+
},
|
|
225
|
+
onSuccess: (_data, variables) => {
|
|
226
|
+
queryClient.invalidateQueries({ queryKey: teamKeys.members(variables.teamId) });
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Use Check Permission Hook
|
|
232
|
+
*
|
|
233
|
+
* Checks if a user has a specific permission.
|
|
234
|
+
*/
|
|
235
|
+
export function useCheckPermission(query, options) {
|
|
236
|
+
return useQuery({
|
|
237
|
+
queryKey: ['permission-check', query],
|
|
238
|
+
queryFn: async () => {
|
|
239
|
+
if (!query.userId || !query.permission)
|
|
240
|
+
return { hasPermission: false };
|
|
241
|
+
const response = await options.apiClient.checkPermission({
|
|
242
|
+
query: {
|
|
243
|
+
userId: query.userId,
|
|
244
|
+
teamId: query.teamId,
|
|
245
|
+
permission: query.permission,
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
if (response.status !== 200)
|
|
249
|
+
throw new Error('Failed to check permission');
|
|
250
|
+
const body = response.body;
|
|
251
|
+
return { hasPermission: body?.data?.data?.hasPermission ?? false };
|
|
252
|
+
},
|
|
253
|
+
enabled: !!query.userId && !!query.permission,
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=useTeam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTeam.js","sourceRoot":"","sources":["../src/useTeam.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tenant API Hooks for SSO Internal API
|
|
3
|
+
*
|
|
4
|
+
* These hooks provide React Query integration for tenant management operations.
|
|
5
|
+
* They require the @repo/contracts package and @tanstack/react-query.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* const { data: tenant } = useTenant(tenantId, { apiClient });
|
|
9
|
+
* const { data: members } = useTenantMembers(tenantId, { apiClient });
|
|
10
|
+
* const { mutate: addMember } = useAddTenantMember({ apiClient });
|
|
11
|
+
*/
|
|
12
|
+
export declare const tenantKeys: {
|
|
13
|
+
all: readonly ["tenants"];
|
|
14
|
+
list: (filters?: Record<string, unknown>) => readonly ["tenants", "list", Record<string, unknown> | undefined];
|
|
15
|
+
detail: (id: string) => readonly ["tenants", "detail", string];
|
|
16
|
+
members: (tenantId: string) => readonly ["tenants", "members", string];
|
|
17
|
+
invitations: (tenantId: string) => readonly ["tenants", "invitations", string];
|
|
18
|
+
userTenants: (userId: string) => readonly ["tenants", "user", string];
|
|
19
|
+
userPreferences: (userId: string) => readonly ["tenants", "preferences", string];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Hook Options Type
|
|
23
|
+
*
|
|
24
|
+
* @property apiClient - The ts-rest client for SSO Internal API
|
|
25
|
+
* Must be created from @repo/contracts internalContract
|
|
26
|
+
*/
|
|
27
|
+
export interface UseTenantHooksOptions {
|
|
28
|
+
apiClient: {
|
|
29
|
+
getTenant: (params: {
|
|
30
|
+
pathParams: {
|
|
31
|
+
id: string;
|
|
32
|
+
};
|
|
33
|
+
}) => Promise<{
|
|
34
|
+
body: unknown;
|
|
35
|
+
status: number;
|
|
36
|
+
}>;
|
|
37
|
+
getTenantMembers: (params: {
|
|
38
|
+
pathParams: {
|
|
39
|
+
id: string;
|
|
40
|
+
};
|
|
41
|
+
}) => Promise<{
|
|
42
|
+
body: unknown;
|
|
43
|
+
status: number;
|
|
44
|
+
}>;
|
|
45
|
+
addTenantMember: (params: {
|
|
46
|
+
pathParams: {
|
|
47
|
+
id: string;
|
|
48
|
+
};
|
|
49
|
+
body: Record<string, unknown>;
|
|
50
|
+
}) => Promise<{
|
|
51
|
+
body: unknown;
|
|
52
|
+
status: number;
|
|
53
|
+
}>;
|
|
54
|
+
removeTenantMember: (params: {
|
|
55
|
+
pathParams: {
|
|
56
|
+
id: string;
|
|
57
|
+
userId: string;
|
|
58
|
+
};
|
|
59
|
+
}) => Promise<{
|
|
60
|
+
body: unknown;
|
|
61
|
+
status: number;
|
|
62
|
+
}>;
|
|
63
|
+
updateTenantMemberRole: (params: {
|
|
64
|
+
pathParams: {
|
|
65
|
+
id: string;
|
|
66
|
+
userId: string;
|
|
67
|
+
};
|
|
68
|
+
body: Record<string, unknown>;
|
|
69
|
+
}) => Promise<{
|
|
70
|
+
body: unknown;
|
|
71
|
+
status: number;
|
|
72
|
+
}>;
|
|
73
|
+
getTenantInvitations: (params: {
|
|
74
|
+
pathParams: {
|
|
75
|
+
id: string;
|
|
76
|
+
};
|
|
77
|
+
}) => Promise<{
|
|
78
|
+
body: unknown;
|
|
79
|
+
status: number;
|
|
80
|
+
}>;
|
|
81
|
+
createTenantInvitation: (params: {
|
|
82
|
+
pathParams: {
|
|
83
|
+
id: string;
|
|
84
|
+
};
|
|
85
|
+
body: Record<string, unknown>;
|
|
86
|
+
}) => Promise<{
|
|
87
|
+
body: unknown;
|
|
88
|
+
status: number;
|
|
89
|
+
}>;
|
|
90
|
+
respondToTenantInvitation: (params: {
|
|
91
|
+
pathParams: {
|
|
92
|
+
id: string;
|
|
93
|
+
};
|
|
94
|
+
body: Record<string, unknown>;
|
|
95
|
+
}) => Promise<{
|
|
96
|
+
body: unknown;
|
|
97
|
+
status: number;
|
|
98
|
+
}>;
|
|
99
|
+
cancelTenantInvitation: (params: {
|
|
100
|
+
pathParams: {
|
|
101
|
+
id: string;
|
|
102
|
+
};
|
|
103
|
+
}) => Promise<{
|
|
104
|
+
body: unknown;
|
|
105
|
+
status: number;
|
|
106
|
+
}>;
|
|
107
|
+
getUserTenantPreference: (params: {
|
|
108
|
+
pathParams: {
|
|
109
|
+
id: string;
|
|
110
|
+
};
|
|
111
|
+
}) => Promise<{
|
|
112
|
+
body: unknown;
|
|
113
|
+
status: number;
|
|
114
|
+
}>;
|
|
115
|
+
updateUserTenantPreference: (params: {
|
|
116
|
+
pathParams: {
|
|
117
|
+
id: string;
|
|
118
|
+
};
|
|
119
|
+
body: Record<string, unknown>;
|
|
120
|
+
}) => Promise<{
|
|
121
|
+
body: unknown;
|
|
122
|
+
status: number;
|
|
123
|
+
}>;
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Use Tenant Detail Hook
|
|
128
|
+
*
|
|
129
|
+
* Fetches a single tenant by ID.
|
|
130
|
+
*/
|
|
131
|
+
export declare function useTenant(tenantId: string | null | undefined, options: UseTenantHooksOptions): import("@tanstack/react-query").UseQueryResult<{} | null, Error>;
|
|
132
|
+
/**
|
|
133
|
+
* Use Tenant Members Hook
|
|
134
|
+
*
|
|
135
|
+
* Fetches all members of a tenant.
|
|
136
|
+
*/
|
|
137
|
+
export declare function useTenantMembers(tenantId: string | null | undefined, options: UseTenantHooksOptions): import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
|
|
138
|
+
/**
|
|
139
|
+
* Use Tenant Invitations Hook
|
|
140
|
+
*
|
|
141
|
+
* Fetches all invitations for a tenant.
|
|
142
|
+
*/
|
|
143
|
+
export declare function useTenantInvitations(tenantId: string | null | undefined, options: UseTenantHooksOptions): import("@tanstack/react-query").UseQueryResult<unknown[], Error>;
|
|
144
|
+
/**
|
|
145
|
+
* Use User Tenant Preference Hook
|
|
146
|
+
*
|
|
147
|
+
* Fetches user's tenant preferences.
|
|
148
|
+
*/
|
|
149
|
+
export declare function useUserTenantPreference(userId: string | null | undefined, options: UseTenantHooksOptions): import("@tanstack/react-query").UseQueryResult<{} | null, Error>;
|
|
150
|
+
/**
|
|
151
|
+
* Use Add Tenant Member Mutation
|
|
152
|
+
*
|
|
153
|
+
* Adds a member to a tenant.
|
|
154
|
+
*/
|
|
155
|
+
export declare function useAddTenantMember(options: UseTenantHooksOptions): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
|
|
156
|
+
tenantId: string;
|
|
157
|
+
userId: string;
|
|
158
|
+
role?: string;
|
|
159
|
+
}, unknown>;
|
|
160
|
+
/**
|
|
161
|
+
* Use Remove Tenant Member Mutation
|
|
162
|
+
*
|
|
163
|
+
* Removes a member from a tenant.
|
|
164
|
+
*/
|
|
165
|
+
export declare function useRemoveTenantMember(options: UseTenantHooksOptions): import("@tanstack/react-query").UseMutationResult<boolean, Error, {
|
|
166
|
+
tenantId: string;
|
|
167
|
+
userId: string;
|
|
168
|
+
}, unknown>;
|
|
169
|
+
/**
|
|
170
|
+
* Use Update Tenant Member Role Mutation
|
|
171
|
+
*
|
|
172
|
+
* Updates a tenant member's role.
|
|
173
|
+
*/
|
|
174
|
+
export declare function useUpdateTenantMemberRole(options: UseTenantHooksOptions): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
|
|
175
|
+
tenantId: string;
|
|
176
|
+
userId: string;
|
|
177
|
+
role: "OWNER" | "ADMIN" | "MEMBER";
|
|
178
|
+
}, unknown>;
|
|
179
|
+
/**
|
|
180
|
+
* Use Create Tenant Invitation Mutation
|
|
181
|
+
*
|
|
182
|
+
* Creates an invitation to join a tenant.
|
|
183
|
+
*/
|
|
184
|
+
export declare function useCreateTenantInvitation(options: UseTenantHooksOptions): import("@tanstack/react-query").UseMutationResult<unknown, Error, {
|
|
185
|
+
tenantId: string;
|
|
186
|
+
email: string;
|
|
187
|
+
role?: string;
|
|
188
|
+
expiresInDays?: number;
|
|
189
|
+
}, unknown>;
|
|
190
|
+
/**
|
|
191
|
+
* Use Respond to Tenant Invitation Mutation
|
|
192
|
+
*
|
|
193
|
+
* Responds to a tenant invitation (accept or decline).
|
|
194
|
+
*/
|
|
195
|
+
export declare function useRespondToTenantInvitation(options: UseTenantHooksOptions): import("@tanstack/react-query").UseMutationResult<boolean, Error, {
|
|
196
|
+
invitationId: string;
|
|
197
|
+
accept: boolean;
|
|
198
|
+
}, unknown>;
|
|
199
|
+
/**
|
|
200
|
+
* Use Cancel Tenant Invitation Mutation
|
|
201
|
+
*
|
|
202
|
+
* Cancels a tenant invitation.
|
|
203
|
+
*/
|
|
204
|
+
export declare function useCancelTenantInvitation(options: UseTenantHooksOptions): import("@tanstack/react-query").UseMutationResult<boolean, Error, string, unknown>;
|
|
205
|
+
/**
|
|
206
|
+
* Use Update User Tenant Preference Mutation
|
|
207
|
+
*
|
|
208
|
+
* Updates user's tenant preferences.
|
|
209
|
+
*/
|
|
210
|
+
export declare function useUpdateUserTenantPreference(options: UseTenantHooksOptions): import("@tanstack/react-query").UseMutationResult<boolean, Error, {
|
|
211
|
+
userId: string;
|
|
212
|
+
defaultTenantId?: string;
|
|
213
|
+
tenantOrder?: string[];
|
|
214
|
+
hiddenTenantIds?: string[];
|
|
215
|
+
}, unknown>;
|
|
216
|
+
//# sourceMappingURL=useTenant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTenant.d.ts","sourceRoot":"","sources":["../src/useTenant.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
3
|
+
/**
|
|
4
|
+
* Tenant API Hooks for SSO Internal API
|
|
5
|
+
*
|
|
6
|
+
* These hooks provide React Query integration for tenant management operations.
|
|
7
|
+
* They require the @repo/contracts package and @tanstack/react-query.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* const { data: tenant } = useTenant(tenantId, { apiClient });
|
|
11
|
+
* const { data: members } = useTenantMembers(tenantId, { apiClient });
|
|
12
|
+
* const { mutate: addMember } = useAddTenantMember({ apiClient });
|
|
13
|
+
*/
|
|
14
|
+
// Query Keys
|
|
15
|
+
export const tenantKeys = {
|
|
16
|
+
all: ['tenants'],
|
|
17
|
+
list: (filters) => [...tenantKeys.all, 'list', filters],
|
|
18
|
+
detail: (id) => [...tenantKeys.all, 'detail', id],
|
|
19
|
+
members: (tenantId) => [...tenantKeys.all, 'members', tenantId],
|
|
20
|
+
invitations: (tenantId) => [...tenantKeys.all, 'invitations', tenantId],
|
|
21
|
+
userTenants: (userId) => [...tenantKeys.all, 'user', userId],
|
|
22
|
+
userPreferences: (userId) => [...tenantKeys.all, 'preferences', userId],
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Use Tenant Detail Hook
|
|
26
|
+
*
|
|
27
|
+
* Fetches a single tenant by ID.
|
|
28
|
+
*/
|
|
29
|
+
export function useTenant(tenantId, options) {
|
|
30
|
+
return useQuery({
|
|
31
|
+
queryKey: tenantKeys.detail(tenantId ?? ''),
|
|
32
|
+
queryFn: async () => {
|
|
33
|
+
if (!tenantId)
|
|
34
|
+
return null;
|
|
35
|
+
const response = await options.apiClient.getTenant({ pathParams: { id: tenantId } });
|
|
36
|
+
if (response.status !== 200)
|
|
37
|
+
throw new Error('Failed to fetch tenant');
|
|
38
|
+
const body = response.body;
|
|
39
|
+
return body?.data?.data ?? null;
|
|
40
|
+
},
|
|
41
|
+
enabled: !!tenantId,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Use Tenant Members Hook
|
|
46
|
+
*
|
|
47
|
+
* Fetches all members of a tenant.
|
|
48
|
+
*/
|
|
49
|
+
export function useTenantMembers(tenantId, options) {
|
|
50
|
+
return useQuery({
|
|
51
|
+
queryKey: tenantKeys.members(tenantId ?? ''),
|
|
52
|
+
queryFn: async () => {
|
|
53
|
+
if (!tenantId)
|
|
54
|
+
return [];
|
|
55
|
+
const response = await options.apiClient.getTenantMembers({ pathParams: { id: tenantId } });
|
|
56
|
+
if (response.status !== 200)
|
|
57
|
+
throw new Error('Failed to fetch tenant members');
|
|
58
|
+
const body = response.body;
|
|
59
|
+
return body?.data?.data ?? [];
|
|
60
|
+
},
|
|
61
|
+
enabled: !!tenantId,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Use Tenant Invitations Hook
|
|
66
|
+
*
|
|
67
|
+
* Fetches all invitations for a tenant.
|
|
68
|
+
*/
|
|
69
|
+
export function useTenantInvitations(tenantId, options) {
|
|
70
|
+
return useQuery({
|
|
71
|
+
queryKey: tenantKeys.invitations(tenantId ?? ''),
|
|
72
|
+
queryFn: async () => {
|
|
73
|
+
if (!tenantId)
|
|
74
|
+
return [];
|
|
75
|
+
const response = await options.apiClient.getTenantInvitations({
|
|
76
|
+
pathParams: { id: tenantId },
|
|
77
|
+
});
|
|
78
|
+
if (response.status !== 200)
|
|
79
|
+
throw new Error('Failed to fetch tenant invitations');
|
|
80
|
+
const body = response.body;
|
|
81
|
+
return body?.data?.data ?? [];
|
|
82
|
+
},
|
|
83
|
+
enabled: !!tenantId,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Use User Tenant Preference Hook
|
|
88
|
+
*
|
|
89
|
+
* Fetches user's tenant preferences.
|
|
90
|
+
*/
|
|
91
|
+
export function useUserTenantPreference(userId, options) {
|
|
92
|
+
return useQuery({
|
|
93
|
+
queryKey: tenantKeys.userPreferences(userId ?? ''),
|
|
94
|
+
queryFn: async () => {
|
|
95
|
+
if (!userId)
|
|
96
|
+
return null;
|
|
97
|
+
const response = await options.apiClient.getUserTenantPreference({
|
|
98
|
+
pathParams: { id: userId },
|
|
99
|
+
});
|
|
100
|
+
if (response.status !== 200)
|
|
101
|
+
throw new Error('Failed to fetch user tenant preference');
|
|
102
|
+
const body = response.body;
|
|
103
|
+
return body?.data?.data ?? null;
|
|
104
|
+
},
|
|
105
|
+
enabled: !!userId,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Use Add Tenant Member Mutation
|
|
110
|
+
*
|
|
111
|
+
* Adds a member to a tenant.
|
|
112
|
+
*/
|
|
113
|
+
export function useAddTenantMember(options) {
|
|
114
|
+
const queryClient = useQueryClient();
|
|
115
|
+
return useMutation({
|
|
116
|
+
mutationFn: async (params) => {
|
|
117
|
+
const response = await options.apiClient.addTenantMember({
|
|
118
|
+
pathParams: { id: params.tenantId },
|
|
119
|
+
body: { userId: params.userId, role: params.role ?? 'MEMBER' },
|
|
120
|
+
});
|
|
121
|
+
if (response.status !== 200)
|
|
122
|
+
throw new Error('Failed to add tenant member');
|
|
123
|
+
const resBody = response.body;
|
|
124
|
+
return resBody?.data?.data;
|
|
125
|
+
},
|
|
126
|
+
onSuccess: (_data, variables) => {
|
|
127
|
+
queryClient.invalidateQueries({ queryKey: tenantKeys.members(variables.tenantId) });
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Use Remove Tenant Member Mutation
|
|
133
|
+
*
|
|
134
|
+
* Removes a member from a tenant.
|
|
135
|
+
*/
|
|
136
|
+
export function useRemoveTenantMember(options) {
|
|
137
|
+
const queryClient = useQueryClient();
|
|
138
|
+
return useMutation({
|
|
139
|
+
mutationFn: async (params) => {
|
|
140
|
+
const response = await options.apiClient.removeTenantMember({
|
|
141
|
+
pathParams: { id: params.tenantId, userId: params.userId },
|
|
142
|
+
});
|
|
143
|
+
if (response.status !== 200)
|
|
144
|
+
throw new Error('Failed to remove tenant member');
|
|
145
|
+
return true;
|
|
146
|
+
},
|
|
147
|
+
onSuccess: (_data, variables) => {
|
|
148
|
+
queryClient.invalidateQueries({ queryKey: tenantKeys.members(variables.tenantId) });
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Use Update Tenant Member Role Mutation
|
|
154
|
+
*
|
|
155
|
+
* Updates a tenant member's role.
|
|
156
|
+
*/
|
|
157
|
+
export function useUpdateTenantMemberRole(options) {
|
|
158
|
+
const queryClient = useQueryClient();
|
|
159
|
+
return useMutation({
|
|
160
|
+
mutationFn: async (params) => {
|
|
161
|
+
const response = await options.apiClient.updateTenantMemberRole({
|
|
162
|
+
pathParams: { id: params.tenantId, userId: params.userId },
|
|
163
|
+
body: { role: params.role },
|
|
164
|
+
});
|
|
165
|
+
if (response.status !== 200)
|
|
166
|
+
throw new Error('Failed to update tenant member role');
|
|
167
|
+
const resBody = response.body;
|
|
168
|
+
return resBody?.data?.data;
|
|
169
|
+
},
|
|
170
|
+
onSuccess: (_data, variables) => {
|
|
171
|
+
queryClient.invalidateQueries({ queryKey: tenantKeys.members(variables.tenantId) });
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Use Create Tenant Invitation Mutation
|
|
177
|
+
*
|
|
178
|
+
* Creates an invitation to join a tenant.
|
|
179
|
+
*/
|
|
180
|
+
export function useCreateTenantInvitation(options) {
|
|
181
|
+
const queryClient = useQueryClient();
|
|
182
|
+
return useMutation({
|
|
183
|
+
mutationFn: async (params) => {
|
|
184
|
+
const response = await options.apiClient.createTenantInvitation({
|
|
185
|
+
pathParams: { id: params.tenantId },
|
|
186
|
+
body: {
|
|
187
|
+
email: params.email,
|
|
188
|
+
role: params.role ?? 'MEMBER',
|
|
189
|
+
expiresInDays: params.expiresInDays ?? 7,
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
if (response.status !== 200)
|
|
193
|
+
throw new Error('Failed to create tenant invitation');
|
|
194
|
+
const resBody = response.body;
|
|
195
|
+
return resBody?.data?.data;
|
|
196
|
+
},
|
|
197
|
+
onSuccess: (_data, variables) => {
|
|
198
|
+
queryClient.invalidateQueries({ queryKey: tenantKeys.invitations(variables.tenantId) });
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Use Respond to Tenant Invitation Mutation
|
|
204
|
+
*
|
|
205
|
+
* Responds to a tenant invitation (accept or decline).
|
|
206
|
+
*/
|
|
207
|
+
export function useRespondToTenantInvitation(options) {
|
|
208
|
+
const queryClient = useQueryClient();
|
|
209
|
+
return useMutation({
|
|
210
|
+
mutationFn: async (params) => {
|
|
211
|
+
const response = await options.apiClient.respondToTenantInvitation({
|
|
212
|
+
pathParams: { id: params.invitationId },
|
|
213
|
+
body: { accept: params.accept },
|
|
214
|
+
});
|
|
215
|
+
if (response.status !== 200)
|
|
216
|
+
throw new Error('Failed to respond to invitation');
|
|
217
|
+
return true;
|
|
218
|
+
},
|
|
219
|
+
onSuccess: () => {
|
|
220
|
+
queryClient.invalidateQueries({ queryKey: tenantKeys.all });
|
|
221
|
+
},
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Use Cancel Tenant Invitation Mutation
|
|
226
|
+
*
|
|
227
|
+
* Cancels a tenant invitation.
|
|
228
|
+
*/
|
|
229
|
+
export function useCancelTenantInvitation(options) {
|
|
230
|
+
const queryClient = useQueryClient();
|
|
231
|
+
return useMutation({
|
|
232
|
+
mutationFn: async (invitationId) => {
|
|
233
|
+
const response = await options.apiClient.cancelTenantInvitation({
|
|
234
|
+
pathParams: { id: invitationId },
|
|
235
|
+
});
|
|
236
|
+
if (response.status !== 200)
|
|
237
|
+
throw new Error('Failed to cancel invitation');
|
|
238
|
+
return true;
|
|
239
|
+
},
|
|
240
|
+
onSuccess: () => {
|
|
241
|
+
queryClient.invalidateQueries({ queryKey: tenantKeys.all });
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Use Update User Tenant Preference Mutation
|
|
247
|
+
*
|
|
248
|
+
* Updates user's tenant preferences.
|
|
249
|
+
*/
|
|
250
|
+
export function useUpdateUserTenantPreference(options) {
|
|
251
|
+
const queryClient = useQueryClient();
|
|
252
|
+
return useMutation({
|
|
253
|
+
mutationFn: async (params) => {
|
|
254
|
+
const response = await options.apiClient.updateUserTenantPreference({
|
|
255
|
+
pathParams: { id: params.userId },
|
|
256
|
+
body: {
|
|
257
|
+
defaultTenantId: params.defaultTenantId,
|
|
258
|
+
tenantOrder: params.tenantOrder,
|
|
259
|
+
hiddenTenantIds: params.hiddenTenantIds,
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
if (response.status !== 200)
|
|
263
|
+
throw new Error('Failed to update user tenant preference');
|
|
264
|
+
return true;
|
|
265
|
+
},
|
|
266
|
+
onSuccess: (_data, variables) => {
|
|
267
|
+
queryClient.invalidateQueries({ queryKey: tenantKeys.userPreferences(variables.userId) });
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=useTenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTenant.js","sourceRoot":"","sources":["../src/useTenant.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dofe/sso-hooks",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
"next-intl": "^4.0.0",
|
|
32
32
|
"react": "^19.0.0",
|
|
33
33
|
"sonner": "^2.0.0",
|
|
34
|
-
"zod": "^3.24.0"
|
|
34
|
+
"zod": "^3.24.0 || ^4.0.0",
|
|
35
|
+
"@tanstack/react-query": "^5.0.0"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
38
|
"@types/node": "^25.8.0",
|
|
@@ -40,7 +41,8 @@
|
|
|
40
41
|
"react": "^19.2.6",
|
|
41
42
|
"sonner": "^2.0.7",
|
|
42
43
|
"typescript": "^6.0.3",
|
|
43
|
-
"zod": "^
|
|
44
|
+
"zod": "^4.4.3",
|
|
45
|
+
"@tanstack/react-query": "^5.100.10"
|
|
44
46
|
},
|
|
45
47
|
"publishConfig": {
|
|
46
48
|
"access": "public"
|