diff --git a/packages/twenty-e2e-testing/package.json b/packages/twenty-e2e-testing/package.json index 8f21de70c..08db290e0 100644 --- a/packages/twenty-e2e-testing/package.json +++ b/packages/twenty-e2e-testing/package.json @@ -1,6 +1,6 @@ { "name": "twenty-e2e-testing", - "version": "0.40.0-canary", + "version": "0.35.4", "description": "", "author": "", "private": true, diff --git a/packages/twenty-emails/package.json b/packages/twenty-emails/package.json index 9887a8b94..d3f75dedc 100644 --- a/packages/twenty-emails/package.json +++ b/packages/twenty-emails/package.json @@ -1,6 +1,6 @@ { "name": "twenty-emails", - "version": "0.40.0-canary", + "version": "0.35.4", "description": "", "author": "", "private": true, diff --git a/packages/twenty-front/package.json b/packages/twenty-front/package.json index 2e8fedd07..16a3b83ef 100644 --- a/packages/twenty-front/package.json +++ b/packages/twenty-front/package.json @@ -1,6 +1,6 @@ { "name": "twenty-front", - "version": "0.40.0-canary", + "version": "0.35.4", "private": true, "type": "module", "scripts": { diff --git a/packages/twenty-front/src/modules/workflow/states/serverlessFunctionTestDataFamilyState.ts b/packages/twenty-front/src/modules/workflow/states/serverlessFunctionTestDataFamilyState.ts index 19ad17409..4f297fa74 100644 --- a/packages/twenty-front/src/modules/workflow/states/serverlessFunctionTestDataFamilyState.ts +++ b/packages/twenty-front/src/modules/workflow/states/serverlessFunctionTestDataFamilyState.ts @@ -1,5 +1,5 @@ -import { ServerlessFunctionExecutionStatus } from '~/generated-metadata/graphql'; import { createFamilyState } from '@/ui/utilities/state/utils/createFamilyState'; +import { ServerlessFunctionExecutionStatus } from '~/generated-metadata/graphql'; export type ServerlessFunctionTestData = { input: { [field: string]: any }; @@ -13,8 +13,7 @@ export type ServerlessFunctionTestData = { height: number; }; -export const DEFAULT_OUTPUT_VALUE = - 'Enter an input above then press "run Function"'; +export const DEFAULT_OUTPUT_VALUE = 'Enter an input above then press "Test"'; export const serverlessFunctionTestDataFamilyState = createFamilyState< ServerlessFunctionTestData, diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdownFieldItems.tsx b/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdownFieldItems.tsx index 289863a80..41612d837 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdownFieldItems.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdownFieldItems.tsx @@ -145,15 +145,18 @@ export const WorkflowVariablesDropdownFieldItems = ({ /> - {filteredOptions.map(([key, value]) => ( + {filteredOptions.map(([key, subStep]) => ( handleSelectField(key)} - text={value.label || key} - hasSubMenu={!value.isLeaf} - LeftIcon={value.icon ? getIcon(value.icon) : undefined} + text={subStep.label || key} + hasSubMenu={!subStep.isLeaf} + LeftIcon={subStep.icon ? getIcon(subStep.icon) : undefined} + contextualText={ + subStep.isLeaf ? subStep?.value?.toString() : undefined + } /> ))} diff --git a/packages/twenty-server/package.json b/packages/twenty-server/package.json index 6de9253d6..5486c78aa 100644 --- a/packages/twenty-server/package.json +++ b/packages/twenty-server/package.json @@ -1,6 +1,6 @@ { "name": "twenty-server", - "version": "0.40.0-canary", + "version": "0.35.4", "description": "", "author": "", "private": true, diff --git a/packages/twenty-server/src/engine/utils/generate-fake-value.ts b/packages/twenty-server/src/engine/utils/generate-fake-value.ts index bfc87d313..93839ac61 100644 --- a/packages/twenty-server/src/engine/utils/generate-fake-value.ts +++ b/packages/twenty-server/src/engine/utils/generate-fake-value.ts @@ -7,13 +7,16 @@ type FakeValueTypes = | Date | FakeValueTypes[] | FieldMetadataType - | { [key: string]: FakeValueTypes }; + | { [key: string]: FakeValueTypes } + | null; -export const generateFakeValue = (valueType: string): FakeValueTypes => { +type TypeClassification = 'Primitive' | 'FieldMetadataType'; + +const generatePrimitiveValue = (valueType: string): FakeValueTypes => { if (valueType === 'string') { - return 'generated-string-value'; + return 'My text'; } else if (valueType === 'number') { - return 1; + return 20; } else if (valueType === 'boolean') { return true; } else if (valueType === 'Date') { @@ -38,9 +41,51 @@ export const generateFakeValue = (valueType: string): FakeValueTypes => { }); return objData; - } else if (valueType === FieldMetadataType.TEXT) { - return 'My text'; } else { - return 'generated-string-value'; + return null; + } +}; + +const generateFieldMetadataTypeValue = ( + valueType: string, +): FakeValueTypes | null => { + // composite types do not need to be generated + switch (valueType) { + case FieldMetadataType.TEXT: + return 'My text'; + case FieldMetadataType.NUMBER: + return 20; + case FieldMetadataType.BOOLEAN: + return true; + case FieldMetadataType.DATE: + return '01/23/2025'; + case FieldMetadataType.DATE_TIME: + return '01/23/2025 15:16'; + case FieldMetadataType.ADDRESS: + return '123 Main St, Anytown, CA 12345'; + case FieldMetadataType.FULL_NAME: + return 'Tim Cook'; + case FieldMetadataType.RAW_JSON: + return null; + case FieldMetadataType.RICH_TEXT: + return 'My rich text'; + case FieldMetadataType.UUID: + return '123e4567-e89b-12d3-a456-426614174000'; + default: + return null; + } +}; + +export const generateFakeValue = ( + valueType: string, + classification: TypeClassification = 'Primitive', +): FakeValueTypes => { + switch (classification) { + case 'Primitive': + return generatePrimitiveValue(valueType); + case 'FieldMetadataType': + return generateFieldMetadataTypeValue(valueType); + default: + return null; } }; diff --git a/packages/twenty-server/src/modules/workflow/workflow-builder/utils/generate-fake-object-record.ts b/packages/twenty-server/src/modules/workflow/workflow-builder/utils/generate-fake-object-record.ts index 945f8a3e0..c1e0142c3 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-builder/utils/generate-fake-object-record.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-builder/utils/generate-fake-object-record.ts @@ -25,7 +25,7 @@ const generateObjectRecordFields = ( type: field.type, icon: field.icon, label: field.label, - value: generateFakeValue(field.type), + value: generateFakeValue(field.type, 'FieldMetadataType'), }; } else { acc[field.name] = { @@ -37,7 +37,7 @@ const generateObjectRecordFields = ( isLeaf: true, type: property.type, label: camelToTitleCase(property.name), - value: generateFakeValue(property.type), + value: generateFakeValue(property.type, 'FieldMetadataType'), }; return acc; diff --git a/packages/twenty-ui/package.json b/packages/twenty-ui/package.json index ec65a2cce..3726ca892 100644 --- a/packages/twenty-ui/package.json +++ b/packages/twenty-ui/package.json @@ -1,6 +1,6 @@ { "name": "twenty-ui", - "version": "0.40.0-canary", + "version": "0.35.4", "type": "module", "main": "./src/index.ts", "exports": { diff --git a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx index 211b8452a..1b2a64181 100644 --- a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx +++ b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemSelect.tsx @@ -47,6 +47,7 @@ type MenuItemSelectProps = { disabled?: boolean; hovered?: boolean; hasSubMenu?: boolean; + contextualText?: string; }; export const MenuItemSelect = ({ @@ -59,6 +60,7 @@ export const MenuItemSelect = ({ disabled, hovered, hasSubMenu = false, + contextualText, }: MenuItemSelectProps) => { const theme = useTheme(); @@ -73,8 +75,13 @@ export const MenuItemSelect = ({ aria-selected={selected} aria-disabled={disabled} > - + {selected && needIconCheck && } + {hasSubMenu && ( theme.color.gray35}; font-family: inherit; @@ -29,6 +33,7 @@ const StyledContextualText = styled.div` white-space: nowrap; padding-left: ${({ theme }) => theme.spacing(1)}; + flex-shrink: 1; `; type MenuItemLeftContentProps = { @@ -67,7 +72,13 @@ export const MenuItemLeftContent = ({ )} - {isString(text) ? : text} + {isString(text) ? ( + + + + ) : ( + text + )} {isString(contextualText) ? ( {`ยท ${contextualText}`} ) : ( diff --git a/packages/twenty-website/package.json b/packages/twenty-website/package.json index 0030a953f..2f4abe892 100644 --- a/packages/twenty-website/package.json +++ b/packages/twenty-website/package.json @@ -1,6 +1,6 @@ { "name": "twenty-website", - "version": "0.40.0-canary", + "version": "0.35.4", "private": true, "scripts": { "nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js",