@dofe/sso-hooks 0.1.5 → 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/README.md +48 -55
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/useAspectRatioSize.d.ts.map +1 -1
- package/dist/useAspectRatioSize.js.map +1 -1
- package/dist/useHotkeys.d.ts.map +1 -1
- package/dist/useHotkeys.js +3 -11
- package/dist/useHotkeys.js.map +1 -1
- package/dist/useI18nValidation.d.ts +2 -10
- package/dist/useI18nValidation.d.ts.map +1 -1
- package/dist/useI18nValidation.js +2 -6
- package/dist/useI18nValidation.js.map +1 -1
- package/dist/usePermissions.d.ts.map +1 -1
- package/dist/usePermissions.js.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/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":"AAIA;;;;;;;;;;GAUG;AAGH,eAAO,MAAM,UAAU;;qBAEJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;iBAC3B,MAAM;wBACC,MAAM;4BACF,MAAM;0BACR,MAAM;8BACF,MAAM;CACjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE;QACT,SAAS,EAAE,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SAC5B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,gBAAgB,EAAE,CAAC,MAAM,EAAE;YACzB,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SAC5B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,eAAe,EAAE,CAAC,MAAM,EAAE;YACxB,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,kBAAkB,EAAE,CAAC,MAAM,EAAE;YAC3B,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;SAC5C,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,sBAAsB,EAAE,CAAC,MAAM,EAAE;YAC/B,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAA;aAAE,CAAC;YAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,oBAAoB,EAAE,CAAC,MAAM,EAAE;YAC7B,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SAC5B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,sBAAsB,EAAE,CAAC,MAAM,EAAE;YAC/B,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,yBAAyB,EAAE,CAAC,MAAM,EAAE;YAClC,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,sBAAsB,EAAE,CAAC,MAAM,EAAE;YAC/B,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SAC5B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,uBAAuB,EAAE,CAAC,MAAM,EAAE;YAChC,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SAC5B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,0BAA0B,EAAE,CAAC,MAAM,EAAE;YACnC,UAAU,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SAC/B,KAAK,OAAO,CAAC;YAAE,IAAI,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,qBAAqB,oEAY5F;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,EAAE,qBAAqB,oEAa/B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,OAAO,EAAE,qBAAqB,oEAe/B;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,OAAO,EAAE,qBAAqB,oEAe/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB;cAGtB,MAAM;YAAU,MAAM;WAAS,MAAM;YAgB/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB;cAGtB,MAAM;YAAU,MAAM;YAcnE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB;cAI1D,MAAM;YACR,MAAM;UACR,OAAO,GAAG,OAAO,GAAG,QAAQ;YAiBrC;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB;cAI1D,MAAM;WACT,MAAM;WACN,MAAM;oBACG,MAAM;YAqBzB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,qBAAqB;kBAIzD,MAAM;YACZ,OAAO;YAgBlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,sFAevE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,qBAAqB;YAIhE,MAAM;sBACI,MAAM;kBACV,MAAM,EAAE;sBACJ,MAAM,EAAE;YAoB7B"}
|