@burdenoff/microfe-workspaces 2026.518.3 → 2026.520.1
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/generated/global-operations.d.ts +40 -0
- package/dist/generated/global-operations.d.ts.map +1 -1
- package/dist/generated/global-operations.js +9 -1
- package/dist/generated/global-operations.js.map +1 -1
- package/dist/hooks/useOrgsWithPermission.d.ts +7 -0
- package/dist/hooks/useOrgsWithPermission.d.ts.map +1 -0
- package/dist/hooks/useOrgsWithPermission.js +55 -0
- package/dist/hooks/useOrgsWithPermission.js.map +1 -0
- package/dist/pages/CreateWorkspacePage.d.ts.map +1 -1
- package/dist/pages/CreateWorkspacePage.js +247 -238
- package/dist/pages/CreateWorkspacePage.js.map +1 -1
- package/package.json +2 -2
|
@@ -50,6 +50,16 @@ export type UpdateDashboardPreferencesMutation = {
|
|
|
50
50
|
__typename?: 'Mutation';
|
|
51
51
|
updateMyDashboardPreferences: Record<string, unknown>;
|
|
52
52
|
};
|
|
53
|
+
export type CheckRbacPermissionsQueryVariables = Types.Exact<{
|
|
54
|
+
inputs: Array<Types.PermissionCheckInput> | Types.PermissionCheckInput;
|
|
55
|
+
}>;
|
|
56
|
+
export type CheckRbacPermissionsQuery = {
|
|
57
|
+
__typename?: 'Query';
|
|
58
|
+
checkPermissions: Array<{
|
|
59
|
+
__typename?: 'PermissionCheckResult';
|
|
60
|
+
allowed: boolean;
|
|
61
|
+
}>;
|
|
62
|
+
};
|
|
53
63
|
export type GetGlobalMyWorkspacesQueryVariables = Types.Exact<{
|
|
54
64
|
limit?: Types.InputMaybe<Types.Scalars['Int']['input']>;
|
|
55
65
|
offset?: Types.InputMaybe<Types.Scalars['Int']['input']>;
|
|
@@ -175,6 +185,36 @@ export declare function useUpdateDashboardPreferencesMutation(baseOptions?: Apol
|
|
|
175
185
|
export type UpdateDashboardPreferencesMutationHookResult = ReturnType<typeof useUpdateDashboardPreferencesMutation>;
|
|
176
186
|
export type UpdateDashboardPreferencesMutationResult = Apollo.MutationResult<Types.UpdateDashboardPreferencesMutation>;
|
|
177
187
|
export type UpdateDashboardPreferencesMutationOptions = Apollo.BaseMutationOptions<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>;
|
|
188
|
+
export declare const CheckRbacPermissionsDocument: Apollo.DocumentNode;
|
|
189
|
+
/**
|
|
190
|
+
* __useCheckRbacPermissionsQuery__
|
|
191
|
+
*
|
|
192
|
+
* To run a query within a React component, call `useCheckRbacPermissionsQuery` and pass it any options that fit your needs.
|
|
193
|
+
* When your component renders, `useCheckRbacPermissionsQuery` returns an object from Apollo Client that contains loading, error, and data properties
|
|
194
|
+
* you can use to render your UI.
|
|
195
|
+
*
|
|
196
|
+
* @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* const { data, loading, error } = useCheckRbacPermissionsQuery({
|
|
200
|
+
* variables: {
|
|
201
|
+
* inputs: // value for 'inputs'
|
|
202
|
+
* },
|
|
203
|
+
* });
|
|
204
|
+
*/
|
|
205
|
+
export declare function useCheckRbacPermissionsQuery(baseOptions: ApolloReactHooks.QueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables> & ({
|
|
206
|
+
variables: Types.CheckRbacPermissionsQueryVariables;
|
|
207
|
+
skip?: boolean;
|
|
208
|
+
} | {
|
|
209
|
+
skip: boolean;
|
|
210
|
+
})): ApolloReactHooks.useQuery.Result<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables, "empty" | "complete" | "streaming", Types.CheckRbacPermissionsQueryVariables>;
|
|
211
|
+
export declare function useCheckRbacPermissionsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>): ApolloReactHooks.useLazyQuery.ResultTuple<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables, "empty" | "complete" | "streaming">;
|
|
212
|
+
export declare function useCheckRbacPermissionsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>;
|
|
213
|
+
export declare function useCheckRbacPermissionsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CheckRbacPermissionsQuery | undefined, Types.CheckRbacPermissionsQueryVariables>;
|
|
214
|
+
export type CheckRbacPermissionsQueryHookResult = ReturnType<typeof useCheckRbacPermissionsQuery>;
|
|
215
|
+
export type CheckRbacPermissionsLazyQueryHookResult = ReturnType<typeof useCheckRbacPermissionsLazyQuery>;
|
|
216
|
+
export type CheckRbacPermissionsSuspenseQueryHookResult = ReturnType<typeof useCheckRbacPermissionsSuspenseQuery>;
|
|
217
|
+
export type CheckRbacPermissionsQueryResult = Apollo.QueryResult<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>;
|
|
178
218
|
export declare const GetGlobalMyWorkspacesDocument: Apollo.DocumentNode;
|
|
179
219
|
/**
|
|
180
220
|
* __useGetGlobalMyWorkspacesQuery__
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-operations.d.ts","sourceRoot":"","sources":["../../src/generated/global-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"global-operations.d.ts","sourceRoot":"","sources":["../../src/generated/global-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,15 @@ var t = e`
|
|
|
39
39
|
mutation UpdateDashboardPreferences($input: UpdateDashboardPreferencesInput!) {
|
|
40
40
|
updateMyDashboardPreferences(input: $input)
|
|
41
41
|
}
|
|
42
|
-
|
|
42
|
+
`;
|
|
43
|
+
e`
|
|
44
|
+
query CheckRbacPermissions($inputs: [PermissionCheckInput!]!) {
|
|
45
|
+
checkPermissions(inputs: $inputs) {
|
|
46
|
+
allowed
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
var r = e`
|
|
43
51
|
query GetGlobalMyWorkspaces($limit: Int, $offset: Int) {
|
|
44
52
|
myWorkspaces(limit: $limit, offset: $offset) {
|
|
45
53
|
items {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-operations.js","names":[],"sources":["../../src/generated/global-operations.ts"],"sourcesContent":["// @ts-nocheck\nimport * as Types from './global-types';\n\nimport { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nimport * as ApolloReactHooks from '@apollo/client/react';\nconst defaultOptions = {} as const;\nexport type DashboardGlobalDataQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type DashboardGlobalDataQuery = { __typename?: 'Query', myDashboardPreferences?: Record<string, unknown> | null, currentUser?: { __typename?: 'User', id: string, email: string, firstName?: string | null, lastName?: string | null, name?: string | null, role: string, createdAt: string } | null, myWorkspaces: { __typename?: 'WorkspaceList', total: number, items: Array<{ __typename?: 'Workspace', id: string, name: string, status: Types.WorkspaceStatus, type: Types.WorkspaceType, createdAt: string, memberCount: number }> }, myOrganizations: { __typename?: 'OrganizationList', total: number, items: Array<{ __typename?: 'Organization', id: string, name: string, status: string, type: string, createdAt: string }> } };\n\nexport type UpdateDashboardPreferencesMutationVariables = Types.Exact<{\n input: Types.UpdateDashboardPreferencesInput;\n}>;\n\n\nexport type UpdateDashboardPreferencesMutation = { __typename?: 'Mutation', updateMyDashboardPreferences: Record<string, unknown> };\n\nexport type GetGlobalMyWorkspacesQueryVariables = Types.Exact<{\n limit?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n offset?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n}>;\n\n\nexport type GetGlobalMyWorkspacesQuery = { __typename?: 'Query', myWorkspaces: { __typename?: 'WorkspaceList', total: number, hasMore: boolean, items: Array<{ __typename?: 'Workspace', id: string, name: string, type: Types.WorkspaceType, status: Types.WorkspaceStatus, createdAt: string, updatedAt: string, memberCount: number }> } };\n\nexport type GetMyTenantsQueryVariables = Types.Exact<{\n limit?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n offset?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n}>;\n\n\nexport type GetMyTenantsQuery = { __typename?: 'Query', myTenants: { __typename?: 'TenantList', total: number, hasMore: boolean, items: Array<{ __typename?: 'Tenant', id: string, name: string, slug: string, status: Types.TenantStatus, type: Types.TenantType }> } };\n\nexport type GetMyOrganizationsQueryVariables = Types.Exact<{\n limit?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n offset?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n}>;\n\n\nexport type GetMyOrganizationsQuery = { __typename?: 'Query', myOrganizations: { __typename?: 'OrganizationList', total: number, hasMore: boolean, items: Array<{ __typename?: 'Organization', id: string, name: string, slug: string, tenantId: string }> } };\n\nexport type CreateGlobalWorkspaceMutationVariables = Types.Exact<{\n input: Types.CreateWorkspaceInput;\n}>;\n\n\nexport type CreateGlobalWorkspaceMutation = { __typename?: 'Mutation', createWorkspace: { __typename?: 'Workspace', id: string, name: string, slug: string, type: Types.WorkspaceType, status: Types.WorkspaceStatus, tenantId: string, organizationId?: string | null, createdAt: string } };\n\n\nexport const DashboardGlobalDataDocument = gql`\n query DashboardGlobalData {\n currentUser {\n id\n email\n firstName\n lastName\n name\n role\n createdAt\n }\n myDashboardPreferences\n myWorkspaces {\n items {\n id\n name\n status\n type\n createdAt\n memberCount\n }\n total\n }\n myOrganizations {\n items {\n id\n name\n status\n type\n createdAt\n }\n total\n }\n}\n `;\n\n/**\n * __useDashboardGlobalDataQuery__\n *\n * To run a query within a React component, call `useDashboardGlobalDataQuery` and pass it any options that fit your needs.\n * When your component renders, `useDashboardGlobalDataQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useDashboardGlobalDataQuery({\n * variables: {\n * },\n * });\n */\nexport function useDashboardGlobalDataQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>(DashboardGlobalDataDocument, options);\n }\nexport function useDashboardGlobalDataLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>(DashboardGlobalDataDocument, options);\n }\n// @ts-ignore\nexport function useDashboardGlobalDataSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>;\nexport function useDashboardGlobalDataSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.DashboardGlobalDataQuery | undefined, Types.DashboardGlobalDataQueryVariables>;\nexport function useDashboardGlobalDataSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>(DashboardGlobalDataDocument, options);\n }\nexport type DashboardGlobalDataQueryHookResult = ReturnType<typeof useDashboardGlobalDataQuery>;\nexport type DashboardGlobalDataLazyQueryHookResult = ReturnType<typeof useDashboardGlobalDataLazyQuery>;\nexport type DashboardGlobalDataSuspenseQueryHookResult = ReturnType<typeof useDashboardGlobalDataSuspenseQuery>;\nexport type DashboardGlobalDataQueryResult = Apollo.QueryResult<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>;\nexport const UpdateDashboardPreferencesDocument = gql`\n mutation UpdateDashboardPreferences($input: UpdateDashboardPreferencesInput!) {\n updateMyDashboardPreferences(input: $input)\n}\n `;\nexport type UpdateDashboardPreferencesMutationFn = Apollo.MutationFunction<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>;\n\n/**\n * __useUpdateDashboardPreferencesMutation__\n *\n * To run a mutation, you first call `useUpdateDashboardPreferencesMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateDashboardPreferencesMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateDashboardPreferencesMutation, { data, loading, error }] = useUpdateDashboardPreferencesMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useUpdateDashboardPreferencesMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useMutation<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>(UpdateDashboardPreferencesDocument, options);\n }\nexport type UpdateDashboardPreferencesMutationHookResult = ReturnType<typeof useUpdateDashboardPreferencesMutation>;\nexport type UpdateDashboardPreferencesMutationResult = Apollo.MutationResult<Types.UpdateDashboardPreferencesMutation>;\nexport type UpdateDashboardPreferencesMutationOptions = Apollo.BaseMutationOptions<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>;\nexport const GetGlobalMyWorkspacesDocument = gql`\n query GetGlobalMyWorkspaces($limit: Int, $offset: Int) {\n myWorkspaces(limit: $limit, offset: $offset) {\n items {\n id\n name\n type\n status\n createdAt\n updatedAt\n memberCount\n }\n total\n hasMore\n }\n}\n `;\n\n/**\n * __useGetGlobalMyWorkspacesQuery__\n *\n * To run a query within a React component, call `useGetGlobalMyWorkspacesQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetGlobalMyWorkspacesQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetGlobalMyWorkspacesQuery({\n * variables: {\n * limit: // value for 'limit'\n * offset: // value for 'offset'\n * },\n * });\n */\nexport function useGetGlobalMyWorkspacesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>(GetGlobalMyWorkspacesDocument, options);\n }\nexport function useGetGlobalMyWorkspacesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>(GetGlobalMyWorkspacesDocument, options);\n }\n// @ts-ignore\nexport function useGetGlobalMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>;\nexport function useGetGlobalMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetGlobalMyWorkspacesQuery | undefined, Types.GetGlobalMyWorkspacesQueryVariables>;\nexport function useGetGlobalMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>(GetGlobalMyWorkspacesDocument, options);\n }\nexport type GetGlobalMyWorkspacesQueryHookResult = ReturnType<typeof useGetGlobalMyWorkspacesQuery>;\nexport type GetGlobalMyWorkspacesLazyQueryHookResult = ReturnType<typeof useGetGlobalMyWorkspacesLazyQuery>;\nexport type GetGlobalMyWorkspacesSuspenseQueryHookResult = ReturnType<typeof useGetGlobalMyWorkspacesSuspenseQuery>;\nexport type GetGlobalMyWorkspacesQueryResult = Apollo.QueryResult<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>;\nexport const GetMyTenantsDocument = gql`\n query GetMyTenants($limit: Int, $offset: Int) {\n myTenants(limit: $limit, offset: $offset) {\n items {\n id\n name\n slug\n status\n type\n }\n total\n hasMore\n }\n}\n `;\n\n/**\n * __useGetMyTenantsQuery__\n *\n * To run a query within a React component, call `useGetMyTenantsQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMyTenantsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMyTenantsQuery({\n * variables: {\n * limit: // value for 'limit'\n * offset: // value for 'offset'\n * },\n * });\n */\nexport function useGetMyTenantsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>(GetMyTenantsDocument, options);\n }\nexport function useGetMyTenantsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>(GetMyTenantsDocument, options);\n }\n// @ts-ignore\nexport function useGetMyTenantsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>;\nexport function useGetMyTenantsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyTenantsQuery | undefined, Types.GetMyTenantsQueryVariables>;\nexport function useGetMyTenantsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>(GetMyTenantsDocument, options);\n }\nexport type GetMyTenantsQueryHookResult = ReturnType<typeof useGetMyTenantsQuery>;\nexport type GetMyTenantsLazyQueryHookResult = ReturnType<typeof useGetMyTenantsLazyQuery>;\nexport type GetMyTenantsSuspenseQueryHookResult = ReturnType<typeof useGetMyTenantsSuspenseQuery>;\nexport type GetMyTenantsQueryResult = Apollo.QueryResult<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>;\nexport const GetMyOrganizationsDocument = gql`\n query GetMyOrganizations($limit: Int, $offset: Int) {\n myOrganizations(limit: $limit, offset: $offset) {\n items {\n id\n name\n slug\n tenantId\n }\n total\n hasMore\n }\n}\n `;\n\n/**\n * __useGetMyOrganizationsQuery__\n *\n * To run a query within a React component, call `useGetMyOrganizationsQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMyOrganizationsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMyOrganizationsQuery({\n * variables: {\n * limit: // value for 'limit'\n * offset: // value for 'offset'\n * },\n * });\n */\nexport function useGetMyOrganizationsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>(GetMyOrganizationsDocument, options);\n }\nexport function useGetMyOrganizationsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>(GetMyOrganizationsDocument, options);\n }\n// @ts-ignore\nexport function useGetMyOrganizationsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>;\nexport function useGetMyOrganizationsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyOrganizationsQuery | undefined, Types.GetMyOrganizationsQueryVariables>;\nexport function useGetMyOrganizationsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>(GetMyOrganizationsDocument, options);\n }\nexport type GetMyOrganizationsQueryHookResult = ReturnType<typeof useGetMyOrganizationsQuery>;\nexport type GetMyOrganizationsLazyQueryHookResult = ReturnType<typeof useGetMyOrganizationsLazyQuery>;\nexport type GetMyOrganizationsSuspenseQueryHookResult = ReturnType<typeof useGetMyOrganizationsSuspenseQuery>;\nexport type GetMyOrganizationsQueryResult = Apollo.QueryResult<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>;\nexport const CreateGlobalWorkspaceDocument = gql`\n mutation CreateGlobalWorkspace($input: CreateWorkspaceInput!) {\n createWorkspace(input: $input) {\n id\n name\n slug\n type\n status\n tenantId\n organizationId\n createdAt\n }\n}\n `;\nexport type CreateGlobalWorkspaceMutationFn = Apollo.MutationFunction<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>;\n\n/**\n * __useCreateGlobalWorkspaceMutation__\n *\n * To run a mutation, you first call `useCreateGlobalWorkspaceMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useCreateGlobalWorkspaceMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [createGlobalWorkspaceMutation, { data, loading, error }] = useCreateGlobalWorkspaceMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useCreateGlobalWorkspaceMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useMutation<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>(CreateGlobalWorkspaceDocument, options);\n }\nexport type CreateGlobalWorkspaceMutationHookResult = ReturnType<typeof useCreateGlobalWorkspaceMutation>;\nexport type CreateGlobalWorkspaceMutationResult = Apollo.MutationResult<Types.CreateGlobalWorkspaceMutation>;\nexport type CreateGlobalWorkspaceMutationOptions = Apollo.BaseMutationOptions<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>;"],"mappings":";;;AAmDA,IAAa,IAA8B,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEjC,IAAqC,CAAG;;;;OA+BxC,IAAgC,CAAG;;;;;;;;;;;;;;;;;AAsDZ,CAAG;;;;;;;;;;;;;;OAoDG,CAAG;;;;;;;;;;;;;OAmDA,CAAG"}
|
|
1
|
+
{"version":3,"file":"global-operations.js","names":[],"sources":["../../src/generated/global-operations.ts"],"sourcesContent":["// @ts-nocheck\nimport * as Types from './global-types';\n\nimport { gql } from '@apollo/client';\nimport * as Apollo from '@apollo/client';\nimport * as ApolloReactHooks from '@apollo/client/react';\nconst defaultOptions = {} as const;\nexport type DashboardGlobalDataQueryVariables = Types.Exact<{ [key: string]: never; }>;\n\n\nexport type DashboardGlobalDataQuery = { __typename?: 'Query', myDashboardPreferences?: Record<string, unknown> | null, currentUser?: { __typename?: 'User', id: string, email: string, firstName?: string | null, lastName?: string | null, name?: string | null, role: string, createdAt: string } | null, myWorkspaces: { __typename?: 'WorkspaceList', total: number, items: Array<{ __typename?: 'Workspace', id: string, name: string, status: Types.WorkspaceStatus, type: Types.WorkspaceType, createdAt: string, memberCount: number }> }, myOrganizations: { __typename?: 'OrganizationList', total: number, items: Array<{ __typename?: 'Organization', id: string, name: string, status: string, type: string, createdAt: string }> } };\n\nexport type UpdateDashboardPreferencesMutationVariables = Types.Exact<{\n input: Types.UpdateDashboardPreferencesInput;\n}>;\n\n\nexport type UpdateDashboardPreferencesMutation = { __typename?: 'Mutation', updateMyDashboardPreferences: Record<string, unknown> };\n\nexport type CheckRbacPermissionsQueryVariables = Types.Exact<{\n inputs: Array<Types.PermissionCheckInput> | Types.PermissionCheckInput;\n}>;\n\n\nexport type CheckRbacPermissionsQuery = { __typename?: 'Query', checkPermissions: Array<{ __typename?: 'PermissionCheckResult', allowed: boolean }> };\n\nexport type GetGlobalMyWorkspacesQueryVariables = Types.Exact<{\n limit?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n offset?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n}>;\n\n\nexport type GetGlobalMyWorkspacesQuery = { __typename?: 'Query', myWorkspaces: { __typename?: 'WorkspaceList', total: number, hasMore: boolean, items: Array<{ __typename?: 'Workspace', id: string, name: string, type: Types.WorkspaceType, status: Types.WorkspaceStatus, createdAt: string, updatedAt: string, memberCount: number }> } };\n\nexport type GetMyTenantsQueryVariables = Types.Exact<{\n limit?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n offset?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n}>;\n\n\nexport type GetMyTenantsQuery = { __typename?: 'Query', myTenants: { __typename?: 'TenantList', total: number, hasMore: boolean, items: Array<{ __typename?: 'Tenant', id: string, name: string, slug: string, status: Types.TenantStatus, type: Types.TenantType }> } };\n\nexport type GetMyOrganizationsQueryVariables = Types.Exact<{\n limit?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n offset?: Types.InputMaybe<Types.Scalars['Int']['input']>;\n}>;\n\n\nexport type GetMyOrganizationsQuery = { __typename?: 'Query', myOrganizations: { __typename?: 'OrganizationList', total: number, hasMore: boolean, items: Array<{ __typename?: 'Organization', id: string, name: string, slug: string, tenantId: string }> } };\n\nexport type CreateGlobalWorkspaceMutationVariables = Types.Exact<{\n input: Types.CreateWorkspaceInput;\n}>;\n\n\nexport type CreateGlobalWorkspaceMutation = { __typename?: 'Mutation', createWorkspace: { __typename?: 'Workspace', id: string, name: string, slug: string, type: Types.WorkspaceType, status: Types.WorkspaceStatus, tenantId: string, organizationId?: string | null, createdAt: string } };\n\n\nexport const DashboardGlobalDataDocument = gql`\n query DashboardGlobalData {\n currentUser {\n id\n email\n firstName\n lastName\n name\n role\n createdAt\n }\n myDashboardPreferences\n myWorkspaces {\n items {\n id\n name\n status\n type\n createdAt\n memberCount\n }\n total\n }\n myOrganizations {\n items {\n id\n name\n status\n type\n createdAt\n }\n total\n }\n}\n `;\n\n/**\n * __useDashboardGlobalDataQuery__\n *\n * To run a query within a React component, call `useDashboardGlobalDataQuery` and pass it any options that fit your needs.\n * When your component renders, `useDashboardGlobalDataQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useDashboardGlobalDataQuery({\n * variables: {\n * },\n * });\n */\nexport function useDashboardGlobalDataQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>(DashboardGlobalDataDocument, options);\n }\nexport function useDashboardGlobalDataLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>(DashboardGlobalDataDocument, options);\n }\n// @ts-ignore\nexport function useDashboardGlobalDataSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>;\nexport function useDashboardGlobalDataSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.DashboardGlobalDataQuery | undefined, Types.DashboardGlobalDataQueryVariables>;\nexport function useDashboardGlobalDataSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>(DashboardGlobalDataDocument, options);\n }\nexport type DashboardGlobalDataQueryHookResult = ReturnType<typeof useDashboardGlobalDataQuery>;\nexport type DashboardGlobalDataLazyQueryHookResult = ReturnType<typeof useDashboardGlobalDataLazyQuery>;\nexport type DashboardGlobalDataSuspenseQueryHookResult = ReturnType<typeof useDashboardGlobalDataSuspenseQuery>;\nexport type DashboardGlobalDataQueryResult = Apollo.QueryResult<Types.DashboardGlobalDataQuery, Types.DashboardGlobalDataQueryVariables>;\nexport const UpdateDashboardPreferencesDocument = gql`\n mutation UpdateDashboardPreferences($input: UpdateDashboardPreferencesInput!) {\n updateMyDashboardPreferences(input: $input)\n}\n `;\nexport type UpdateDashboardPreferencesMutationFn = Apollo.MutationFunction<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>;\n\n/**\n * __useUpdateDashboardPreferencesMutation__\n *\n * To run a mutation, you first call `useUpdateDashboardPreferencesMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useUpdateDashboardPreferencesMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [updateDashboardPreferencesMutation, { data, loading, error }] = useUpdateDashboardPreferencesMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useUpdateDashboardPreferencesMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useMutation<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>(UpdateDashboardPreferencesDocument, options);\n }\nexport type UpdateDashboardPreferencesMutationHookResult = ReturnType<typeof useUpdateDashboardPreferencesMutation>;\nexport type UpdateDashboardPreferencesMutationResult = Apollo.MutationResult<Types.UpdateDashboardPreferencesMutation>;\nexport type UpdateDashboardPreferencesMutationOptions = Apollo.BaseMutationOptions<Types.UpdateDashboardPreferencesMutation, Types.UpdateDashboardPreferencesMutationVariables>;\nexport const CheckRbacPermissionsDocument = gql`\n query CheckRbacPermissions($inputs: [PermissionCheckInput!]!) {\n checkPermissions(inputs: $inputs) {\n allowed\n }\n}\n `;\n\n/**\n * __useCheckRbacPermissionsQuery__\n *\n * To run a query within a React component, call `useCheckRbacPermissionsQuery` and pass it any options that fit your needs.\n * When your component renders, `useCheckRbacPermissionsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useCheckRbacPermissionsQuery({\n * variables: {\n * inputs: // value for 'inputs'\n * },\n * });\n */\nexport function useCheckRbacPermissionsQuery(baseOptions: ApolloReactHooks.QueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables> & ({ variables: Types.CheckRbacPermissionsQueryVariables; skip?: boolean; } | { skip: boolean; }) ) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>(CheckRbacPermissionsDocument, options);\n }\nexport function useCheckRbacPermissionsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>(CheckRbacPermissionsDocument, options);\n }\n// @ts-ignore\nexport function useCheckRbacPermissionsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>;\nexport function useCheckRbacPermissionsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.CheckRbacPermissionsQuery | undefined, Types.CheckRbacPermissionsQueryVariables>;\nexport function useCheckRbacPermissionsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>(CheckRbacPermissionsDocument, options);\n }\nexport type CheckRbacPermissionsQueryHookResult = ReturnType<typeof useCheckRbacPermissionsQuery>;\nexport type CheckRbacPermissionsLazyQueryHookResult = ReturnType<typeof useCheckRbacPermissionsLazyQuery>;\nexport type CheckRbacPermissionsSuspenseQueryHookResult = ReturnType<typeof useCheckRbacPermissionsSuspenseQuery>;\nexport type CheckRbacPermissionsQueryResult = Apollo.QueryResult<Types.CheckRbacPermissionsQuery, Types.CheckRbacPermissionsQueryVariables>;\nexport const GetGlobalMyWorkspacesDocument = gql`\n query GetGlobalMyWorkspaces($limit: Int, $offset: Int) {\n myWorkspaces(limit: $limit, offset: $offset) {\n items {\n id\n name\n type\n status\n createdAt\n updatedAt\n memberCount\n }\n total\n hasMore\n }\n}\n `;\n\n/**\n * __useGetGlobalMyWorkspacesQuery__\n *\n * To run a query within a React component, call `useGetGlobalMyWorkspacesQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetGlobalMyWorkspacesQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetGlobalMyWorkspacesQuery({\n * variables: {\n * limit: // value for 'limit'\n * offset: // value for 'offset'\n * },\n * });\n */\nexport function useGetGlobalMyWorkspacesQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>(GetGlobalMyWorkspacesDocument, options);\n }\nexport function useGetGlobalMyWorkspacesLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>(GetGlobalMyWorkspacesDocument, options);\n }\n// @ts-ignore\nexport function useGetGlobalMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>;\nexport function useGetGlobalMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetGlobalMyWorkspacesQuery | undefined, Types.GetGlobalMyWorkspacesQueryVariables>;\nexport function useGetGlobalMyWorkspacesSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>(GetGlobalMyWorkspacesDocument, options);\n }\nexport type GetGlobalMyWorkspacesQueryHookResult = ReturnType<typeof useGetGlobalMyWorkspacesQuery>;\nexport type GetGlobalMyWorkspacesLazyQueryHookResult = ReturnType<typeof useGetGlobalMyWorkspacesLazyQuery>;\nexport type GetGlobalMyWorkspacesSuspenseQueryHookResult = ReturnType<typeof useGetGlobalMyWorkspacesSuspenseQuery>;\nexport type GetGlobalMyWorkspacesQueryResult = Apollo.QueryResult<Types.GetGlobalMyWorkspacesQuery, Types.GetGlobalMyWorkspacesQueryVariables>;\nexport const GetMyTenantsDocument = gql`\n query GetMyTenants($limit: Int, $offset: Int) {\n myTenants(limit: $limit, offset: $offset) {\n items {\n id\n name\n slug\n status\n type\n }\n total\n hasMore\n }\n}\n `;\n\n/**\n * __useGetMyTenantsQuery__\n *\n * To run a query within a React component, call `useGetMyTenantsQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMyTenantsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMyTenantsQuery({\n * variables: {\n * limit: // value for 'limit'\n * offset: // value for 'offset'\n * },\n * });\n */\nexport function useGetMyTenantsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>(GetMyTenantsDocument, options);\n }\nexport function useGetMyTenantsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>(GetMyTenantsDocument, options);\n }\n// @ts-ignore\nexport function useGetMyTenantsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>;\nexport function useGetMyTenantsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyTenantsQuery | undefined, Types.GetMyTenantsQueryVariables>;\nexport function useGetMyTenantsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>(GetMyTenantsDocument, options);\n }\nexport type GetMyTenantsQueryHookResult = ReturnType<typeof useGetMyTenantsQuery>;\nexport type GetMyTenantsLazyQueryHookResult = ReturnType<typeof useGetMyTenantsLazyQuery>;\nexport type GetMyTenantsSuspenseQueryHookResult = ReturnType<typeof useGetMyTenantsSuspenseQuery>;\nexport type GetMyTenantsQueryResult = Apollo.QueryResult<Types.GetMyTenantsQuery, Types.GetMyTenantsQueryVariables>;\nexport const GetMyOrganizationsDocument = gql`\n query GetMyOrganizations($limit: Int, $offset: Int) {\n myOrganizations(limit: $limit, offset: $offset) {\n items {\n id\n name\n slug\n tenantId\n }\n total\n hasMore\n }\n}\n `;\n\n/**\n * __useGetMyOrganizationsQuery__\n *\n * To run a query within a React component, call `useGetMyOrganizationsQuery` and pass it any options that fit your needs.\n * When your component renders, `useGetMyOrganizationsQuery` returns an object from Apollo Client that contains loading, error, and data properties\n * you can use to render your UI.\n *\n * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options;\n *\n * @example\n * const { data, loading, error } = useGetMyOrganizationsQuery({\n * variables: {\n * limit: // value for 'limit'\n * offset: // value for 'offset'\n * },\n * });\n */\nexport function useGetMyOrganizationsQuery(baseOptions?: ApolloReactHooks.QueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useQuery<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>(GetMyOrganizationsDocument, options);\n }\nexport function useGetMyOrganizationsLazyQuery(baseOptions?: ApolloReactHooks.LazyQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useLazyQuery<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>(GetMyOrganizationsDocument, options);\n }\n// @ts-ignore\nexport function useGetMyOrganizationsSuspenseQuery(baseOptions?: ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>;\nexport function useGetMyOrganizationsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>): ApolloReactHooks.UseSuspenseQueryResult<Types.GetMyOrganizationsQuery | undefined, Types.GetMyOrganizationsQueryVariables>;\nexport function useGetMyOrganizationsSuspenseQuery(baseOptions?: ApolloReactHooks.SkipToken | ApolloReactHooks.SuspenseQueryHookOptions<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>) {\n const options = baseOptions === ApolloReactHooks.skipToken ? baseOptions : {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useSuspenseQuery<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>(GetMyOrganizationsDocument, options);\n }\nexport type GetMyOrganizationsQueryHookResult = ReturnType<typeof useGetMyOrganizationsQuery>;\nexport type GetMyOrganizationsLazyQueryHookResult = ReturnType<typeof useGetMyOrganizationsLazyQuery>;\nexport type GetMyOrganizationsSuspenseQueryHookResult = ReturnType<typeof useGetMyOrganizationsSuspenseQuery>;\nexport type GetMyOrganizationsQueryResult = Apollo.QueryResult<Types.GetMyOrganizationsQuery, Types.GetMyOrganizationsQueryVariables>;\nexport const CreateGlobalWorkspaceDocument = gql`\n mutation CreateGlobalWorkspace($input: CreateWorkspaceInput!) {\n createWorkspace(input: $input) {\n id\n name\n slug\n type\n status\n tenantId\n organizationId\n createdAt\n }\n}\n `;\nexport type CreateGlobalWorkspaceMutationFn = Apollo.MutationFunction<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>;\n\n/**\n * __useCreateGlobalWorkspaceMutation__\n *\n * To run a mutation, you first call `useCreateGlobalWorkspaceMutation` within a React component and pass it any options that fit your needs.\n * When your component renders, `useCreateGlobalWorkspaceMutation` returns a tuple that includes:\n * - A mutate function that you can call at any time to execute the mutation\n * - An object with fields that represent the current status of the mutation's execution\n *\n * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2;\n *\n * @example\n * const [createGlobalWorkspaceMutation, { data, loading, error }] = useCreateGlobalWorkspaceMutation({\n * variables: {\n * input: // value for 'input'\n * },\n * });\n */\nexport function useCreateGlobalWorkspaceMutation(baseOptions?: ApolloReactHooks.MutationHookOptions<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>) {\n const options = {...defaultOptions, ...baseOptions}\n return ApolloReactHooks.useMutation<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>(CreateGlobalWorkspaceDocument, options);\n }\nexport type CreateGlobalWorkspaceMutationHookResult = ReturnType<typeof useCreateGlobalWorkspaceMutation>;\nexport type CreateGlobalWorkspaceMutationResult = Apollo.MutationResult<Types.CreateGlobalWorkspaceMutation>;\nexport type CreateGlobalWorkspaceMutationOptions = Apollo.BaseMutationOptions<Types.CreateGlobalWorkspaceMutation, Types.CreateGlobalWorkspaceMutationVariables>;"],"mappings":";;;AA0DA,IAAa,IAA8B,CAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEjC,IAAqC,CAAG;;;;;AA+BT,CAAG;;;;;;;AA2C/C,IAAa,IAAgC,CAAG;;;;;;;;;;;;;;;;;AAsDZ,CAAG;;;;;;;;;;;;;;OAoDG,CAAG;;;;;;;;;;;;;OAmDA,CAAG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface UseOrgsWithPermissionResult {
|
|
2
|
+
allowedIds: Set<string>;
|
|
3
|
+
loading: boolean;
|
|
4
|
+
isError: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function useOrgsWithPermission(orgIds: readonly string[], resourceType: string, action: string): UseOrgsWithPermissionResult;
|
|
7
|
+
//# sourceMappingURL=useOrgsWithPermission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrgsWithPermission.d.ts","sourceRoot":"","sources":["../../src/hooks/useOrgsWithPermission.ts"],"names":[],"mappings":"AAkDA,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,2BAA2B,CAkF7B"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
|
|
2
|
+
import { useMemo as t } from "react";
|
|
3
|
+
import { useAuth as n } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
4
|
+
import { useQuery as r } from "@tanstack/react-query";
|
|
5
|
+
import { graphqlFetch as i } from "@burdenoff/fe-libs/shared/graphql";
|
|
6
|
+
//#region src/hooks/useOrgsWithPermission.ts
|
|
7
|
+
var a = 50, o = "\n query CheckRbacPermissions($inputs: [PermissionCheckInput!]!) {\n checkPermissions(inputs: $inputs) {\n allowed\n }\n }\n";
|
|
8
|
+
function s(s, c, l) {
|
|
9
|
+
let { user: u } = n(), { authToken: d } = e(), f = u?.id ?? "", p = !!(f && s.length > 0), m = t(() => s.join(","), [s]), h = t(() => [...s], [m]), { data: g, isLoading: _, error: v } = r({
|
|
10
|
+
queryKey: [
|
|
11
|
+
"checkPermissions",
|
|
12
|
+
f,
|
|
13
|
+
c,
|
|
14
|
+
l,
|
|
15
|
+
m
|
|
16
|
+
],
|
|
17
|
+
enabled: p,
|
|
18
|
+
queryFn: async () => {
|
|
19
|
+
let e = [];
|
|
20
|
+
for (let t = 0; t < h.length; t += a) e.push(h.slice(t, t + a));
|
|
21
|
+
return (await Promise.all(e.map(async (e) => {
|
|
22
|
+
let t = await i({
|
|
23
|
+
gateway: "global",
|
|
24
|
+
authToken: d || void 0,
|
|
25
|
+
query: o,
|
|
26
|
+
variables: { inputs: e.map((e) => ({
|
|
27
|
+
actorId: f,
|
|
28
|
+
actorType: "USER",
|
|
29
|
+
scopeId: e,
|
|
30
|
+
resourceType: c,
|
|
31
|
+
action: l
|
|
32
|
+
})) }
|
|
33
|
+
});
|
|
34
|
+
if (t.errors?.length) throw Error(t.errors[0]?.message || "Failed to check permissions");
|
|
35
|
+
return t.data?.checkPermissions ?? [];
|
|
36
|
+
}))).flat();
|
|
37
|
+
},
|
|
38
|
+
staleTime: 60 * 1e3
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
allowedIds: t(() => {
|
|
42
|
+
let e = /* @__PURE__ */ new Set();
|
|
43
|
+
if (!g) return e;
|
|
44
|
+
let t = Math.min(g.length, h.length);
|
|
45
|
+
for (let n = 0; n < t; n += 1) g[n].allowed && h[n] && e.add(h[n]);
|
|
46
|
+
return e;
|
|
47
|
+
}, [g, h]),
|
|
48
|
+
loading: p && _,
|
|
49
|
+
isError: p && !!v
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { s as useOrgsWithPermission };
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=useOrgsWithPermission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOrgsWithPermission.js","names":[],"sources":["../../src/hooks/useOrgsWithPermission.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { graphqlFetch } from '@burdenoff/fe-libs/shared/graphql';\nimport { useAuth } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { useWorkspacesContext } from '../providers/WorkspacesProvider';\n\n/**\n * Filter a set of organization ids down to those where the current user has\n * a specific RBAC permission. Bulk-checks against the rbac service so the\n * result tracks the authoritative permission evaluator — including\n * overrides and future OPA policies — instead of duplicating role→permission\n * logic on the client.\n *\n * The server caps a single bulk call at `CHECK_PERMISSIONS_BATCH_LIMIT`\n * inputs, so when a user has more orgs than that we chunk into multiple\n * parallel calls and merge the results positionally. Most users will fit\n * in one batch; the chunking is just defensive for power users / service\n * accounts with many memberships.\n *\n * Backend `@rbac` directives still enforce on the mutation; this filter is\n * purely UX so users aren't offered options that will 403 on submit.\n *\n * Note: this MFE talks to the gateway via the shared `graphqlFetch` helper\n * + react-query (not Apollo), so we mirror that pattern instead of using\n * the codegen'd Apollo hook. The duplicate `.graphql` file at\n * `src/operations/global/rbac/check-permissions.graphql` is intentionally\n * kept so when this MFE eventually migrates to the codegen'd pattern (see\n * todo.md, \"Issue to address later\"), the operation already exists.\n */\n\n// Matches the server-side limit on `checkPermissions(inputs: [...])` —\n// kept here as a constant so the chunking intent is explicit.\nconst CHECK_PERMISSIONS_BATCH_LIMIT = 50;\n\n// `decisionPath` is intentionally NOT selected — only `allowed` drives\n// the UI here, and `decisionPath` exposes RBAC policy internals (role\n// names, override decisions) that we don't want to leak into network\n// traffic visible in browser devtools just for UX filtering.\nconst CHECK_PERMISSIONS_QUERY = `\n query CheckRbacPermissions($inputs: [PermissionCheckInput!]!) {\n checkPermissions(inputs: $inputs) {\n allowed\n }\n }\n`;\n\ninterface PermissionCheckResult {\n allowed: boolean;\n}\n\nexport interface UseOrgsWithPermissionResult {\n allowedIds: Set<string>;\n loading: boolean;\n isError: boolean;\n}\n\nexport function useOrgsWithPermission(\n orgIds: readonly string[],\n resourceType: string,\n action: string\n): UseOrgsWithPermissionResult {\n const { user } = useAuth();\n const { authToken } = useWorkspacesContext();\n const actorId = user?.id ?? '';\n\n const enabled = Boolean(actorId && orgIds.length > 0);\n\n // `stableIds` only needs to change when the *values* change — a fresh array\n // with identical contents shouldn't bust the query cache or trigger refetch.\n // Use the joined string as the memo key so deep-equal arrays share a memo.\n // Separator MUST be a char that can't appear in an id (',') — joining\n // on '' would collide on adjacency: ['ab','cd'] and ['a','bcd'] would\n // share a cache key.\n const stableKey = useMemo(() => orgIds.join(','), [orgIds]);\n const stableIds = useMemo(() => [...orgIds], [stableKey]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { data, isLoading, error } = useQuery({\n queryKey: ['checkPermissions', actorId, resourceType, action, stableKey],\n enabled,\n queryFn: async (): Promise<PermissionCheckResult[]> => {\n // Chunk into <=CHECK_PERMISSIONS_BATCH_LIMIT-sized batches so users\n // with more orgs than the server cap still get a complete answer.\n // Run batches in parallel and concat in input order so the\n // positional contract relied on below holds.\n const chunks: string[][] = [];\n for (let i = 0; i < stableIds.length; i += CHECK_PERMISSIONS_BATCH_LIMIT) {\n chunks.push(stableIds.slice(i, i + CHECK_PERMISSIONS_BATCH_LIMIT));\n }\n\n const batchResults = await Promise.all(\n chunks.map(async (chunk) => {\n const result = await graphqlFetch<{ checkPermissions: PermissionCheckResult[] }>({\n gateway: 'global',\n authToken: authToken || undefined,\n query: CHECK_PERMISSIONS_QUERY,\n variables: {\n inputs: chunk.map((scopeId) => ({\n actorId,\n actorType: 'USER',\n scopeId,\n resourceType,\n action,\n })),\n },\n });\n\n if (result.errors?.length) {\n throw new Error(result.errors[0]?.message || 'Failed to check permissions');\n }\n return result.data?.checkPermissions ?? [];\n })\n );\n\n return batchResults.flat();\n },\n staleTime: 60 * 1000,\n });\n\n const allowedIds = useMemo(() => {\n const out = new Set<string>();\n if (!data) return out;\n // Positional mapping is the documented contract of the bulk\n // `checkPermissions` API — results come back in the same order as\n // inputs. Length-guard against a backend that ever reorders/filters\n // so we never silently mis-attribute a permission to the wrong org.\n const bounded = Math.min(data.length, stableIds.length);\n for (let i = 0; i < bounded; i += 1) {\n if (data[i].allowed && stableIds[i]) out.add(stableIds[i]);\n }\n return out;\n }, [data, stableIds]);\n\n return {\n allowedIds,\n loading: enabled && isLoading,\n // Surface error so callers can decide between \"stay in loading state\"\n // and \"show an error\". Default behavior should be the former — the\n // backend @rbac directive still enforces correctly on submit, so it's\n // safer to keep the form visible than to lock the user out on a\n // transient rbac-svc blip.\n isError: enabled && Boolean(error),\n };\n}\n"],"mappings":";;;;;;AAgCA,IAAM,IAAgC,IAMhC,IAA0B;AAkBhC,SAAgB,EACd,GACA,GACA,GAC6B;CAC7B,IAAM,EAAE,YAAS,GAAS,EACpB,EAAE,iBAAc,GAAsB,EACtC,IAAU,GAAM,MAAM,IAEtB,IAAU,GAAQ,KAAW,EAAO,SAAS,IAQ7C,IAAY,QAAc,EAAO,KAAK,IAAI,EAAE,CAAC,EAAO,CAAC,EACrD,IAAY,QAAc,CAAC,GAAG,EAAO,EAAE,CAAC,EAAU,CAAC,EAEnD,EAAE,SAAM,cAAW,aAAU,EAAS;EAC1C,UAAU;GAAC;GAAoB;GAAS;GAAc;GAAQ;GAAU;EACxE;EACA,SAAS,YAA8C;GAKrD,IAAM,IAAqB,EAAE;AAC7B,QAAK,IAAI,IAAI,GAAG,IAAI,EAAU,QAAQ,KAAK,EACzC,GAAO,KAAK,EAAU,MAAM,GAAG,IAAI,EAA8B,CAAC;AA2BpE,WAxBqB,MAAM,QAAQ,IACjC,EAAO,IAAI,OAAO,MAAU;IAC1B,IAAM,IAAS,MAAM,EAA4D;KAC/E,SAAS;KACT,WAAW,KAAa,KAAA;KACxB,OAAO;KACP,WAAW,EACT,QAAQ,EAAM,KAAK,OAAa;MAC9B;MACA,WAAW;MACX;MACA;MACA;MACD,EAAE,EACJ;KACF,CAAC;AAEF,QAAI,EAAO,QAAQ,OACjB,OAAU,MAAM,EAAO,OAAO,IAAI,WAAW,8BAA8B;AAE7E,WAAO,EAAO,MAAM,oBAAoB,EAAE;KAC1C,CACH,EAEmB,MAAM;;EAE5B,WAAW,KAAK;EACjB,CAAC;AAgBF,QAAO;EACL,YAfiB,QAAc;GAC/B,IAAM,oBAAM,IAAI,KAAa;AAC7B,OAAI,CAAC,EAAM,QAAO;GAKlB,IAAM,IAAU,KAAK,IAAI,EAAK,QAAQ,EAAU,OAAO;AACvD,QAAK,IAAI,IAAI,GAAG,IAAI,GAAS,KAAK,EAChC,CAAI,EAAK,GAAG,WAAW,EAAU,MAAI,EAAI,IAAI,EAAU,GAAG;AAE5D,UAAO;KACN,CAAC,GAAM,EAAU,CAAC;EAInB,SAAS,KAAW;EAMpB,SAAS,KAAW,EAAQ;EAC7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateWorkspacePage.d.ts","sourceRoot":"","sources":["../../src/pages/CreateWorkspacePage.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"CreateWorkspacePage.d.ts","sourceRoot":"","sources":["../../src/pages/CreateWorkspacePage.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,mBAAmB,4CAgflC"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { useWorkspacesContext as e } from "../providers/WorkspacesProvider.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
2
|
+
import { tWithFallback as t } from "../utils/i18n.js";
|
|
3
|
+
import { useWorkspacesPageView as n } from "../hooks/useWorkspacesPageView.js";
|
|
4
|
+
import { useCreateWorkspace as r } from "../hooks/useWorkspaceMutations.js";
|
|
5
|
+
import { useMyOrganizations as i, useMyTenants as a } from "../hooks/useTenants.js";
|
|
6
|
+
import { generateSlug as o } from "../utils/slug.js";
|
|
7
|
+
import { useOrgsWithPermission as s } from "../hooks/useOrgsWithPermission.js";
|
|
8
8
|
import { useEffect as c, useMemo as l } from "react";
|
|
9
9
|
import { AlertCircle as u, ArrowLeft as d } from "lucide-react";
|
|
10
10
|
import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
11
11
|
import { Button as m, Card as h, CardContent as g, CardDescription as _, CardHeader as v, CardTitle as y, Skeleton as b } from "@burdenoff/fe-libs/ui";
|
|
12
12
|
import { Link as x, useNavigate as S } from "react-router-dom";
|
|
13
|
-
import { AccessDenied as C
|
|
14
|
-
import { useI18n as
|
|
15
|
-
import { useForm as
|
|
13
|
+
import { AccessDenied as C } from "@burdenoff/fe-libs/shared/components";
|
|
14
|
+
import { useI18n as w } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
15
|
+
import { useForm as T, z as E } from "@burdenoff/fe-libs/form";
|
|
16
16
|
//#region src/pages/CreateWorkspacePage.tsx
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
-
let { t:
|
|
20
|
-
name:
|
|
21
|
-
slug:
|
|
22
|
-
tenantId:
|
|
23
|
-
organizationId:
|
|
24
|
-
type:
|
|
25
|
-
}), [
|
|
26
|
-
schema:
|
|
17
|
+
function D() {
|
|
18
|
+
n("workspaces.create");
|
|
19
|
+
let { t: D } = w(), O = l(() => E.object({
|
|
20
|
+
name: E.string().min(2, t(D, "createWorkspace.validation.nameMin", "Name must be at least 2 characters")).max(100),
|
|
21
|
+
slug: E.string().min(2, t(D, "createWorkspace.validation.slugMin", "Slug must be at least 2 characters")).max(50).regex(/^[a-z0-9-]+$/, t(D, "createWorkspace.validation.slugFormat", "Slug can only contain lowercase letters, numbers, and hyphens")),
|
|
22
|
+
tenantId: E.string().min(1, t(D, "createWorkspace.validation.tenantRequired", "Please select a tenant")),
|
|
23
|
+
organizationId: E.string().min(1, t(D, "createWorkspace.validation.organizationRequired", "Please select an organization")),
|
|
24
|
+
type: E.enum(["TEAM", "PERSONAL"]).optional()
|
|
25
|
+
}), [D]), k = S(), { basePath: A = "/" } = e(), { mutate: j, isPending: M } = r(), { data: N, isLoading: P, error: F } = a(), { data: I, isLoading: L, error: R } = i(), z = N?.items ?? [], B = I?.items ?? [], V = l(() => z.find((e) => e.type === "SHARED" || e.slug === "burdenoff-shared")?.id ?? z[0]?.id ?? "", [z]), H = T({
|
|
26
|
+
schema: O,
|
|
27
27
|
defaultValues: {
|
|
28
28
|
name: "",
|
|
29
29
|
slug: "",
|
|
@@ -31,234 +31,243 @@ function O() {
|
|
|
31
31
|
organizationId: "",
|
|
32
32
|
type: "TEAM"
|
|
33
33
|
}
|
|
34
|
-
}),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
}), U = H.watch("tenantId"), W = H.watch("name"), { allowedIds: G, loading: K, isError: q } = s(l(() => B.map((e) => e.id), [B]), "workspace", "create"), J = l(() => U ? B.filter((e) => e.tenantId === U) : [], [U, B]), Y = l(() => q ? J : J.filter((e) => G.has(e.id)), [
|
|
35
|
+
J,
|
|
36
|
+
G,
|
|
37
|
+
q
|
|
38
|
+
]);
|
|
39
|
+
c(() => {
|
|
40
|
+
H.setValue("slug", W ? o(W) : "");
|
|
41
|
+
}, [W, H]), c(() => {
|
|
42
|
+
H.setValue("organizationId", "");
|
|
43
|
+
}, [U, H]), c(() => {
|
|
44
|
+
!H.getValues("tenantId") && V && H.setValue("tenantId", V, {
|
|
41
45
|
shouldDirty: !1,
|
|
42
46
|
shouldTouch: !1
|
|
43
47
|
});
|
|
44
|
-
}, [
|
|
45
|
-
let e =
|
|
46
|
-
!
|
|
48
|
+
}, [V, H]), c(() => {
|
|
49
|
+
let e = H.getValues("organizationId");
|
|
50
|
+
!Y.some((t) => t.id === e) && Y[0]?.id && H.setValue("organizationId", Y[0].id, {
|
|
47
51
|
shouldDirty: !1,
|
|
48
52
|
shouldTouch: !1
|
|
49
53
|
});
|
|
50
|
-
}, [
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
})]
|
|
68
|
-
}),
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
54
|
+
}, [Y, H]);
|
|
55
|
+
let X = (e) => {
|
|
56
|
+
j({
|
|
57
|
+
name: e.name,
|
|
58
|
+
slug: e.slug,
|
|
59
|
+
tenantId: e.tenantId,
|
|
60
|
+
organizationId: e.organizationId,
|
|
61
|
+
type: e.type
|
|
62
|
+
}, { onSuccess: (e) => {
|
|
63
|
+
k(`${A}/${e.id}`);
|
|
64
|
+
} });
|
|
65
|
+
}, Z = G.size > 0, Q = P || L || K, $ = !F && !R && B.length > 0;
|
|
66
|
+
return !Q && !q && $ && !Z ? /* @__PURE__ */ p("div", {
|
|
67
|
+
className: "p-6",
|
|
68
|
+
children: [/* @__PURE__ */ p(x, {
|
|
69
|
+
to: `${A}/list`,
|
|
70
|
+
className: "inline-flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors mb-6",
|
|
71
|
+
children: [/* @__PURE__ */ f(d, { size: 20 }), t(D, "createWorkspace.backToWorkspaces", "Back to Workspaces")]
|
|
72
|
+
}), /* @__PURE__ */ f(C, {
|
|
73
|
+
variant: "card",
|
|
74
|
+
title: t(D, "createWorkspace.permissionRequiredTitle", "Permission Required"),
|
|
75
|
+
description: t(D, "createWorkspace.permissionRequiredDescription", "You don't have permission to create workspaces in any of your organizations."),
|
|
76
|
+
details: t(D, "createWorkspace.permissionRequiredDetails", "Required: workspace:create"),
|
|
77
|
+
primaryAction: {
|
|
78
|
+
label: t(D, "createWorkspace.goBack", "Go Back"),
|
|
79
|
+
onClick: () => k(`${A}/list`)
|
|
80
|
+
}
|
|
81
|
+
})]
|
|
82
|
+
}) : /* @__PURE__ */ p("div", {
|
|
83
|
+
className: "space-y-4 sm:space-y-6 p-3 sm:p-6",
|
|
84
|
+
children: [/* @__PURE__ */ p(x, {
|
|
85
|
+
to: `${A}/list`,
|
|
86
|
+
className: "inline-flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors",
|
|
87
|
+
children: [/* @__PURE__ */ f(d, { size: 20 }), t(D, "createWorkspace.backToWorkspaces", "Back to Workspaces")]
|
|
88
|
+
}), /* @__PURE__ */ p(h, {
|
|
89
|
+
className: "max-w-2xl mx-auto",
|
|
90
|
+
children: [/* @__PURE__ */ p(v, { children: [/* @__PURE__ */ f(y, { children: t(D, "createWorkspace.title", "Create New Workspace") }), /* @__PURE__ */ f(_, { children: t(D, "createWorkspace.subtitle", "Set up a new workspace for your team or personal use") })] }), /* @__PURE__ */ p(g, { children: [q && /* @__PURE__ */ p("div", {
|
|
91
|
+
role: "alert",
|
|
92
|
+
className: "mb-4 flex items-start gap-2 rounded-md border border-warning/30 bg-warning/10 p-3 text-sm text-foreground",
|
|
93
|
+
children: [/* @__PURE__ */ f(u, {
|
|
94
|
+
size: 16,
|
|
95
|
+
className: "mt-0.5 shrink-0 text-warning"
|
|
96
|
+
}), /* @__PURE__ */ f("span", { children: t(D, "createWorkspace.permissionCheckUnavailable", "We couldn't verify your workspace-create permissions just now, so the organization list isn't filtered. If you submit and don't have access, the request will be rejected and you can retry.") })]
|
|
97
|
+
}), /* @__PURE__ */ p("form", {
|
|
98
|
+
onSubmit: H.handleSubmit(X),
|
|
99
|
+
className: "space-y-6",
|
|
100
|
+
children: [
|
|
101
|
+
/* @__PURE__ */ p("div", {
|
|
102
|
+
className: "space-y-2",
|
|
103
|
+
children: [
|
|
104
|
+
/* @__PURE__ */ f("label", {
|
|
105
|
+
htmlFor: "workspace-name",
|
|
106
|
+
className: "text-sm font-medium text-foreground",
|
|
107
|
+
children: t(D, "createWorkspace.nameLabel", "Workspace Name *")
|
|
108
|
+
}),
|
|
109
|
+
/* @__PURE__ */ f("input", {
|
|
110
|
+
id: "workspace-name",
|
|
111
|
+
placeholder: t(D, "createWorkspace.namePlaceholder", "My Workspace"),
|
|
112
|
+
className: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground",
|
|
113
|
+
...H.register("name")
|
|
114
|
+
}),
|
|
115
|
+
/* @__PURE__ */ f("p", {
|
|
116
|
+
className: "text-xs text-muted-foreground",
|
|
117
|
+
children: t(D, "createWorkspace.nameHint", "A descriptive name for your workspace")
|
|
118
|
+
}),
|
|
119
|
+
H.formState.errors.name?.message && /* @__PURE__ */ f("p", {
|
|
120
|
+
className: "text-sm text-destructive",
|
|
121
|
+
children: H.formState.errors.name.message
|
|
122
|
+
})
|
|
123
|
+
]
|
|
88
124
|
}),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
/* @__PURE__ */ f("
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
children:
|
|
204
|
-
}),
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
children: n(O, "createWorkspace.typePersonal", "Personal Workspace")
|
|
233
|
-
})]
|
|
234
|
-
}),
|
|
235
|
-
/* @__PURE__ */ f("p", {
|
|
236
|
-
className: "text-xs text-muted-foreground",
|
|
237
|
-
children: n(O, "createWorkspace.typeHint", "Choose between a collaborative workspace or a personal one")
|
|
238
|
-
})
|
|
239
|
-
]
|
|
240
|
-
}),
|
|
241
|
-
/* @__PURE__ */ p("div", {
|
|
242
|
-
className: "flex justify-end gap-3 pt-4",
|
|
243
|
-
children: [/* @__PURE__ */ f(m, {
|
|
244
|
-
type: "button",
|
|
245
|
-
variant: "outline",
|
|
246
|
-
onClick: () => A(`${j}/list`),
|
|
247
|
-
disabled: N,
|
|
248
|
-
children: n(O, "createWorkspace.cancel", "Cancel")
|
|
249
|
-
}), /* @__PURE__ */ f(m, {
|
|
250
|
-
type: "submit",
|
|
251
|
-
disabled: N || F || R,
|
|
252
|
-
children: N ? n(O, "createWorkspace.creating", "Creating...") : n(O, "createWorkspace.submit", "Create Workspace")
|
|
253
|
-
})]
|
|
254
|
-
})
|
|
255
|
-
]
|
|
256
|
-
}) })]
|
|
257
|
-
})]
|
|
258
|
-
})
|
|
125
|
+
/* @__PURE__ */ p("div", {
|
|
126
|
+
className: "space-y-2",
|
|
127
|
+
children: [
|
|
128
|
+
/* @__PURE__ */ f("label", {
|
|
129
|
+
htmlFor: "workspace-slug",
|
|
130
|
+
className: "text-sm font-medium text-foreground",
|
|
131
|
+
children: t(D, "createWorkspace.slugLabel", "Slug *")
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ f("input", {
|
|
134
|
+
id: "workspace-slug",
|
|
135
|
+
placeholder: t(D, "createWorkspace.slugPlaceholder", "my-workspace"),
|
|
136
|
+
className: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground",
|
|
137
|
+
...H.register("slug")
|
|
138
|
+
}),
|
|
139
|
+
/* @__PURE__ */ f("p", {
|
|
140
|
+
className: "text-xs text-muted-foreground",
|
|
141
|
+
children: t(D, "createWorkspace.slugHint", "URL-friendly identifier (auto-generated, but you can edit it)")
|
|
142
|
+
}),
|
|
143
|
+
H.formState.errors.slug?.message && /* @__PURE__ */ f("p", {
|
|
144
|
+
className: "text-sm text-destructive",
|
|
145
|
+
children: H.formState.errors.slug.message
|
|
146
|
+
})
|
|
147
|
+
]
|
|
148
|
+
}),
|
|
149
|
+
/* @__PURE__ */ p("div", {
|
|
150
|
+
className: "space-y-2",
|
|
151
|
+
children: [
|
|
152
|
+
/* @__PURE__ */ f("label", {
|
|
153
|
+
htmlFor: "workspace-tenant",
|
|
154
|
+
className: "text-sm font-medium text-foreground",
|
|
155
|
+
children: t(D, "createWorkspace.tenantLabel", "Tenant *")
|
|
156
|
+
}),
|
|
157
|
+
P ? /* @__PURE__ */ f(b, { className: "h-10 w-full" }) : F ? /* @__PURE__ */ p("div", {
|
|
158
|
+
className: "flex items-center gap-2 text-sm text-destructive",
|
|
159
|
+
children: [/* @__PURE__ */ f(u, { size: 16 }), t(D, "createWorkspace.failedToLoadTenants", "Failed to load tenants")]
|
|
160
|
+
}) : z.length === 0 ? /* @__PURE__ */ f("div", {
|
|
161
|
+
className: "text-sm text-muted-foreground",
|
|
162
|
+
children: t(D, "createWorkspace.noTenantsAvailable", "No tenants available. Contact your administrator.")
|
|
163
|
+
}) : /* @__PURE__ */ p("select", {
|
|
164
|
+
id: "workspace-tenant",
|
|
165
|
+
className: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground",
|
|
166
|
+
...H.register("tenantId"),
|
|
167
|
+
children: [/* @__PURE__ */ f("option", {
|
|
168
|
+
value: "",
|
|
169
|
+
children: t(D, "createWorkspace.selectTenantPlaceholder", "Select a tenant")
|
|
170
|
+
}), z.map((e) => /* @__PURE__ */ f("option", {
|
|
171
|
+
value: e.id,
|
|
172
|
+
children: e.name
|
|
173
|
+
}, e.id))]
|
|
174
|
+
}),
|
|
175
|
+
/* @__PURE__ */ f("p", {
|
|
176
|
+
className: "text-xs text-muted-foreground",
|
|
177
|
+
children: t(D, "createWorkspace.tenantHint", "Select which tenant this workspace belongs to")
|
|
178
|
+
}),
|
|
179
|
+
H.formState.errors.tenantId?.message && /* @__PURE__ */ f("p", {
|
|
180
|
+
className: "text-sm text-destructive",
|
|
181
|
+
children: H.formState.errors.tenantId.message
|
|
182
|
+
})
|
|
183
|
+
]
|
|
184
|
+
}),
|
|
185
|
+
/* @__PURE__ */ p("div", {
|
|
186
|
+
className: "space-y-2",
|
|
187
|
+
children: [
|
|
188
|
+
/* @__PURE__ */ f("label", {
|
|
189
|
+
htmlFor: "workspace-organization",
|
|
190
|
+
className: "text-sm font-medium text-foreground",
|
|
191
|
+
children: t(D, "createWorkspace.organizationLabel", "Organization *")
|
|
192
|
+
}),
|
|
193
|
+
L || K ? /* @__PURE__ */ f(b, { className: "h-10 w-full" }) : R ? /* @__PURE__ */ p("div", {
|
|
194
|
+
className: "flex items-center gap-2 text-sm text-destructive",
|
|
195
|
+
children: [/* @__PURE__ */ f(u, { size: 16 }), t(D, "createWorkspace.failedToLoadOrganizations", "Failed to load organizations")]
|
|
196
|
+
}) : U ? Y.length === 0 ? /* @__PURE__ */ f("div", {
|
|
197
|
+
className: "text-sm text-muted-foreground",
|
|
198
|
+
children: t(D, "createWorkspace.noOrganizationsFound", "No organizations found for this tenant")
|
|
199
|
+
}) : /* @__PURE__ */ p("select", {
|
|
200
|
+
id: "workspace-organization",
|
|
201
|
+
className: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground",
|
|
202
|
+
disabled: !U,
|
|
203
|
+
...H.register("organizationId"),
|
|
204
|
+
children: [/* @__PURE__ */ f("option", {
|
|
205
|
+
value: "",
|
|
206
|
+
children: t(D, "createWorkspace.selectOrganizationPlaceholder", "Select an organization")
|
|
207
|
+
}), Y.map((e) => /* @__PURE__ */ f("option", {
|
|
208
|
+
value: e.id,
|
|
209
|
+
children: e.name
|
|
210
|
+
}, e.id))]
|
|
211
|
+
}) : /* @__PURE__ */ f("div", {
|
|
212
|
+
className: "text-sm text-muted-foreground",
|
|
213
|
+
children: t(D, "createWorkspace.selectTenantFirst", "Please select a tenant first")
|
|
214
|
+
}),
|
|
215
|
+
/* @__PURE__ */ f("p", {
|
|
216
|
+
className: "text-xs text-muted-foreground",
|
|
217
|
+
children: t(D, "createWorkspace.organizationHint", "Select which organization owns this workspace")
|
|
218
|
+
}),
|
|
219
|
+
H.formState.errors.organizationId?.message && /* @__PURE__ */ f("p", {
|
|
220
|
+
className: "text-sm text-destructive",
|
|
221
|
+
children: H.formState.errors.organizationId.message
|
|
222
|
+
})
|
|
223
|
+
]
|
|
224
|
+
}),
|
|
225
|
+
/* @__PURE__ */ p("div", {
|
|
226
|
+
className: "space-y-2",
|
|
227
|
+
children: [
|
|
228
|
+
/* @__PURE__ */ f("label", {
|
|
229
|
+
htmlFor: "workspace-type",
|
|
230
|
+
className: "text-sm font-medium text-foreground",
|
|
231
|
+
children: t(D, "createWorkspace.typeLabel", "Workspace Type")
|
|
232
|
+
}),
|
|
233
|
+
/* @__PURE__ */ p("select", {
|
|
234
|
+
id: "workspace-type",
|
|
235
|
+
className: "h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground",
|
|
236
|
+
...H.register("type"),
|
|
237
|
+
children: [/* @__PURE__ */ f("option", {
|
|
238
|
+
value: "TEAM",
|
|
239
|
+
children: t(D, "createWorkspace.typeTeam", "Team Workspace")
|
|
240
|
+
}), /* @__PURE__ */ f("option", {
|
|
241
|
+
value: "PERSONAL",
|
|
242
|
+
children: t(D, "createWorkspace.typePersonal", "Personal Workspace")
|
|
243
|
+
})]
|
|
244
|
+
}),
|
|
245
|
+
/* @__PURE__ */ f("p", {
|
|
246
|
+
className: "text-xs text-muted-foreground",
|
|
247
|
+
children: t(D, "createWorkspace.typeHint", "Choose between a collaborative workspace or a personal one")
|
|
248
|
+
})
|
|
249
|
+
]
|
|
250
|
+
}),
|
|
251
|
+
/* @__PURE__ */ p("div", {
|
|
252
|
+
className: "flex justify-end gap-3 pt-4",
|
|
253
|
+
children: [/* @__PURE__ */ f(m, {
|
|
254
|
+
type: "button",
|
|
255
|
+
variant: "outline",
|
|
256
|
+
onClick: () => k(`${A}/list`),
|
|
257
|
+
disabled: M,
|
|
258
|
+
children: t(D, "createWorkspace.cancel", "Cancel")
|
|
259
|
+
}), /* @__PURE__ */ f(m, {
|
|
260
|
+
type: "submit",
|
|
261
|
+
disabled: M || P || L || K,
|
|
262
|
+
children: M ? t(D, "createWorkspace.creating", "Creating...") : t(D, "createWorkspace.submit", "Create Workspace")
|
|
263
|
+
})]
|
|
264
|
+
})
|
|
265
|
+
]
|
|
266
|
+
})] })]
|
|
267
|
+
})]
|
|
259
268
|
});
|
|
260
269
|
}
|
|
261
270
|
//#endregion
|
|
262
|
-
export {
|
|
271
|
+
export { D as CreateWorkspacePage };
|
|
263
272
|
|
|
264
273
|
//# sourceMappingURL=CreateWorkspacePage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateWorkspacePage.js","names":[],"sources":["../../src/pages/CreateWorkspacePage.tsx"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ArrowLeft, AlertCircle } from 'lucide-react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport {\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Skeleton,\n} from '@burdenoff/fe-libs/ui';\nimport { useForm, z } from '@burdenoff/fe-libs/form';\nimport { PermissionGate, AccessDenied } from '@burdenoff/fe-libs/shared/components';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { WORKSPACE_PERMISSIONS } from '../constants/permissions';\nimport { useCreateWorkspace } from '../hooks/useWorkspaceMutations';\nimport { useMyTenants, useMyOrganizations } from '../hooks/useTenants';\nimport { useWorkspacesContext } from '../providers/WorkspacesProvider';\nimport { useWorkspacesPageView } from '../hooks/useWorkspacesPageView';\nimport { generateSlug } from '../utils/slug';\nimport { tWithFallback } from '../utils/i18n';\n\ntype CreateWorkspaceFormData = {\n name: string;\n slug: string;\n tenantId: string;\n organizationId: string;\n type?: 'TEAM' | 'PERSONAL';\n};\n\nexport function CreateWorkspacePage() {\n useWorkspacesPageView('workspaces.create');\n const { t } = useI18n();\n const createWorkspaceSchema = useMemo(\n () =>\n z.object({\n name: z\n .string()\n .min(\n 2,\n tWithFallback(\n t,\n 'createWorkspace.validation.nameMin',\n 'Name must be at least 2 characters'\n )\n )\n .max(100),\n slug: z\n .string()\n .min(\n 2,\n tWithFallback(\n t,\n 'createWorkspace.validation.slugMin',\n 'Slug must be at least 2 characters'\n )\n )\n .max(50)\n .regex(\n /^[a-z0-9-]+$/,\n tWithFallback(\n t,\n 'createWorkspace.validation.slugFormat',\n 'Slug can only contain lowercase letters, numbers, and hyphens'\n )\n ),\n tenantId: z\n .string()\n .min(\n 1,\n tWithFallback(t, 'createWorkspace.validation.tenantRequired', 'Please select a tenant')\n ),\n organizationId: z\n .string()\n .min(\n 1,\n tWithFallback(\n t,\n 'createWorkspace.validation.organizationRequired',\n 'Please select an organization'\n )\n ),\n type: z.enum(['TEAM', 'PERSONAL']).optional(),\n }),\n [t]\n );\n\n const navigate = useNavigate();\n const { basePath = '/' } = useWorkspacesContext();\n const { mutate: createWorkspace, isPending } = useCreateWorkspace();\n const { data: tenantsData, isLoading: isLoadingTenants, error: tenantsError } = useMyTenants();\n const {\n data: organizationsData,\n isLoading: isLoadingOrganizations,\n error: organizationsError,\n } = useMyOrganizations();\n\n const tenants = tenantsData?.items ?? [];\n const allOrganizations = organizationsData?.items ?? [];\n\n const defaultTenantId = useMemo(() => {\n const sharedTenant = tenants.find(\n (tenant) => tenant.type === 'SHARED' || tenant.slug === 'burdenoff-shared'\n );\n return sharedTenant?.id ?? tenants[0]?.id ?? '';\n }, [tenants]);\n\n const form = useForm<CreateWorkspaceFormData>({\n schema: createWorkspaceSchema,\n defaultValues: {\n name: '',\n slug: '',\n tenantId: '',\n organizationId: '',\n type: 'TEAM',\n },\n });\n\n const selectedTenantId = form.watch('tenantId');\n const workspaceName = form.watch('name');\n\n // Filter organizations by selected tenant\n const filteredOrganizations = useMemo(() => {\n if (!selectedTenantId) return [];\n return allOrganizations.filter((org) => org.tenantId === selectedTenantId);\n }, [selectedTenantId, allOrganizations]);\n\n // Auto-generate slug from name (clear when name is empty)\n useEffect(() => {\n form.setValue('slug', workspaceName ? generateSlug(workspaceName) : '');\n }, [workspaceName, form]);\n\n // Reset organizationId when tenant changes\n useEffect(() => {\n form.setValue('organizationId', '');\n }, [selectedTenantId, form]);\n\n useEffect(() => {\n if (!form.getValues('tenantId') && defaultTenantId) {\n form.setValue('tenantId', defaultTenantId, {\n shouldDirty: false,\n shouldTouch: false,\n });\n }\n }, [defaultTenantId, form]);\n\n useEffect(() => {\n const currentOrganizationId = form.getValues('organizationId');\n const hasCurrentOrganization = filteredOrganizations.some(\n (organization) => organization.id === currentOrganizationId\n );\n\n if (!hasCurrentOrganization && filteredOrganizations[0]?.id) {\n form.setValue('organizationId', filteredOrganizations[0].id, {\n shouldDirty: false,\n shouldTouch: false,\n });\n }\n }, [filteredOrganizations, form]);\n\n const onSubmit = (data: CreateWorkspaceFormData) => {\n createWorkspace(\n {\n name: data.name,\n slug: data.slug,\n tenantId: data.tenantId,\n organizationId: data.organizationId,\n type: data.type,\n },\n {\n onSuccess: (newWorkspace) => {\n // Navigate to the new workspace\n navigate(`${basePath}/${newWorkspace.id}`);\n },\n }\n );\n };\n\n return (\n <PermissionGate\n permission={WORKSPACE_PERMISSIONS.WORKSPACE_CREATE}\n fallback={\n <div className=\"p-6\">\n <Link\n to={`${basePath}/list`}\n className=\"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors mb-6\"\n >\n <ArrowLeft size={20} />\n {tWithFallback(t, 'createWorkspace.backToWorkspaces', 'Back to Workspaces')}\n </Link>\n <AccessDenied\n variant=\"card\"\n title={tWithFallback(\n t,\n 'createWorkspace.permissionRequiredTitle',\n 'Permission Required'\n )}\n description={tWithFallback(\n t,\n 'createWorkspace.permissionRequiredDescription',\n \"You don't have permission to create workspaces.\"\n )}\n details={tWithFallback(\n t,\n 'createWorkspace.permissionRequiredDetails',\n 'Required: workspace:create'\n )}\n primaryAction={{\n label: tWithFallback(t, 'createWorkspace.goBack', 'Go Back'),\n onClick: () => navigate(`${basePath}/list`),\n }}\n />\n </div>\n }\n >\n <div className=\"space-y-4 sm:space-y-6 p-3 sm:p-6\">\n {/* Back link */}\n <Link\n to={`${basePath}/list`}\n className=\"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors\"\n >\n <ArrowLeft size={20} />\n {tWithFallback(t, 'createWorkspace.backToWorkspaces', 'Back to Workspaces')}\n </Link>\n\n {/* Form card */}\n <Card className=\"max-w-2xl mx-auto\">\n <CardHeader>\n <CardTitle>\n {tWithFallback(t, 'createWorkspace.title', 'Create New Workspace')}\n </CardTitle>\n <CardDescription>\n {tWithFallback(\n t,\n 'createWorkspace.subtitle',\n 'Set up a new workspace for your team or personal use'\n )}\n </CardDescription>\n </CardHeader>\n <CardContent>\n <form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-6\">\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-name\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.nameLabel', 'Workspace Name *')}\n </label>\n <input\n id=\"workspace-name\"\n placeholder={tWithFallback(t, 'createWorkspace.namePlaceholder', 'My Workspace')}\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('name')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.nameHint',\n 'A descriptive name for your workspace'\n )}\n </p>\n {form.formState.errors.name?.message && (\n <p className=\"text-sm text-destructive\">{form.formState.errors.name.message}</p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-slug\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.slugLabel', 'Slug *')}\n </label>\n <input\n id=\"workspace-slug\"\n placeholder={tWithFallback(t, 'createWorkspace.slugPlaceholder', 'my-workspace')}\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('slug')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.slugHint',\n 'URL-friendly identifier (auto-generated, but you can edit it)'\n )}\n </p>\n {form.formState.errors.slug?.message && (\n <p className=\"text-sm text-destructive\">{form.formState.errors.slug.message}</p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-tenant\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.tenantLabel', 'Tenant *')}\n </label>\n {isLoadingTenants ? (\n <Skeleton className=\"h-10 w-full\" />\n ) : tenantsError ? (\n <div className=\"flex items-center gap-2 text-sm text-destructive\">\n <AlertCircle size={16} />\n {tWithFallback(\n t,\n 'createWorkspace.failedToLoadTenants',\n 'Failed to load tenants'\n )}\n </div>\n ) : tenants.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.noTenantsAvailable',\n 'No tenants available. Contact your administrator.'\n )}\n </div>\n ) : (\n <select\n id=\"workspace-tenant\"\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('tenantId')}\n >\n <option value=\"\">\n {tWithFallback(\n t,\n 'createWorkspace.selectTenantPlaceholder',\n 'Select a tenant'\n )}\n </option>\n {tenants.map((tenant) => (\n <option key={tenant.id} value={tenant.id}>\n {tenant.name}\n </option>\n ))}\n </select>\n )}\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.tenantHint',\n 'Select which tenant this workspace belongs to'\n )}\n </p>\n {form.formState.errors.tenantId?.message && (\n <p className=\"text-sm text-destructive\">\n {form.formState.errors.tenantId.message}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label\n htmlFor=\"workspace-organization\"\n className=\"text-sm font-medium text-foreground\"\n >\n {tWithFallback(t, 'createWorkspace.organizationLabel', 'Organization *')}\n </label>\n {isLoadingOrganizations ? (\n <Skeleton className=\"h-10 w-full\" />\n ) : organizationsError ? (\n <div className=\"flex items-center gap-2 text-sm text-destructive\">\n <AlertCircle size={16} />\n {tWithFallback(\n t,\n 'createWorkspace.failedToLoadOrganizations',\n 'Failed to load organizations'\n )}\n </div>\n ) : !selectedTenantId ? (\n <div className=\"text-sm text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.selectTenantFirst',\n 'Please select a tenant first'\n )}\n </div>\n ) : filteredOrganizations.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.noOrganizationsFound',\n 'No organizations found for this tenant'\n )}\n </div>\n ) : (\n <select\n id=\"workspace-organization\"\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n disabled={!selectedTenantId}\n {...form.register('organizationId')}\n >\n <option value=\"\">\n {tWithFallback(\n t,\n 'createWorkspace.selectOrganizationPlaceholder',\n 'Select an organization'\n )}\n </option>\n {filteredOrganizations.map((org) => (\n <option key={org.id} value={org.id}>\n {org.name}\n </option>\n ))}\n </select>\n )}\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.organizationHint',\n 'Select which organization owns this workspace'\n )}\n </p>\n {form.formState.errors.organizationId?.message && (\n <p className=\"text-sm text-destructive\">\n {form.formState.errors.organizationId.message}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-type\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.typeLabel', 'Workspace Type')}\n </label>\n <select\n id=\"workspace-type\"\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('type')}\n >\n <option value=\"TEAM\">\n {tWithFallback(t, 'createWorkspace.typeTeam', 'Team Workspace')}\n </option>\n <option value=\"PERSONAL\">\n {tWithFallback(t, 'createWorkspace.typePersonal', 'Personal Workspace')}\n </option>\n </select>\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.typeHint',\n 'Choose between a collaborative workspace or a personal one'\n )}\n </p>\n </div>\n\n <div className=\"flex justify-end gap-3 pt-4\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => navigate(`${basePath}/list`)}\n disabled={isPending}\n >\n {tWithFallback(t, 'createWorkspace.cancel', 'Cancel')}\n </Button>\n <Button\n type=\"submit\"\n disabled={isPending || isLoadingTenants || isLoadingOrganizations}\n >\n {isPending\n ? tWithFallback(t, 'createWorkspace.creating', 'Creating...')\n : tWithFallback(t, 'createWorkspace.submit', 'Create Workspace')}\n </Button>\n </div>\n </form>\n </CardContent>\n </Card>\n </div>\n </PermissionGate>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreateWorkspacePage.js","names":[],"sources":["../../src/pages/CreateWorkspacePage.tsx"],"sourcesContent":["import { useEffect, useMemo } from 'react';\nimport { ArrowLeft, AlertCircle } from 'lucide-react';\nimport { Link, useNavigate } from 'react-router-dom';\nimport {\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Skeleton,\n} from '@burdenoff/fe-libs/ui';\nimport { useForm, z } from '@burdenoff/fe-libs/form';\nimport { AccessDenied } from '@burdenoff/fe-libs/shared/components';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useCreateWorkspace } from '../hooks/useWorkspaceMutations';\nimport { useMyTenants, useMyOrganizations } from '../hooks/useTenants';\nimport { useOrgsWithPermission } from '../hooks/useOrgsWithPermission';\nimport { useWorkspacesContext } from '../providers/WorkspacesProvider';\nimport { useWorkspacesPageView } from '../hooks/useWorkspacesPageView';\nimport { generateSlug } from '../utils/slug';\nimport { tWithFallback } from '../utils/i18n';\n\ntype CreateWorkspaceFormData = {\n name: string;\n slug: string;\n tenantId: string;\n organizationId: string;\n type?: 'TEAM' | 'PERSONAL';\n};\n\nexport function CreateWorkspacePage() {\n useWorkspacesPageView('workspaces.create');\n const { t } = useI18n();\n const createWorkspaceSchema = useMemo(\n () =>\n z.object({\n name: z\n .string()\n .min(\n 2,\n tWithFallback(\n t,\n 'createWorkspace.validation.nameMin',\n 'Name must be at least 2 characters'\n )\n )\n .max(100),\n slug: z\n .string()\n .min(\n 2,\n tWithFallback(\n t,\n 'createWorkspace.validation.slugMin',\n 'Slug must be at least 2 characters'\n )\n )\n .max(50)\n .regex(\n /^[a-z0-9-]+$/,\n tWithFallback(\n t,\n 'createWorkspace.validation.slugFormat',\n 'Slug can only contain lowercase letters, numbers, and hyphens'\n )\n ),\n tenantId: z\n .string()\n .min(\n 1,\n tWithFallback(t, 'createWorkspace.validation.tenantRequired', 'Please select a tenant')\n ),\n organizationId: z\n .string()\n .min(\n 1,\n tWithFallback(\n t,\n 'createWorkspace.validation.organizationRequired',\n 'Please select an organization'\n )\n ),\n type: z.enum(['TEAM', 'PERSONAL']).optional(),\n }),\n [t]\n );\n\n const navigate = useNavigate();\n const { basePath = '/' } = useWorkspacesContext();\n const { mutate: createWorkspace, isPending } = useCreateWorkspace();\n const { data: tenantsData, isLoading: isLoadingTenants, error: tenantsError } = useMyTenants();\n const {\n data: organizationsData,\n isLoading: isLoadingOrganizations,\n error: organizationsError,\n } = useMyOrganizations();\n\n const tenants = tenantsData?.items ?? [];\n const allOrganizations = organizationsData?.items ?? [];\n\n const defaultTenantId = useMemo(() => {\n const sharedTenant = tenants.find(\n (tenant) => tenant.type === 'SHARED' || tenant.slug === 'burdenoff-shared'\n );\n return sharedTenant?.id ?? tenants[0]?.id ?? '';\n }, [tenants]);\n\n const form = useForm<CreateWorkspaceFormData>({\n schema: createWorkspaceSchema,\n defaultValues: {\n name: '',\n slug: '',\n tenantId: '',\n organizationId: '',\n type: 'TEAM',\n },\n });\n\n const selectedTenantId = form.watch('tenantId');\n const workspaceName = form.watch('name');\n\n // Check workspace:create permission across ALL the user's orgs up front\n // (bulk-checked in a single rbac round-trip). This is the authoritative\n // gate — only orgs where the user can actually create a workspace make\n // it into the dropdown, and the page can decisively render the \"no\n // permissions anywhere\" state once the check resolves.\n const allOrgIds = useMemo(() => allOrganizations.map((o) => o.id), [allOrganizations]);\n const {\n allowedIds: workspaceCreateAllowedOrgIds,\n loading: isCheckingOrgPermissions,\n isError: orgPermissionsHadError,\n } = useOrgsWithPermission(allOrgIds, 'workspace', 'create');\n\n // Filter organizations by selected tenant AND permission. When the rbac\n // permission lookup errored we deliberately skip the permission filter\n // (see `orgPermissionsHadError` block below) — the gateway @rbac\n // directive on `createWorkspace` is the authoritative gate, so it's\n // safer to let the user pick from the full tenant list and hit a 403 on\n // submit than to lock them out of a flow they actually have access to.\n const tenantOrganizations = useMemo(() => {\n if (!selectedTenantId) return [];\n return allOrganizations.filter((org) => org.tenantId === selectedTenantId);\n }, [selectedTenantId, allOrganizations]);\n const filteredOrganizations = useMemo(() => {\n if (orgPermissionsHadError) return tenantOrganizations;\n return tenantOrganizations.filter((org) => workspaceCreateAllowedOrgIds.has(org.id));\n }, [tenantOrganizations, workspaceCreateAllowedOrgIds, orgPermissionsHadError]);\n\n // Auto-generate slug from name (clear when name is empty)\n useEffect(() => {\n form.setValue('slug', workspaceName ? generateSlug(workspaceName) : '');\n }, [workspaceName, form]);\n\n // Reset organizationId when tenant changes\n useEffect(() => {\n form.setValue('organizationId', '');\n }, [selectedTenantId, form]);\n\n useEffect(() => {\n if (!form.getValues('tenantId') && defaultTenantId) {\n form.setValue('tenantId', defaultTenantId, {\n shouldDirty: false,\n shouldTouch: false,\n });\n }\n }, [defaultTenantId, form]);\n\n useEffect(() => {\n const currentOrganizationId = form.getValues('organizationId');\n const hasCurrentOrganization = filteredOrganizations.some(\n (organization) => organization.id === currentOrganizationId\n );\n\n if (!hasCurrentOrganization && filteredOrganizations[0]?.id) {\n form.setValue('organizationId', filteredOrganizations[0].id, {\n shouldDirty: false,\n shouldTouch: false,\n });\n }\n }, [filteredOrganizations, form]);\n\n const onSubmit = (data: CreateWorkspaceFormData) => {\n createWorkspace(\n {\n name: data.name,\n slug: data.slug,\n tenantId: data.tenantId,\n organizationId: data.organizationId,\n type: data.type,\n },\n {\n onSuccess: (newWorkspace) => {\n // Navigate to the new workspace\n navigate(`${basePath}/${newWorkspace.id}`);\n },\n }\n );\n };\n\n // `workspace:create` is an org-scoped permission. Page-level `PermissionGate`\n // resolved at the outer shell scope and incorrectly denied users who *do*\n // have the permission inside at least one of their orgs. The authoritative\n // gate now lives on the org dropdown (only orgs where the user has\n // workspace:create are listed via useOrgsWithPermission) and on the gateway\n // @rbac directive enforcing the createWorkspace mutation. We still want a\n // clear \"you can't create anywhere\" empty state — once tenants and org\n // permission lookups have settled, if no org is eligible we render it.\n // The AccessDenied empty-state should ONLY render when we know with\n // certainty that the user has no creatable org. That requires:\n // 1. tenants + organizations queries both succeeded (otherwise an\n // empty `allOrganizations` is a data-fetch failure, not an authz\n // failure — masking it as \"permission denied\" hides the real\n // error and offers the user no path to retry),\n // 2. the rbac permission lookup also succeeded (errors there fall\n // through to the unfiltered form via the warning banner below),\n // 3. and even then, only when the user has at least one org but none\n // of them allow workspace:create.\n // If `allOrganizations` is empty because the user genuinely belongs to\n // no orgs, the inner \"no organizations found for this tenant\" message\n // is a better surface than an authz-denied page.\n const hasAnyCreatableOrg = workspaceCreateAllowedOrgIds.size > 0;\n const stillResolvingPermissions =\n isLoadingTenants || isLoadingOrganizations || isCheckingOrgPermissions;\n const orgDataLoadedSuccessfully =\n !tenantsError && !organizationsError && allOrganizations.length > 0;\n if (\n !stillResolvingPermissions &&\n !orgPermissionsHadError &&\n orgDataLoadedSuccessfully &&\n !hasAnyCreatableOrg\n ) {\n return (\n <div className=\"p-6\">\n <Link\n to={`${basePath}/list`}\n className=\"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors mb-6\"\n >\n <ArrowLeft size={20} />\n {tWithFallback(t, 'createWorkspace.backToWorkspaces', 'Back to Workspaces')}\n </Link>\n <AccessDenied\n variant=\"card\"\n title={tWithFallback(t, 'createWorkspace.permissionRequiredTitle', 'Permission Required')}\n description={tWithFallback(\n t,\n 'createWorkspace.permissionRequiredDescription',\n \"You don't have permission to create workspaces in any of your organizations.\"\n )}\n details={tWithFallback(\n t,\n 'createWorkspace.permissionRequiredDetails',\n 'Required: workspace:create'\n )}\n primaryAction={{\n label: tWithFallback(t, 'createWorkspace.goBack', 'Go Back'),\n onClick: () => navigate(`${basePath}/list`),\n }}\n />\n </div>\n );\n }\n\n return (\n <div className=\"space-y-4 sm:space-y-6 p-3 sm:p-6\">\n {/* Back link */}\n <Link\n to={`${basePath}/list`}\n className=\"inline-flex items-center gap-2 text-muted-foreground hover:text-foreground transition-colors\"\n >\n <ArrowLeft size={20} />\n {tWithFallback(t, 'createWorkspace.backToWorkspaces', 'Back to Workspaces')}\n </Link>\n\n {/* Form card */}\n <Card className=\"max-w-2xl mx-auto\">\n <CardHeader>\n <CardTitle>{tWithFallback(t, 'createWorkspace.title', 'Create New Workspace')}</CardTitle>\n <CardDescription>\n {tWithFallback(\n t,\n 'createWorkspace.subtitle',\n 'Set up a new workspace for your team or personal use'\n )}\n </CardDescription>\n </CardHeader>\n <CardContent>\n {orgPermissionsHadError && (\n <div\n role=\"alert\"\n className=\"mb-4 flex items-start gap-2 rounded-md border border-warning/30 bg-warning/10 p-3 text-sm text-foreground\"\n >\n <AlertCircle size={16} className=\"mt-0.5 shrink-0 text-warning\" />\n <span>\n {tWithFallback(\n t,\n 'createWorkspace.permissionCheckUnavailable',\n \"We couldn't verify your workspace-create permissions just now, so the organization list isn't filtered. If you submit and don't have access, the request will be rejected and you can retry.\"\n )}\n </span>\n </div>\n )}\n <form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-6\">\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-name\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.nameLabel', 'Workspace Name *')}\n </label>\n <input\n id=\"workspace-name\"\n placeholder={tWithFallback(t, 'createWorkspace.namePlaceholder', 'My Workspace')}\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('name')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.nameHint',\n 'A descriptive name for your workspace'\n )}\n </p>\n {form.formState.errors.name?.message && (\n <p className=\"text-sm text-destructive\">{form.formState.errors.name.message}</p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-slug\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.slugLabel', 'Slug *')}\n </label>\n <input\n id=\"workspace-slug\"\n placeholder={tWithFallback(t, 'createWorkspace.slugPlaceholder', 'my-workspace')}\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('slug')}\n />\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.slugHint',\n 'URL-friendly identifier (auto-generated, but you can edit it)'\n )}\n </p>\n {form.formState.errors.slug?.message && (\n <p className=\"text-sm text-destructive\">{form.formState.errors.slug.message}</p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-tenant\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.tenantLabel', 'Tenant *')}\n </label>\n {isLoadingTenants ? (\n <Skeleton className=\"h-10 w-full\" />\n ) : tenantsError ? (\n <div className=\"flex items-center gap-2 text-sm text-destructive\">\n <AlertCircle size={16} />\n {tWithFallback(\n t,\n 'createWorkspace.failedToLoadTenants',\n 'Failed to load tenants'\n )}\n </div>\n ) : tenants.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.noTenantsAvailable',\n 'No tenants available. Contact your administrator.'\n )}\n </div>\n ) : (\n <select\n id=\"workspace-tenant\"\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('tenantId')}\n >\n <option value=\"\">\n {tWithFallback(t, 'createWorkspace.selectTenantPlaceholder', 'Select a tenant')}\n </option>\n {tenants.map((tenant) => (\n <option key={tenant.id} value={tenant.id}>\n {tenant.name}\n </option>\n ))}\n </select>\n )}\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.tenantHint',\n 'Select which tenant this workspace belongs to'\n )}\n </p>\n {form.formState.errors.tenantId?.message && (\n <p className=\"text-sm text-destructive\">{form.formState.errors.tenantId.message}</p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label\n htmlFor=\"workspace-organization\"\n className=\"text-sm font-medium text-foreground\"\n >\n {tWithFallback(t, 'createWorkspace.organizationLabel', 'Organization *')}\n </label>\n {isLoadingOrganizations || isCheckingOrgPermissions ? (\n // While the permission check is in flight,\n // `workspaceCreateAllowedOrgIds` is empty so\n // `filteredOrganizations` is also empty. Render the same\n // skeleton we use for the org-load itself instead of the\n // \"no organizations found\" empty-state — otherwise a slow\n // rbac response briefly looks like an authorization\n // failure for users who DO have workspace:create.\n <Skeleton className=\"h-10 w-full\" />\n ) : organizationsError ? (\n <div className=\"flex items-center gap-2 text-sm text-destructive\">\n <AlertCircle size={16} />\n {tWithFallback(\n t,\n 'createWorkspace.failedToLoadOrganizations',\n 'Failed to load organizations'\n )}\n </div>\n ) : !selectedTenantId ? (\n <div className=\"text-sm text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.selectTenantFirst',\n 'Please select a tenant first'\n )}\n </div>\n ) : filteredOrganizations.length === 0 ? (\n <div className=\"text-sm text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.noOrganizationsFound',\n 'No organizations found for this tenant'\n )}\n </div>\n ) : (\n <select\n id=\"workspace-organization\"\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n disabled={!selectedTenantId}\n {...form.register('organizationId')}\n >\n <option value=\"\">\n {tWithFallback(\n t,\n 'createWorkspace.selectOrganizationPlaceholder',\n 'Select an organization'\n )}\n </option>\n {filteredOrganizations.map((org) => (\n <option key={org.id} value={org.id}>\n {org.name}\n </option>\n ))}\n </select>\n )}\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.organizationHint',\n 'Select which organization owns this workspace'\n )}\n </p>\n {form.formState.errors.organizationId?.message && (\n <p className=\"text-sm text-destructive\">\n {form.formState.errors.organizationId.message}\n </p>\n )}\n </div>\n\n <div className=\"space-y-2\">\n <label htmlFor=\"workspace-type\" className=\"text-sm font-medium text-foreground\">\n {tWithFallback(t, 'createWorkspace.typeLabel', 'Workspace Type')}\n </label>\n <select\n id=\"workspace-type\"\n className=\"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground\"\n {...form.register('type')}\n >\n <option value=\"TEAM\">\n {tWithFallback(t, 'createWorkspace.typeTeam', 'Team Workspace')}\n </option>\n <option value=\"PERSONAL\">\n {tWithFallback(t, 'createWorkspace.typePersonal', 'Personal Workspace')}\n </option>\n </select>\n <p className=\"text-xs text-muted-foreground\">\n {tWithFallback(\n t,\n 'createWorkspace.typeHint',\n 'Choose between a collaborative workspace or a personal one'\n )}\n </p>\n </div>\n\n <div className=\"flex justify-end gap-3 pt-4\">\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => navigate(`${basePath}/list`)}\n disabled={isPending}\n >\n {tWithFallback(t, 'createWorkspace.cancel', 'Cancel')}\n </Button>\n <Button\n type=\"submit\"\n disabled={\n isPending ||\n isLoadingTenants ||\n isLoadingOrganizations ||\n isCheckingOrgPermissions\n }\n >\n {isPending\n ? tWithFallback(t, 'createWorkspace.creating', 'Creating...')\n : tWithFallback(t, 'createWorkspace.submit', 'Create Workspace')}\n </Button>\n </div>\n </form>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@burdenoff/microfe-workspaces",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.520.1",
|
|
4
4
|
"description": "Workspaces microfrontend for Burdenoff products",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@apollo/client": "^4.0.11",
|
|
47
|
-
"@burdenoff/fe-libs": "2026.
|
|
47
|
+
"@burdenoff/fe-libs": "2026.518.7",
|
|
48
48
|
"@iconify/react": "^6.0.2",
|
|
49
49
|
"@radix-ui/react-icons": "^1.3.2",
|
|
50
50
|
"@tanstack/react-query": "^5.62.13",
|