@dofe/sso-hooks 0.1.6 → 0.1.8

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 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
@@ -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.ZodEffects<z.ZodObject<{
68
+ }): z.ZodObject<{
69
69
  [x: string]: z.ZodString;
70
- }, "strip", z.ZodTypeAny, {
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;;;;;;;;;;GAkBP"}
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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"}
@@ -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.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -28,19 +28,21 @@
28
28
  },
29
29
  "dependencies": {},
30
30
  "peerDependencies": {
31
+ "@tanstack/react-query": "^5.0.0",
31
32
  "next-intl": "^4.0.0",
32
33
  "react": "^19.0.0",
33
34
  "sonner": "^2.0.0",
34
- "zod": "^3.24.0"
35
+ "zod": "^3.24.0 || ^4.0.0"
35
36
  },
36
37
  "devDependencies": {
37
- "@types/node": "^25.8.0",
38
- "@types/react": "^19.2.14",
39
- "next-intl": "^4.0.0",
38
+ "@tanstack/react-query": "^5.100.11",
39
+ "@types/node": "^25.9.1",
40
+ "@types/react": "^19.2.15",
41
+ "next-intl": "^4.12.0",
40
42
  "react": "^19.2.6",
41
43
  "sonner": "^2.0.7",
42
44
  "typescript": "^6.0.3",
43
- "zod": "^3.24.0"
45
+ "zod": "^4.4.3"
44
46
  },
45
47
  "publishConfig": {
46
48
  "access": "public"