Skip to content

Add field isLabelSyncedWithName #8829

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Dec 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions packages/twenty-front/src/generated-metadata/gql.ts

Large diffs are not rendered by default.

80 changes: 76 additions & 4 deletions packages/twenty-front/src/generated-metadata/graphql.ts

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions packages/twenty-front/src/generated/graphql.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1455,6 +1455,7 @@ export type Field = {
id: Scalars['UUID'];
isActive?: Maybe<Scalars['Boolean']>;
isCustom?: Maybe<Scalars['Boolean']>;
isLabelSyncedWithName: Scalars['Boolean'];
isNullable?: Maybe<Scalars['Boolean']>;
isSystem?: Maybe<Scalars['Boolean']>;
isUnique?: Maybe<Scalars['Boolean']>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ export const UPDATE_ONE_FIELD_METADATA_ITEM = gql`
createdAt
updatedAt
settings
isLabelSyncedWithName
}
}
`;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ export const FIND_MANY_OBJECT_METADATA_ITEMS = gql`
defaultValue
options
settings
isLabelSyncedWithName
relationDefinition {
relationId
direction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ export const variables = {
fromDescription: null,
fromIcon: undefined,
fromLabel: 'label',
fromName: 'label',
fromName: 'name',
fromObjectMetadataId: 'objectMetadataId',
relationType: 'ONE_TO_ONE',
toDescription: null,
toIcon: undefined,
toLabel: 'Another label',
toName: 'anotherLabel',
toName: 'anotherName',
toObjectMetadataId: 'objectMetadataId1',
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,22 @@ export const FIELD_RELATION_METADATA_ID =
'4da0302d-358a-45cd-9973-9f92723ed3c1';
export const RELATION_METADATA_ID = 'f81d4fae-7dec-11d0-a765-00a0c91e6bf6';

const baseFields = `
id
type
name
label
description
icon
isCustom
isActive
isNullable
createdAt
updatedAt
settings
`;


export const queries = {
deleteMetadataField: gql`
mutation DeleteOneFieldMetadataItem($idToDelete: UUID!) {
deleteOneField(input: { id: $idToDelete }) {
${baseFields}
id
type
name
label
description
icon
isCustom
isActive
isNullable
createdAt
updatedAt
settings
}
}
`,
Expand Down Expand Up @@ -74,7 +69,19 @@ export const queries = {
$updatePayload: UpdateFieldInput!
) {
updateOneField(input: { id: $idToUpdate, update: $updatePayload }) {
${baseFields}
id
type
name
label
description
icon
isCustom
isActive
isNullable
createdAt
updatedAt
settings
isLabelSyncedWithName
}
}
`,
Expand All @@ -98,6 +105,84 @@ export const queries = {
}
}
`,
getCurrentUser: gql`
query GetCurrentUser {
currentUser {
...UserQueryFragment
}
}

fragment UserQueryFragment on User {
id
firstName
lastName
email
canImpersonate
supportUserHash
analyticsTinybirdJwts {
getWebhookAnalytics
getPageviewsAnalytics
getUsersAnalytics
getServerlessFunctionDuration
getServerlessFunctionSuccessRate
getServerlessFunctionErrorCount
}
onboardingStatus
workspaceMember {
...WorkspaceMemberQueryFragment
}
workspaceMembers {
...WorkspaceMemberQueryFragment
}
defaultWorkspace {
id
displayName
logo
domainName
inviteHash
allowImpersonation
activationStatus
isPublicInviteLinkEnabled
hasValidEntrepriseKey
featureFlags {
id
key
value
workspaceId
}
metadataVersion
currentBillingSubscription {
id
status
interval
}
workspaceMembersCount
}
workspaces {
workspace {
id
logo
displayName
domainName
}
}
userVars
}

fragment WorkspaceMemberQueryFragment on WorkspaceMember {
id
name {
firstName
lastName
}
colorScheme
avatarUrl
locale
timeZone
dateFormat
timeFormat
}
`,
};

export const objectMetadataId = '25611fce-6637-4089-b0ca-91afeec95784';
Expand All @@ -107,7 +192,7 @@ export const variables = {
deleteMetadataFieldRelation: { idToDelete: RELATION_METADATA_ID },
activateMetadataField: {
idToUpdate: FIELD_METADATA_ID,
updatePayload: { isActive: true, label: undefined },
updatePayload: { isActive: true },
},
createMetadataField: {
input: {
Expand All @@ -116,9 +201,10 @@ export const variables = {
description: null,
icon: undefined,
label: 'fieldLabel',
name: 'fieldlabel',
name: 'fieldName',
options: undefined,
settings: undefined,
isLabelSyncedWithName: true,
objectMetadataId,
type: 'TEXT',
},
Expand Down Expand Up @@ -159,4 +245,54 @@ export const responseData = {
defaultValue: '',
options: [],
},
getCurrentUser: {
currentUser: {
id: 'test-user-id',
firstName: 'Test',
lastName: 'User',
email: '[email protected]',
canImpersonate: false,
supportUserHash: null,
analyticsTinybirdJwts: {
getWebhookAnalytics: null,
getPageviewsAnalytics: null,
getUsersAnalytics: null,
getServerlessFunctionDuration: null,
getServerlessFunctionSuccessRate: null,
getServerlessFunctionErrorCount: null,
},
onboardingStatus: 'completed',
workspaceMember: {
id: 'test-workspace-member-id',
name: {
firstName: 'Test',
lastName: 'User',
},
colorScheme: 'light',
avatarUrl: null,
locale: 'en',
timeZone: 'UTC',
dateFormat: 'MM/DD/YYYY',
timeFormat: '24',
},
workspaceMembers: [],
defaultWorkspace: {
id: 'test-workspace-id',
displayName: 'Test Workspace',
logo: null,
domainName: 'test',
inviteHash: 'test-hash',
allowImpersonation: false,
activationStatus: 'active',
isPublicInviteLinkEnabled: false,
hasValidEntrepriseKey: false,
featureFlags: [],
metadataVersion: 1,
currentBillingSubscription: null,
workspaceMembersCount: 1,
},
workspaces: [],
userVars: null,
},
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ export const query = gql`
labelIdentifierFieldMetadataId
imageIdentifierFieldMetadataId
shortcut
isLabelSyncedWithName
fields(paging: { first: 1000 }, filter: $fieldFilter) {
edges {
node {
Expand All @@ -41,6 +40,7 @@ export const query = gql`
isNullable
createdAt
updatedAt
isLabelSyncedWithName
relationDefinition {
relationId
direction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,13 @@ describe('useCreateOneRelationMetadataItem', () => {
relationType: RelationDefinitionType.OneToOne,
field: {
label: 'label',
name: 'name',
},
objectMetadataId: 'objectMetadataId',
connect: {
field: {
label: 'Another label',
name: 'anotherName',
},
objectMetadataId: 'objectMetadataId1',
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const fieldMetadataItem: FieldMetadataItem = {
name: 'name',
type: FieldMetadataType.Text,
updatedAt: '',
isLabelSyncedWithName: true,
};

const fieldRelationMetadataItem: FieldMetadataItem = {
Expand All @@ -32,6 +33,7 @@ const fieldRelationMetadataItem: FieldMetadataItem = {
name: 'name',
type: FieldMetadataType.Relation,
updatedAt: '',
isLabelSyncedWithName: true,
relationDefinition: {
relationId: RELATION_METADATA_ID,
direction: RelationDefinitionType.OneToMany,
Expand Down Expand Up @@ -137,6 +139,24 @@ const mocks = [
},
})),
},
{
request: {
query: queries.getCurrentUser,
variables: {},
},
result: jest.fn(() => ({
data: responseData.getCurrentUser,
})),
},
{
request: {
query: queries.getCurrentUser,
variables: {},
},
result: jest.fn(() => ({
data: responseData.getCurrentUser,
})),
},
];

const Wrapper = getJestMetadataAndApolloMocksWrapper({
Expand Down Expand Up @@ -171,6 +191,8 @@ describe('useFieldMetadataItem', () => {
label: 'fieldLabel',
objectMetadataId,
type: FieldMetadataType.Text,
name: 'fieldName',
isLabelSyncedWithName: true,
});

expect(res.data).toEqual({
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { useDeleteOneRelationMetadataItem } from '@/object-metadata/hooks/useDeleteOneRelationMetadataItem';
import { FieldMetadataType } from '~/generated-metadata/graphql';
import { Field } from '~/generated/graphql';
import { Field, FieldMetadataType } from '~/generated-metadata/graphql';

import { FieldMetadataItem } from '../types/FieldMetadataItem';
import { formatFieldMetadataItemInput } from '../utils/formatFieldMetadataItemInput';
Expand All @@ -18,13 +17,15 @@ export const useFieldMetadataItem = () => {
const createMetadataField = (
input: Pick<
Field,
| 'name'
| 'label'
| 'icon'
| 'description'
| 'defaultValue'
| 'type'
| 'options'
| 'settings'
| 'isLabelSyncedWithName'
> & {
objectMetadataId: string;
},
Expand All @@ -37,6 +38,7 @@ export const useFieldMetadataItem = () => {
type: input.type,
label: formattedInput.label ?? '',
name: formattedInput.name ?? '',
isLabelSyncedWithName: formattedInput.isLabelSyncedWithName ?? true,
});
};

Expand Down
Loading
Loading