Add default role to workspace (#10444)

## Context
Adding a defaultRole to each workspace, this role will be automatically
added when a member joins a workspace via invite link or public link
(seeds work differently though).
Took the occasion to refactor a bit the frontend components, splitting
them in smaller components for more readability.

## Test
<img width="948" alt="Screenshot 2025-02-24 at 14 54 02"
src="https://github.com/user-attachments/assets/13ef1452-d3c9-4385-940c-2ced0f0b05ef"
/>
This commit is contained in:
Weiko
2025-02-25 11:26:35 +01:00
committed by GitHub
parent a1eea40cf7
commit 0220672fa9
29 changed files with 538 additions and 273 deletions

View File

@ -342,6 +342,17 @@ export const responseData = {
metadataVersion: 1,
currentBillingSubscription: null,
workspaceMembersCount: 1,
defaultRole: {
id: 'default-role-id',
label: 'Default Role',
description: 'Default Role Description',
canUpdateAllSettings: true,
isEditable: true,
canReadAllObjectRecords: true,
canUpdateAllObjectRecords: true,
canSoftDeleteAllObjectRecords: true,
canDestroyAllObjectRecords: true,
}
},
currentBillingSubscription: null,
billingSubscriptions: [],

View File

@ -21,6 +21,16 @@ import {
responseData as findManyObjectMetadataItemsResponseData,
} from '../__mocks__/useFindManyObjectMetadataItems';
jest.mock('@/object-metadata/hooks/useUpdateOneFieldMetadataItem', () => ({
useUpdateOneFieldMetadataItem: () => ({
updateOneFieldMetadataItem: jest.fn().mockResolvedValue({
data: {
updateOneField: responseData.default,
},
}),
}),
}));
const fieldMetadataItem: FieldMetadataItem = {
id: FIELD_METADATA_ID,
createdAt: '',
@ -111,17 +121,6 @@ const mocks = [
},
})),
},
{
request: {
query: queries.activateMetadataField,
variables: variables.activateMetadataField,
},
result: jest.fn(() => ({
data: {
updateOneField: responseData.default,
},
})),
},
{
request: {
query: queries.createMetadataField,
@ -133,26 +132,6 @@ const mocks = [
},
})),
},
{
request: {
query: queries.activateMetadataField,
variables: variables.deactivateMetadataField,
},
result: jest.fn(() => ({
data: {
updateOneField: responseData.default,
},
})),
},
{
request: {
query: queries.getCurrentUser,
variables: {},
},
result: jest.fn(() => ({
data: responseData.getCurrentUser,
})),
},
{
request: {
query: queries.getCurrentUser,