From 7fd89678b767a645173abbccd2108bc5057eae23 Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Sat, 1 Feb 2025 12:10:10 +0100 Subject: [PATCH] [CHORE] Avoid `isDefined` duplicated reference, move it to `twenty-shared` (#9967) # Introduction Avoid having multiple `isDefined` definition across our pacakges Also avoid importing `isDefined` from `twenty-ui` which exposes a huge barrel for a such little util function ## In a nutshell Removed own `isDefined.ts` definition from `twenty-ui` `twenty-front` and `twenty-server` to move it to `twenty-shared`. Updated imports for each packages, and added explicit dependencies to `twenty-shared` if not already in place Related PR https://github.com/twentyhq/twenty/pull/9941 --- packages/twenty-chrome-extension/package.json | 3 ++ .../src/background/index.ts | 2 +- .../src/contentScript/createButton.ts | 2 +- .../contentScript/extractCompanyProfile.ts | 2 +- .../src/contentScript/extractPersonProfile.ts | 2 +- .../src/contentScript/index.ts | 2 +- .../src/contentScript/insertSettingsButton.ts | 2 +- .../contentScript/utils/changeSidepanelUrl.ts | 2 +- .../utils/extractCompanyLinkedinLink.ts | 2 +- .../twenty-chrome-extension/src/db/auth.db.ts | 2 +- .../src/db/company.db.ts | 2 +- .../src/db/person.db.ts | 2 +- .../src/db/token.db.ts | 2 +- .../src/options/App.tsx | 2 +- .../src/options/Settings.tsx | 4 +- .../src/options/Sidepanel.tsx | 4 +- .../modules/ui/input/components/Toggle.tsx | 4 +- .../src/utils/apolloClient.ts | 2 +- .../src/utils/requestDb.ts | 2 +- .../src/hooks/useScrollRestoration.ts | 2 +- .../RecordActionMenuEntriesSetter.tsx | 2 +- .../hooks/useDeleteMultipleRecordsAction.tsx | 2 +- .../useAddToFavoritesSingleRecordAction.ts | 2 +- .../hooks/useDeleteSingleRecordAction.tsx | 2 +- .../hooks/useDestroySingleRecordAction.tsx | 2 +- .../hooks/useExportNoteAction.ts | 2 +- ...seRemoveFromFavoritesSingleRecordAction.ts | 2 +- .../useActivateWorkflowSingleRecordAction.ts | 2 +- ...useDeactivateWorkflowSingleRecordAction.ts | 2 +- ...eDiscardDraftWorkflowSingleRecordAction.ts | 2 +- ...ActiveVersionWorkflowSingleRecordAction.ts | 2 +- .../useSeeRunsWorkflowSingleRecordAction.ts | 2 +- ...seSeeVersionsWorkflowSingleRecordAction.ts | 2 +- .../useTestWorkflowSingleRecordAction.ts | 2 +- ...eeRunsWorkflowVersionSingleRecordAction.ts | 2 +- ...rsionsWorkflowVersionSingleRecordAction.ts | 2 +- ...DraftWorkflowVersionSingleRecordAction.tsx | 2 +- .../hooks/useWorkflowRunRecordActions.tsx | 4 +- .../hooks/useRunWorkflowActions.tsx | 4 +- .../actions/utils/wrapActionInCallbacks.ts | 2 +- .../actionMenuEntriesComponentSelector.ts | 2 +- .../blocks/components/FileBlock.tsx | 2 +- .../calendar/components/CalendarEventRow.tsx | 18 ++++----- .../calendar/hooks/useCalendarEvents.ts | 2 +- .../components/ActivityRichTextEditor.tsx | 2 +- .../hooks/useRightDrawerEmailThread.ts | 2 +- .../utils/getDisplayNameFromParticipant.ts | 2 +- .../files/components/Attachments.tsx | 2 +- .../hooks/useActivityTargetObjectRecords.ts | 2 +- .../usePrepareFindManyActivitiesQuery.ts | 2 +- ...efreshShowPageFindManyActivitiesQueries.ts | 2 +- .../useReplaceActivityBlockEditorContent.ts | 2 +- .../activities/hooks/useUpsertActivity.ts | 2 +- .../components/EventCardCalendarEvent.tsx | 2 +- .../components/EventFieldDiffValueEffect.tsx | 2 +- .../message/components/EventCardMessage.tsx | 2 +- .../getTimelineActivityAuthorFullName.ts | 2 +- .../utils/groupEventsByMonth.ts | 2 +- .../modules/apollo/hooks/useApolloFactory.ts | 2 +- .../utils/sortCachedObjectEdges.ts | 2 +- .../triggerAttachRelationOptimisticEffect.ts | 3 +- .../triggerCreateRecordsOptimisticEffect.ts | 2 +- .../triggerDestroyRecordsOptimisticEffect.ts | 2 +- .../triggerUpdateRecordOptimisticEffect.ts | 2 +- ...ggerUpdateRecordOptimisticEffectByBatch.ts | 2 +- .../triggerUpdateRelationsOptimisticEffect.ts | 2 +- .../modules/apollo/services/apollo.factory.ts | 2 +- .../src/modules/apollo/utils/encodeCursor.ts | 2 +- .../src/modules/apollo/utils/loggerLink.ts | 2 +- .../effect-components/PageChangeEffect.tsx | 2 +- .../modules/auth/components/VerifyEffect.tsx | 2 +- .../src/modules/auth/hooks/useAuth.ts | 2 +- .../src/modules/auth/services/AuthService.ts | 2 +- .../components/SignInUpGlobalScopeForm.tsx | 2 +- .../SignInUpSSOIdentityProviderSelection.tsx | 2 +- .../components/SignInUpWithCredentials.tsx | 2 +- .../sign-in-up/components/SignInUpWithSSO.tsx | 2 +- .../SignInUpWorkspaceScopeFormEffect.tsx | 2 +- .../auth/sign-in-up/hooks/useSignInUpForm.ts | 2 +- .../hooks/useWorkspaceFromInviteHash.ts | 2 +- .../captcha/hooks/useReadCaptchaToken.ts | 2 +- .../ChromeExtensionSidecarEffect.tsx | 2 +- .../components/ClientConfigProviderEffect.tsx | 2 +- .../command-menu/components/CommandMenu.tsx | 2 +- .../CommandMenuDefaultSelectionEffect.tsx | 2 +- .../components/CommandMenuList.tsx | 3 +- .../components/CommandMenuRouter.tsx | 2 +- .../components/CommandMenuTopBar.tsx | 3 +- .../ResetContextToSelectionCommandButton.tsx | 3 +- .../hooks/useCommandMenuOnItemClick.ts | 2 +- .../components/ContextStoreViewIdEffect.tsx | 2 +- .../hooks/useCreateOneDatabaseConnection.ts | 2 +- .../databases/hooks/useSyncRemoteTable.ts | 2 +- .../hooks/useSyncRemoteTableSchemaChanges.ts | 2 +- .../databases/hooks/useUnsyncRemoteTable.ts | 2 +- .../hooks/useBuildWorkspaceUrl.ts | 2 +- .../useGetPublicWorkspaceDataBySubdomain.ts | 2 +- ...eIsCurrentLocationOnAWorkspaceSubdomain.ts | 6 +-- ...adWorkspaceSubdomainFromCurrentLocation.ts | 4 +- .../components/SentryInitEffect.tsx | 2 +- ...CurrentWorkspaceMemberFavoritesFolders.tsx | 3 +- .../components/FavoriteFolderPickerEffect.tsx | 2 +- .../hooks/useFavoriteFolderPicker.ts | 2 +- .../favoriteFoldersComponentSelector.ts | 2 +- .../getObjectMetadataLabelPluralFromViewId.ts | 2 +- .../modules/favorites/utils/sortFavorites.ts | 2 +- .../components/InformationBannerWrapper.tsx | 2 +- ...rmationBannerBillingSubscriptionPaused.tsx | 2 +- .../InformationBannerFailPaymentInfo.tsx | 4 +- .../localization/utils/detectTimeFormat.ts | 2 +- .../hooks/useDefaultHomePagePath.ts | 2 +- .../hooks/useLastVisitedObjectMetadataItem.ts | 2 +- .../navigation/hooks/useLastVisitedView.ts | 2 +- ...dViewPerObjectMetadataItemStateSelector.ts | 2 +- .../RemoteNavigationDrawerSection.tsx | 2 +- .../hooks/useFieldMetadataItemById.ts | 2 +- .../hooks/useGetFieldMetadataItemById.ts | 2 +- .../hooks/useObjectMetadataItem.ts | 2 +- .../hooks/useObjectMetadataItemById.ts | 2 +- .../hooks/useObjectNamePluralFromSingular.ts | 3 +- .../hooks/useObjectNameSingularFromPlural.ts | 3 +- .../object-metadata/utils/getAvatarUrl.ts | 3 +- .../utils/getCompanyDomainName.ts | 2 +- .../utils/getImageIdentifierFieldValue.ts | 2 +- .../utils/getLabelIdentifierFieldValue.ts | 2 +- .../utils/getObjectOrderByField.ts | 2 +- .../utils/isLabelIdentifierField.ts | 2 +- .../utils/shouldFieldBeQueried.ts | 2 +- .../AdvancedFilterAddFilterRuleSelect.tsx | 9 +---- ...AdvancedFilterRootLevelViewFilterGroup.tsx | 2 +- .../AdvancedFilterRuleOptionsDropdown.tsx | 3 +- .../AdvancedFilterViewFilterOperandSelect.tsx | 3 +- .../hooks/useCurrentViewViewFilterGroup.ts | 2 +- .../hooks/useDeleteCombinedViewFilterGroup.ts | 2 +- .../hooks/useCreateManyRecordsInCache.ts | 2 +- .../useReadFindManyRecordsQueryInCache.ts | 2 +- .../cache/utils/getRecordFromRecordNode.ts | 2 +- .../cache/utils/getRecordNodeFromRecord.ts | 2 +- .../utils/generateDepthOneRecordGqlFields.ts | 2 +- .../hooks/useAggregateRecords.ts | 2 +- .../hooks/useAggregateRecordsQuery.ts | 2 +- .../hooks/useAttachRelatedRecordFromRecord.ts | 2 +- .../hooks/useCreateManyRecords.ts | 2 +- .../object-record/hooks/useCreateOneRecord.ts | 2 +- .../hooks/useDeleteManyRecords.ts | 3 +- .../object-record/hooks/useDeleteOneRecord.ts | 3 +- .../hooks/useDestroyManyRecords.ts | 3 +- .../useFetchMoreRecordsWithPagination.ts | 3 +- .../object-record/hooks/useFindOneRecord.ts | 2 +- .../useHandleFindManyRecordsCompleted.ts | 2 +- .../hooks/useLazyFetchAllRecords.ts | 4 +- .../hooks/useRestoreManyRecords.ts | 3 +- .../object-record/hooks/useSearchRecords.ts | 2 +- .../object-record/hooks/useUpdateOneRecord.ts | 3 +- .../ObjectFilterDropdownBooleanSelect.tsx | 2 +- .../ObjectFilterDropdownDateInput.tsx | 2 +- .../ObjectFilterDropdownFilterInput.tsx | 2 +- .../ObjectFilterDropdownFilterSelect.tsx | 2 +- ...pdownFilterSelectCompositeFieldSubMenu.tsx | 9 +---- .../ObjectFilterDropdownOperandSelect.tsx | 2 +- .../ObjectFilterDropdownOptionSelect.tsx | 2 +- .../ObjectFilterDropdownRecordSelect.tsx | 2 +- .../ObjectFilterDropdownSourceSelect.tsx | 2 +- ...useSelectFilterDefinitionUsedInDropdown.ts | 2 +- .../ObjectOptionsDropdownMenuContent.tsx | 2 +- ...ptionsDropdownRecordGroupFieldsContent.tsx | 2 +- .../hooks/useExportProcessRecordsForCSV.ts | 2 +- .../utils/turnSortsIntoOrderBy.ts | 2 +- .../hooks/useSetRecordBoardRecordIds.ts | 2 +- .../hooks/useSetRecordIdsForColumn.ts | 2 +- ...mnHeaderAggregateDropdownFieldsContent.tsx | 2 +- .../RecordBoardColumnHeaderWrapper.tsx | 2 +- .../RecordBoardColumnNewOpportunity.tsx | 2 +- .../hooks/useAddNewCard.ts | 2 +- ...useAggregateRecordsForRecordBoardColumn.ts | 2 +- .../buildRecordGqlFieldsAggregateForView.ts | 6 ++- .../utils/computeAggregateValueAndLabel.ts | 6 ++- .../utils/getDraggedRecordPosition.ts | 2 +- .../components/FormBooleanFieldInput.tsx | 2 +- .../components/FormDateTimeFieldInput.tsx | 3 +- .../components/FormMultiSelectFieldInput.tsx | 2 +- .../components/FormNumberFieldInput.tsx | 2 +- .../components/FormRawJsonFieldInput.tsx | 2 +- .../components/FormSelectFieldInput.tsx | 3 +- .../components/FormTextFieldInput.tsx | 2 +- .../components/FormUuidFieldInput.tsx | 2 +- .../form-types/components/VariableChip.tsx | 3 +- .../form-types/hooks/useTextVariableEditor.ts | 2 +- .../record-field/hooks/useIsFieldEmpty.ts | 2 +- .../display/components/JsonFieldDisplay.tsx | 2 +- .../display/components/NumberFieldDisplay.tsx | 2 +- .../display/components/SelectFieldDisplay.tsx | 2 +- .../meta-types/hooks/useChipFieldDisplay.ts | 2 +- .../hooks/useRelationFromManyFieldDisplay.ts | 2 +- .../hooks/useRelationToOneFieldDisplay.ts | 2 +- .../input/components/DateFieldInput.tsx | 2 +- .../input/components/EmailsFieldInput.tsx | 2 +- .../input/components/LinksFieldInput.tsx | 2 +- .../input/components/SelectFieldInput.tsx | 2 +- .../__stories__/RatingFieldInput.stories.tsx | 2 +- .../input/hooks/useRegisterInputEvents.ts | 2 +- .../meta-types/input/utils/phonesUtils.ts | 2 +- .../utils/computeDraftValueFromFieldValue.ts | 2 +- .../record-field/utils/isFieldValueEmpty.ts | 2 +- .../utils/isFieldValueReadOnly.ts | 2 +- .../hooks/useApplyRecordFilter.ts | 2 +- .../computeViewRecordGqlOperationFilter.ts | 2 +- .../utils/isRecordMatchingFilter.ts | 2 +- .../RecordGroupMenuItemDraggable.tsx | 2 +- .../hooks/useRecordGroupActions.ts | 3 +- .../hooks/useRecordGroupFilter.ts | 2 +- .../hooks/useRecordGroupReorder.ts | 2 +- ...vailableRecordGroupIdsComponentSelector.ts | 2 +- .../hiddenRecordGroupIdsComponentSelector.ts | 2 +- ...recordGroupDefinitionsComponentSelector.ts | 2 +- ...leRecordGroupIdsComponentFamilySelector.ts | 2 +- .../components/RecordIndexContainer.tsx | 2 +- .../components/RecordIndexPageHeader.tsx | 4 +- .../RecordIndexPageKanbanAddMenuItem.tsx | 2 +- .../RecordIndexTableContainerEffect.tsx | 2 +- .../hooks/useExportProcessRecordsForCSV.ts | 2 +- .../export/hooks/useExportRecords.ts | 2 +- .../hooks/useHandleToggleColumnFilter.ts | 2 +- .../hooks/useHandleToggleColumnSort.ts | 2 +- .../hooks/useHandleToggleTrashColumnFilter.ts | 2 +- .../hooks/useLoadRecordIndexBoardColumn.ts | 2 +- .../hooks/useRecordBoardRecordGqlFields.ts | 2 +- .../hooks/useRecordTableRecordGqlFields.ts | 2 +- .../hooks/useSetRecordIndexEntityCount.ts | 2 +- .../record-inline-cell/hooks/useInlineCell.ts | 2 +- .../record-show/components/FieldsCard.tsx | 2 +- .../record-show/components/SummaryCard.tsx | 2 +- .../record-show/hooks/useRecordShowPage.ts | 3 +- .../hooks/useRecordShowPagePagination.ts | 3 +- ...ordDetailRelationRecordsListItemEffect.tsx | 2 +- .../components/RecordTableRecordGroupRows.tsx | 2 +- .../hooks/internal/useSetRecordTableData.ts | 2 +- .../internal/useUpsertTableRecordInGroup.ts | 2 +- .../internal/useUpsertTableRecordNoGroup.ts | 2 +- .../hooks/useAggregateRecordsForHeader.ts | 2 +- .../hooks/useCreateNewTableRecordInGroup.ts | 2 +- .../hooks/useCreateNewTableRecords.ts | 2 +- ...RecordTableBodyDragDropContextProvider.tsx | 2 +- ...BodyRecordGroupDragDropContextProvider.tsx | 2 +- .../RecordTableCellSoftFocusMode.tsx | 2 +- .../hooks/useOpenRecordTableCellV2.ts | 2 +- ...egateFooterAggregateOperationMenuItems.tsx | 3 +- ...dTableColumnAggregateFooterMenuContent.tsx | 4 +- .../RecordTableColumnAggregateFooterValue.tsx | 3 +- ...egateRecordsForRecordTableColumnFooter.tsx | 2 +- ...gateOperationForViewFieldFamilySelector.ts | 2 +- ...AggregateOperationsForFieldMetadataType.ts | 2 +- .../RecordTableRecordGroupSection.tsx | 8 +--- .../hasPendingRecordComponentSelector.ts | 2 +- .../components/MultiRecordSelect.tsx | 3 +- .../MultipleObjectRecordSelectItem.tsx | 2 +- .../components/SingleRecordSelect.tsx | 2 +- .../SingleRecordSelectMenuItems.tsx | 2 +- .../SingleRecordSelectMenuItemsWithSearch.tsx | 2 +- .../useAddNewRecordAndOpenRightDrawer.ts | 2 +- .../hooks/useLimitPerMetadataItem.ts | 3 +- ...ltFormattedAsObjectRecordForSelectArray.ts | 2 +- .../hooks/useMultiObjectSearch.ts | 2 +- ...hQueryResultFormattedAsObjectRecordsMap.ts | 2 +- .../useMultiObjectSearchSelectedItemsQuery.ts | 3 +- .../hooks/useOrderByFieldPerMetadataItem.ts | 3 +- .../buildRecordFromImportedStructuredRow.ts | 2 +- ...etSpreadSheetFieldValidationDefinitions.ts | 2 +- .../utils/computeOptimisticRecordFromInput.ts | 2 +- .../utils/getAggregateQueryName.ts | 3 +- ...FieldsIdsForAggregationFromObjectFields.ts | 2 +- .../utils/getRecordChipGenerators.ts | 2 +- .../utils/makeAndFilterVariables.ts | 2 +- .../utils/makeOrFilterVariables.ts | 2 +- .../object-record/utils/prefillRecord.ts | 2 +- .../utils/sanitizeRecordInput.ts | 2 +- .../hooks/useSetNextOnboardingStatus.ts | 2 +- .../components/PrefetchRunQueriesEffect.tsx | 2 +- .../hooks/useFilteredSearchRecordQuery.ts | 2 +- .../hooks/useTestServerlessFunction.ts | 10 ++--- .../getDefaultFunctionInputFromInputSchema.ts | 2 +- .../utils/getFunctionInputFromSourceCode.ts | 2 +- .../utils/getFunctionInputSchema.ts | 6 +-- .../utils/getFunctionOutputSchema.ts | 2 +- ...tingsAccountsConnectedAccountsListCard.tsx | 2 +- .../components/SettingsAdminContent.tsx | 3 +- .../hooks/useFeatureFlagsManagement.ts | 4 +- .../admin-panel/hooks/useImpersonate.ts | 2 +- .../components/SettingsPageContainer.tsx | 2 +- ...ngsDataModelNewFieldBreadcrumbDropDown.tsx | 3 +- .../SettingsDataModelFieldIconLabelForm.tsx | 2 +- .../SettingsDataModelSetFieldValueEffect.tsx | 2 +- .../fields/preview/hooks/usePreviewRecord.ts | 2 +- .../preview/utils/getFieldPreviewValue.ts | 2 +- .../utils/getMultiSelectFieldPreviewValue.ts | 2 +- .../utils/getSelectFieldPreviewValue.ts | 2 +- .../components/SettingsDataModelOverview.tsx | 2 +- .../SettingsDataModelOverviewEffect.tsx | 2 +- .../SettingsObjectFieldItemTableRow.tsx | 2 +- .../SettingsDataModelObjectAboutForm.tsx | 2 +- .../developers/components/ApiKeyNameInput.tsx | 4 +- .../SettingsIntegrationComponent.tsx | 2 +- ...ntegrationDatabaseConnectionSyncStatus.tsx | 2 +- .../lab/hooks/useLabPublicFeatureFlags.ts | 2 +- .../components/ProfilePictureUploader.tsx | 2 +- .../components/SettingsSSOSAMLForm.tsx | 2 +- .../SettingsSecuritySSORowDropdownMenu.tsx | 2 +- .../SettingsServerlessFunctionCodeEditor.tsx | 4 +- .../workspace/components/NameField.tsx | 2 +- .../components/UnmatchColumn.tsx | 3 +- .../components/UserTableColumn.tsx | 2 +- .../ValidationStep/ValidationStep.tsx | 2 +- .../ValidationStep/components/columns.tsx | 2 +- .../spreadsheet-import/utils/dataMutations.ts | 2 +- .../utils/getMatchedColumns.ts | 2 +- .../utils/normalizeTableData.ts | 2 +- .../modules/support/hooks/useSupportChat.ts | 2 +- .../dialog-manager/components/Dialog.tsx | 2 +- .../snack-bar-manager/components/SnackBar.tsx | 2 +- .../snack-bar-manager/hooks/useSnackBar.ts | 2 +- .../display/components/BooleanDisplay.tsx | 2 +- .../display/components/CurrencyDisplay.tsx | 2 +- .../field/display/components/EmailDisplay.tsx | 2 +- .../display/components/EmailsDisplay.tsx | 2 +- .../field/display/components/LinksDisplay.tsx | 2 +- .../field/display/components/PhoneDisplay.tsx | 2 +- .../display/components/PhonesDisplay.tsx | 2 +- .../field/input/components/AddressInput.tsx | 3 +- .../input/components/DoubleTextInput.tsx | 2 +- .../input/components/MultiSelectInput.tsx | 2 +- .../field/input/components/TextAreaInput.tsx | 2 +- .../ui/input/components/ImageInput.tsx | 3 +- .../modules/ui/input/components/Select.tsx | 2 +- .../ui/input/components/SelectControl.tsx | 7 +--- .../ui/input/components/SelectInput.tsx | 3 +- .../modules/ui/input/components/TextInput.tsx | 2 +- .../date/components/DateTimeInput.tsx | 2 +- .../date/components/InternalDatePicker.tsx | 2 +- .../InternalDatePicker.stories.tsx | 2 +- .../PhoneCountryPickerDropdownButton.tsx | 2 +- .../useInputFocusWithoutScrollOnMount.ts | 2 +- .../layout/bottom-bar/hooks/useBottomBar.ts | 2 +- .../layout/dropdown/components/Dropdown.tsx | 2 +- .../components/DropdownMenuHeader.tsx | 3 +- .../ui/layout/dropdown/hooks/useDropdown.ts | 2 +- .../ui/layout/dropdown/hooks/useDropdownV2.ts | 2 +- .../components/ExpandableList.tsx | 2 +- .../__stories__/ExpandableList.stories.tsx | 8 +--- .../utils/isFirstOverflowingChildElement.ts | 2 +- .../ui/layout/hooks/useShowAuthModal.ts | 2 +- .../right-drawer/components/RightDrawer.tsx | 2 +- .../components/RightDrawerRouter.tsx | 2 +- .../components/SelectableList.tsx | 2 +- .../hooks/useSelectableList.ts | 2 +- .../components/ShowPageSummaryCard.tsx | 2 +- .../ui/layout/table/hooks/useSortedArray.ts | 2 +- .../components/EditableBreadcrumbItem.tsx | 2 +- .../components/NavigationDrawerInput.tsx | 3 +- .../components/NavigationDrawerItem.tsx | 3 +- .../NavigationDrawerSectionTitle.tsx | 2 +- .../hotkey/hooks/useScopedHotkeys.ts | 2 +- .../hotkey/hooks/useSequenceScopedHotkeys.ts | 2 +- .../hotkey/hooks/useSetHotkeyScope.ts | 2 +- .../__tests__/useListenClickOutside.test.tsx | 2 +- .../hooks/useClickOutsideListener.ts | 2 +- .../utils/createComponentFamilySelectorV2.ts | 2 +- .../utils/createComponentFamilyStateV2.ts | 2 +- .../utils/createComponentSelectorV2.ts | 2 +- .../utils/createComponentStateV2.ts | 2 +- .../utils/createComponentStateV2Alpha.ts | 2 +- .../globalComponentInstanceContextMap.ts | 2 +- .../users/components/UserProviderEffect.tsx | 2 +- .../AdvancedFilterDropdownButton.tsx | 2 +- .../EditableFilterDropdownButton.tsx | 2 +- .../components/QueryParamsViewIdEffect.tsx | 2 +- .../views/components/ViewBarDetails.tsx | 2 +- .../views/components/ViewBarFilterEffect.tsx | 2 +- .../components/ViewBarRecordFilterEffect.tsx | 2 +- .../views/components/ViewBarSortEffect.tsx | 2 +- .../ViewFieldsVisibilityDropdownSection.tsx | 2 +- .../usePersistViewFilterGroupRecords.ts | 2 +- .../hooks/internal/useViewFromQueryParams.ts | 2 +- ...urrentViewFiltersToCurrentRecordFilters.ts | 2 +- .../hooks/useCreateViewFromCurrentView.ts | 2 +- .../hooks/useDeleteCombinedViewFilters.ts | 2 +- .../views/hooks/useDeleteCombinedViewSorts.ts | 2 +- .../hooks/useGetCombinedViewFilterGroups.ts | 2 +- .../views/hooks/useGetCombinedViewFilters.ts | 2 +- .../views/hooks/useGetCombinedViewSorts.ts | 2 +- .../modules/views/hooks/useGetCurrentView.ts | 2 +- .../views/hooks/useSaveCurrentViewFields.ts | 2 +- .../useSaveCurrentViewFiltersAndSorts.ts | 2 +- .../views/hooks/useSaveCurrentViewGroups.ts | 2 +- .../useSaveRecordFiltersToViewFilters.ts | 2 +- .../views/hooks/useUpdateCurrentView.ts | 2 +- .../src/modules/views/hooks/useUpdateView.ts | 2 +- .../modules/views/hooks/useUpdateViewField.ts | 2 +- .../hooks/useUpsertCombinedViewFilters.ts | 2 +- .../views/hooks/useUpsertCombinedViewSorts.ts | 2 +- .../views/utils/getQueryVariablesFromView.ts | 2 +- .../views/utils/getViewFiltersToCreate.ts | 2 +- .../views/utils/getViewFiltersToUpdate.ts | 2 +- .../utils/mapViewFieldsToColumnDefinitions.ts | 2 +- .../views/utils/mapViewFiltersToFilters.ts | 2 +- .../mapViewGroupsToRecordGroupDefinitions.ts | 2 +- .../views/utils/mapViewSortsToSorts.ts | 2 +- .../views/utils/shouldReplaceFilter.ts | 2 +- .../components/ViewPickerContentEffect.tsx | 2 +- .../components/ViewPickerDropdown.tsx | 2 +- .../components/ViewPickerListContent.tsx | 2 +- .../hooks/useGetAvailableFieldsForKanban.ts | 2 +- .../RecordShowPageWorkflowHeader.tsx | 2 +- .../RecordShowPageWorkflowVersionHeader.tsx | 10 ++--- .../WorkflowRunOutputVisualizer.tsx | 3 +- .../WorkflowRunVersionVisualizer.tsx | 2 +- .../hooks/useAllActiveWorkflowVersions.ts | 2 +- .../hooks/useDeleteWorkflowVersionStep.ts | 18 ++++----- .../hooks/useWorkflowWithCurrentVersion.ts | 2 +- ...sertWorkflowWithCurrentVersionIsDefined.ts | 2 +- .../workflow/utils/findStepPosition.ts | 2 +- .../utils/getStepDefinitionOrThrow.ts | 2 +- .../WorkflowDiagramBaseStepNode.tsx | 4 +- .../components/WorkflowDiagramCanvasBase.tsx | 3 +- .../WorkflowDiagramCanvasEditableEffect.tsx | 3 +- .../WorkflowDiagramCanvasReadonlyEffect.tsx | 3 +- .../components/WorkflowDiagramEffect.tsx | 2 +- .../components/WorkflowVersionVisualizer.tsx | 2 +- .../WorkflowVersionVisualizerEffect.tsx | 2 +- .../components/WorkflowVisualizer.tsx | 2 +- .../hooks/useTriggerNodeSelection.ts | 2 +- .../utils/generateWorkflowDiagram.ts | 2 +- .../utils/getWorkflowVersionDiagram.ts | 2 +- .../RightDrawerWorkflowEditStep.tsx | 2 +- .../RightDrawerWorkflowEditStepContent.tsx | 2 +- .../RightDrawerWorkflowViewStep.tsx | 2 +- .../RightDrawerWorkflowViewStepContent.tsx | 2 +- .../components/WorkflowStepDetail.tsx | 2 +- .../workflow-steps/hooks/useCreateStep.ts | 3 +- .../hooks/useCreateWorkflowVersionStep.ts | 18 ++++----- .../workflow-steps/hooks/useUpdateStep.ts | 2 +- .../hooks/useUpdateWorkflowVersionStep.ts | 16 ++++---- .../RightDrawerWorkflowSelectAction.tsx | 2 +- .../WorkflowEditActionFormCreateRecord.tsx | 3 +- .../WorkflowEditActionFormDeleteRecord.tsx | 3 +- .../WorkflowEditActionFormSendEmail.tsx | 3 +- ...rkflowEditActionFormServerlessFunction.tsx | 9 +---- .../WorkflowEditActionFormUpdateRecord.tsx | 3 +- .../components/WorkflowSingleRecordPicker.tsx | 9 +---- .../utils/getWrongExportedFunctionMarkers.ts | 2 +- .../RightDrawerWorkflowSelectTriggerType.tsx | 2 +- .../WorkflowEditTriggerDatabaseEventForm.tsx | 3 +- .../WorkflowEditTriggerManualForm.tsx | 3 +- .../hooks/useUpdateWorkflowVersionTrigger.ts | 6 +-- .../components/WorkflowVariablesDropdown.tsx | 3 +- .../WorkflowVariablesDropdownFieldItems.tsx | 2 +- .../useAvailableVariablesInWorkflowStep.ts | 2 +- .../utils/extractVariableLabel.ts | 2 +- .../utils/filterOutputSchema.ts | 2 +- .../utils/getStepHeaderLabel.ts | 2 +- .../utils/getTriggerStepName.ts | 3 +- .../utils/parseEditorContent.ts | 2 +- .../components/WorkspaceInviteTeam.tsx | 2 +- .../components/WorkspaceProviderEffect.tsx | 2 +- .../twenty-front/src/pages/auth/Authorize.tsx | 2 +- .../twenty-front/src/pages/auth/SignInUp.tsx | 2 +- .../pages/object-record/RecordIndexPage.tsx | 3 +- .../src/pages/onboarding/ChooseYourPlan.tsx | 2 +- .../src/pages/onboarding/CreateProfile.tsx | 2 +- .../src/pages/onboarding/CreateWorkspace.tsx | 2 +- .../src/pages/onboarding/InviteTeam.tsx | 2 +- .../src/pages/onboarding/PaymentSuccess.tsx | 16 +++----- .../src/pages/settings/SettingsBilling.tsx | 4 +- .../settings/SettingsWorkspaceMembers.tsx | 2 +- .../data-model/SettingsObjectDetailPage.tsx | 3 +- .../data-model/SettingsObjectFieldEdit.tsx | 2 +- .../SettingsObjectNewFieldSelect.tsx | 2 +- .../utils/getSettingsObjectFieldType.ts | 2 +- .../api-keys/SettingsDevelopersApiKeysNew.tsx | 2 +- .../SettingsDevelopersWebhookDetail.tsx | 2 +- .../SettingsDevelopersWebhooksNew.tsx | 3 +- .../components/DateTimeSettings.tsx | 2 +- .../DateTimeSettingsTimeZoneSelect.tsx | 2 +- .../appearance/components/LocalePicker.tsx | 3 +- .../SettingsServerlessFunctionDetail.tsx | 2 +- .../SettingsServerlessFunctionsNew.tsx | 2 +- .../settings/workspace/SettingsHostname.tsx | 24 ++++++------ .../workspace/SettingsHostnameEffect.tsx | 4 +- .../settings/workspace/SettingsSubdomain.tsx | 6 +-- .../decorators/RecordTableDecorator.tsx | 2 +- .../testing/decorators/getFieldDecorator.tsx | 2 +- .../src/testing/mock-data/index.ts | 3 +- .../profiling/components/ProfilerWrapper.tsx | 2 +- .../utils/getProfilingReportFromDocument.ts | 2 +- .../profiling/utils/getProfilingStory.ts | 2 +- .../twenty-front/src/utils/combineRefs.ts | 2 +- packages/twenty-front/src/utils/date-utils.ts | 2 +- .../src/utils/getDisplayValueByUrlType.ts | 2 +- packages/twenty-front/src/utils/is-domain.ts | 2 +- packages/twenty-front/src/utils/isDefined.ts | 4 -- .../src/utils/navigation/getAppPath.ts | 2 +- .../src/utils/navigation/getSettingsPath.ts | 2 +- packages/twenty-front/src/utils/parseJson.ts | 2 +- .../twenty-front/src/utils/recoil-effects.ts | 5 +-- ...te-aggregate-operations-options.command.ts | 2 +- ...ct-records-to-graphql-connection.helper.ts | 3 +- .../helpers/process-aggregate.helper.ts | 2 +- ...raphql-query-find-many-resolver.service.ts | 3 +- .../graphql-query-search-resolver.service.ts | 2 +- .../query-result-getters.factory.ts | 3 +- .../utils/with-soft-deleted.util.ts | 4 +- ...nner-graphql-api-exception-handler.util.ts | 2 +- .../filter-utils/format-field-values.utils.ts | 3 +- .../services/domain-manager.service.ts | 16 ++++---- .../utils/get-subdomain-from-email.ts | 5 ++- .../get-subdomain-name-from-display-name.ts | 2 +- .../validates/feature-flag.validate.ts | 3 +- .../file-storage/drivers/s3.driver.ts | 7 ++-- .../jwt/services/jwt-wrapper.service.ts | 2 +- .../serverless/drivers/lambda.driver.ts | 38 +++++++++---------- .../engine/core-modules/user/user.validate.ts | 5 ++- .../workspace/services/workspace.service.ts | 5 +-- .../get-auth-providers-by-workspace.util.ts | 3 +- .../workspace/workspace.resolver.ts | 4 +- .../field-metadata/field-metadata.service.ts | 3 +- .../index-metadata/index-metadata.service.ts | 2 +- .../permissions/permissions.service.ts | 2 +- .../relation-metadata.service.ts | 3 +- .../metadata-modules/search/search.service.ts | 3 +- .../serverless-function.service.ts | 2 +- .../engine/middlewares/middleware.service.ts | 2 +- .../src/engine/seeder/seeder.service.ts | 3 +- ...-from-composite-field-and-subfield.util.ts | 4 +- .../gmail-get-message-list.service.ts | 2 +- .../services/gmail-get-messages.service.ts | 2 +- .../microsoft-get-messages.service.ts | 3 +- ...workflow-version-step.workspace-service.ts | 2 +- .../workflow-builder.workspace-service.ts | 2 +- .../mail-sender/send-email.workflow-action.ts | 2 +- .../jobs/workflow-statuses-update.job.ts | 13 ++++--- .../src/utils/compute-display-name.ts | 3 +- .../twenty-server/src/utils/is-defined.ts | 3 -- packages/twenty-shared/src/index.ts | 2 +- .../src/utils/__tests__/isDefined.test.ts | 3 +- .../src/utils/isDefined.ts | 0 .../display/chip/components/AvatarChip.tsx | 2 +- .../src/display/tag/components/Tag.tsx | 2 +- .../tooltip/OverflowingTextWithTooltip.tsx | 2 +- .../hooks/useProgressAnimation.ts | 4 +- .../input/button/components/ButtonGroup.tsx | 2 +- .../button/components/FloatingButtonGroup.tsx | 2 +- .../code-editor/components/CodeEditor.tsx | 12 +++--- .../AnimatedExpandableContainer.tsx | 2 +- .../menu-item/components/MenuItemAvatar.tsx | 2 +- .../getCanvasElementForDropdownTesting.ts | 2 +- .../src/theme/utils/getNextThemeColor.ts | 2 +- .../components/ComputeNodeDimensions.tsx | 2 +- packages/twenty-ui/src/utilities/index.ts | 1 - packages/twenty-ui/src/utilities/isDefined.ts | 4 -- .../utils/getDisplayValueByUrlType.ts | 2 +- 559 files changed, 731 insertions(+), 770 deletions(-) delete mode 100644 packages/twenty-front/src/utils/isDefined.ts delete mode 100644 packages/twenty-server/src/utils/is-defined.ts rename packages/{twenty-front => twenty-shared}/src/utils/__tests__/isDefined.test.ts (87%) rename packages/{twenty-chrome-extension => twenty-shared}/src/utils/isDefined.ts (100%) delete mode 100644 packages/twenty-ui/src/utilities/isDefined.ts diff --git a/packages/twenty-chrome-extension/package.json b/packages/twenty-chrome-extension/package.json index a9dffcb331c..935a06e8d68 100644 --- a/packages/twenty-chrome-extension/package.json +++ b/packages/twenty-chrome-extension/package.json @@ -6,5 +6,8 @@ "type": "module", "scripts": { "build": "npx vite build" + }, + "dependencies": { + "twenty-shared": "workspace:*" } } diff --git a/packages/twenty-chrome-extension/src/background/index.ts b/packages/twenty-chrome-extension/src/background/index.ts index b892790d44b..9288c1b97fd 100644 --- a/packages/twenty-chrome-extension/src/background/index.ts +++ b/packages/twenty-chrome-extension/src/background/index.ts @@ -1,4 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; // Open options page programmatically in a new tab. // chrome.runtime.onInstalled.addListener((details) => { diff --git a/packages/twenty-chrome-extension/src/contentScript/createButton.ts b/packages/twenty-chrome-extension/src/contentScript/createButton.ts index b68adca357e..2a616526af0 100644 --- a/packages/twenty-chrome-extension/src/contentScript/createButton.ts +++ b/packages/twenty-chrome-extension/src/contentScript/createButton.ts @@ -1,4 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; interface CustomDiv extends HTMLDivElement { onClickHandler: (newHandler: () => void) => void; diff --git a/packages/twenty-chrome-extension/src/contentScript/extractCompanyProfile.ts b/packages/twenty-chrome-extension/src/contentScript/extractCompanyProfile.ts index 14d65addbc6..b912158a1c0 100644 --- a/packages/twenty-chrome-extension/src/contentScript/extractCompanyProfile.ts +++ b/packages/twenty-chrome-extension/src/contentScript/extractCompanyProfile.ts @@ -1,10 +1,10 @@ +import { isDefined } from 'twenty-shared'; import { createDefaultButton } from '~/contentScript/createButton'; import changeSidePanelUrl from '~/contentScript/utils/changeSidepanelUrl'; import extractCompanyLinkedinLink from '~/contentScript/utils/extractCompanyLinkedinLink'; import extractDomain from '~/contentScript/utils/extractDomain'; import { createCompany, fetchCompany } from '~/db/company.db'; import { CompanyInput } from '~/db/types/company.types'; -import { isDefined } from '~/utils/isDefined'; export const checkIfCompanyExists = async () => { const { tab: activeTab } = await chrome.runtime.sendMessage({ diff --git a/packages/twenty-chrome-extension/src/contentScript/extractPersonProfile.ts b/packages/twenty-chrome-extension/src/contentScript/extractPersonProfile.ts index eefcfefac72..ae0afa87a5d 100644 --- a/packages/twenty-chrome-extension/src/contentScript/extractPersonProfile.ts +++ b/packages/twenty-chrome-extension/src/contentScript/extractPersonProfile.ts @@ -1,9 +1,9 @@ +import { isDefined } from 'twenty-shared'; import { createDefaultButton } from '~/contentScript/createButton'; import changeSidePanelUrl from '~/contentScript/utils/changeSidepanelUrl'; import extractFirstAndLastName from '~/contentScript/utils/extractFirstAndLastName'; import { createPerson, fetchPerson } from '~/db/person.db'; import { PersonInput } from '~/db/types/person.types'; -import { isDefined } from '~/utils/isDefined'; export const checkIfPersonExists = async () => { const { tab: activeTab } = await chrome.runtime.sendMessage({ diff --git a/packages/twenty-chrome-extension/src/contentScript/index.ts b/packages/twenty-chrome-extension/src/contentScript/index.ts index e5b0216c2b7..db538b29c4a 100644 --- a/packages/twenty-chrome-extension/src/contentScript/index.ts +++ b/packages/twenty-chrome-extension/src/contentScript/index.ts @@ -1,6 +1,6 @@ +import { isDefined } from 'twenty-shared'; import { insertButtonForCompany } from '~/contentScript/extractCompanyProfile'; import { insertButtonForPerson } from '~/contentScript/extractPersonProfile'; -import { isDefined } from '~/utils/isDefined'; // Inject buttons into the DOM when SPA is reloaded on the resource url. // e.g. reload the page when on https://www.linkedin.com/in/mabdullahabaid/ diff --git a/packages/twenty-chrome-extension/src/contentScript/insertSettingsButton.ts b/packages/twenty-chrome-extension/src/contentScript/insertSettingsButton.ts index e5722355f05..35111027812 100644 --- a/packages/twenty-chrome-extension/src/contentScript/insertSettingsButton.ts +++ b/packages/twenty-chrome-extension/src/contentScript/insertSettingsButton.ts @@ -1,4 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const btn = document.getElementById('twenty-settings-btn'); if (!isDefined(btn)) { diff --git a/packages/twenty-chrome-extension/src/contentScript/utils/changeSidepanelUrl.ts b/packages/twenty-chrome-extension/src/contentScript/utils/changeSidepanelUrl.ts index 087346e5736..43f5ba5550a 100644 --- a/packages/twenty-chrome-extension/src/contentScript/utils/changeSidepanelUrl.ts +++ b/packages/twenty-chrome-extension/src/contentScript/utils/changeSidepanelUrl.ts @@ -1,4 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const changeSidePanelUrl = async (url: string) => { if (isDefined(url)) { diff --git a/packages/twenty-chrome-extension/src/contentScript/utils/extractCompanyLinkedinLink.ts b/packages/twenty-chrome-extension/src/contentScript/utils/extractCompanyLinkedinLink.ts index 31424e4cf28..d4f2c5e4926 100644 --- a/packages/twenty-chrome-extension/src/contentScript/utils/extractCompanyLinkedinLink.ts +++ b/packages/twenty-chrome-extension/src/contentScript/utils/extractCompanyLinkedinLink.ts @@ -1,6 +1,6 @@ // Extract "https://www.linkedin.com/company/twenty/" from any of the following urls, which the user can visit while on the company page. -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; // "https://www.linkedin.com/company/twenty/" "https://www.linkedin.com/company/twenty/about/" "https://www.linkedin.com/company/twenty/people/". const extractCompanyLinkedinLink = (activeTabUrl: string) => { diff --git a/packages/twenty-chrome-extension/src/db/auth.db.ts b/packages/twenty-chrome-extension/src/db/auth.db.ts index 9bc4c3d77db..42a88e80737 100644 --- a/packages/twenty-chrome-extension/src/db/auth.db.ts +++ b/packages/twenty-chrome-extension/src/db/auth.db.ts @@ -1,10 +1,10 @@ +import { isDefined } from 'twenty-shared'; import { ExchangeAuthCodeInput, ExchangeAuthCodeResponse, Tokens, } from '~/db/types/auth.types'; import { EXCHANGE_AUTHORIZATION_CODE } from '~/graphql/auth/mutations'; -import { isDefined } from '~/utils/isDefined'; import { callMutation } from '~/utils/requestDb'; export const exchangeAuthorizationCode = async ( diff --git a/packages/twenty-chrome-extension/src/db/company.db.ts b/packages/twenty-chrome-extension/src/db/company.db.ts index bff265f79ee..b5bee62abaf 100644 --- a/packages/twenty-chrome-extension/src/db/company.db.ts +++ b/packages/twenty-chrome-extension/src/db/company.db.ts @@ -1,3 +1,4 @@ +import { isDefined } from 'twenty-shared'; import { CompanyInput, CreateCompanyResponse, @@ -6,7 +7,6 @@ import { import { Company, CompanyFilterInput } from '~/generated/graphql'; import { CREATE_COMPANY } from '~/graphql/company/mutations'; import { FIND_COMPANY } from '~/graphql/company/queries'; -import { isDefined } from '~/utils/isDefined'; import { callMutation, callQuery } from '../utils/requestDb'; diff --git a/packages/twenty-chrome-extension/src/db/person.db.ts b/packages/twenty-chrome-extension/src/db/person.db.ts index 607233ba97c..fd78909d277 100644 --- a/packages/twenty-chrome-extension/src/db/person.db.ts +++ b/packages/twenty-chrome-extension/src/db/person.db.ts @@ -1,3 +1,4 @@ +import { isDefined } from 'twenty-shared'; import { CreatePersonResponse, FindPersonResponse, @@ -6,7 +7,6 @@ import { import { Person, PersonFilterInput } from '~/generated/graphql'; import { CREATE_PERSON } from '~/graphql/person/mutations'; import { FIND_PERSON } from '~/graphql/person/queries'; -import { isDefined } from '~/utils/isDefined'; import { callMutation, callQuery } from '../utils/requestDb'; diff --git a/packages/twenty-chrome-extension/src/db/token.db.ts b/packages/twenty-chrome-extension/src/db/token.db.ts index 44fc354b38c..8bfb01a9a86 100644 --- a/packages/twenty-chrome-extension/src/db/token.db.ts +++ b/packages/twenty-chrome-extension/src/db/token.db.ts @@ -1,8 +1,8 @@ import { ApolloClient, InMemoryCache } from '@apollo/client'; +import { isDefined } from 'twenty-shared'; import { Tokens } from '~/db/types/auth.types'; import { RENEW_TOKEN } from '~/graphql/auth/mutations'; -import { isDefined } from '~/utils/isDefined'; export const renewToken = async ( appToken: string, diff --git a/packages/twenty-chrome-extension/src/options/App.tsx b/packages/twenty-chrome-extension/src/options/App.tsx index ba8e7911013..aeab5219b5a 100644 --- a/packages/twenty-chrome-extension/src/options/App.tsx +++ b/packages/twenty-chrome-extension/src/options/App.tsx @@ -1,8 +1,8 @@ import { useEffect, useState } from 'react'; +import { isDefined } from 'twenty-shared'; import Settings from '~/options/Settings'; import Sidepanel from '~/options/Sidepanel'; -import { isDefined } from '~/utils/isDefined'; const App = () => { const [currentScreen, setCurrentScreen] = useState(''); diff --git a/packages/twenty-chrome-extension/src/options/Settings.tsx b/packages/twenty-chrome-extension/src/options/Settings.tsx index e4c959ba089..b9671c03047 100644 --- a/packages/twenty-chrome-extension/src/options/Settings.tsx +++ b/packages/twenty-chrome-extension/src/options/Settings.tsx @@ -1,10 +1,10 @@ -import { useEffect, useState } from 'react'; import styled from '@emotion/styled'; +import { useEffect, useState } from 'react'; import { MainButton } from '@/ui/input/button/MainButton'; import { TextInput } from '@/ui/input/components/TextInput'; +import { isDefined } from 'twenty-shared'; import { clearStore } from '~/utils/apolloClient'; -import { isDefined } from '~/utils/isDefined'; const StyledWrapper = styled.div` align-items: center; diff --git a/packages/twenty-chrome-extension/src/options/Sidepanel.tsx b/packages/twenty-chrome-extension/src/options/Sidepanel.tsx index 3bea68701af..bbdfcc21f4d 100644 --- a/packages/twenty-chrome-extension/src/options/Sidepanel.tsx +++ b/packages/twenty-chrome-extension/src/options/Sidepanel.tsx @@ -1,8 +1,8 @@ -import { useCallback, useEffect, useRef, useState } from 'react'; import styled from '@emotion/styled'; +import { useCallback, useEffect, useRef, useState } from 'react'; import { MainButton } from '@/ui/input/button/MainButton'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledIframe = styled.iframe` display: block; diff --git a/packages/twenty-chrome-extension/src/options/modules/ui/input/components/Toggle.tsx b/packages/twenty-chrome-extension/src/options/modules/ui/input/components/Toggle.tsx index 7decf1d13ff..83a75d818eb 100644 --- a/packages/twenty-chrome-extension/src/options/modules/ui/input/components/Toggle.tsx +++ b/packages/twenty-chrome-extension/src/options/modules/ui/input/components/Toggle.tsx @@ -1,8 +1,8 @@ -import { useEffect, useState } from 'react'; import styled from '@emotion/styled'; import { motion } from 'framer-motion'; +import { useEffect, useState } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export type ToggleSize = 'small' | 'medium'; diff --git a/packages/twenty-chrome-extension/src/utils/apolloClient.ts b/packages/twenty-chrome-extension/src/utils/apolloClient.ts index 058a2a16b8b..a8d01dfda61 100644 --- a/packages/twenty-chrome-extension/src/utils/apolloClient.ts +++ b/packages/twenty-chrome-extension/src/utils/apolloClient.ts @@ -2,7 +2,7 @@ import { ApolloClient, from, HttpLink, InMemoryCache } from '@apollo/client'; import { setContext } from '@apollo/client/link/context'; import { onError } from '@apollo/client/link/error'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const clearStore = () => { chrome.storage.local.remove([ diff --git a/packages/twenty-chrome-extension/src/utils/requestDb.ts b/packages/twenty-chrome-extension/src/utils/requestDb.ts index c647089f639..77d37e10d56 100644 --- a/packages/twenty-chrome-extension/src/utils/requestDb.ts +++ b/packages/twenty-chrome-extension/src/utils/requestDb.ts @@ -1,8 +1,8 @@ import { OperationVariables } from '@apollo/client'; import { DocumentNode } from 'graphql'; +import { isDefined } from 'twenty-shared'; import getApolloClient from '~/utils/apolloClient'; -import { isDefined } from '~/utils/isDefined'; export const callQuery = async ( query: DocumentNode, diff --git a/packages/twenty-front/src/hooks/useScrollRestoration.ts b/packages/twenty-front/src/hooks/useScrollRestoration.ts index 9ef8354f721..1da2f30c350 100644 --- a/packages/twenty-front/src/hooks/useScrollRestoration.ts +++ b/packages/twenty-front/src/hooks/useScrollRestoration.ts @@ -5,7 +5,7 @@ import { scrollWrapperInstanceComponentState } from '@/ui/utilities/scroll/state import { scrollWrapperScrollTopComponentState } from '@/ui/utilities/scroll/states/scrollWrapperScrollTopComponentState'; import { useRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentStateV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; /** * @deprecated We should now use useScrollToPosition instead diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/components/RecordActionMenuEntriesSetter.tsx b/packages/twenty-front/src/modules/action-menu/actions/record-actions/components/RecordActionMenuEntriesSetter.tsx index 15f8d08502b..4bbd1aa1510 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/components/RecordActionMenuEntriesSetter.tsx +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/components/RecordActionMenuEntriesSetter.tsx @@ -9,7 +9,7 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FeatureFlagKey } from '~/generated/graphql'; export const RecordActionMenuEntriesSetter = () => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/multiple-records/hooks/useDeleteMultipleRecordsAction.tsx b/packages/twenty-front/src/modules/action-menu/actions/record-actions/multiple-records/hooks/useDeleteMultipleRecordsAction.tsx index 6b052d60c38..df752634b61 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/multiple-records/hooks/useDeleteMultipleRecordsAction.tsx +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/multiple-records/hooks/useDeleteMultipleRecordsAction.tsx @@ -14,7 +14,7 @@ import { useRecordTable } from '@/object-record/record-table/hooks/useRecordTabl import { ConfirmationModal } from '@/ui/layout/modal/components/ConfirmationModal'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useCallback, useState } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useDeleteMultipleRecordsAction: ActionHookWithObjectMetadataItem = ({ objectMetadataItem }) => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useAddToFavoritesSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useAddToFavoritesSingleRecordAction.ts index eace0a761de..0043969002f 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useAddToFavoritesSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useAddToFavoritesSingleRecordAction.ts @@ -5,7 +5,7 @@ import { useFavorites } from '@/favorites/hooks/useFavorites'; import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; import { isNull } from '@sniptt/guards'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useAddToFavoritesSingleRecordAction: ActionHookWithObjectMetadataItem = ({ objectMetadataItem }) => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDeleteSingleRecordAction.tsx b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDeleteSingleRecordAction.tsx index 0fbc2ad3679..0d96a275974 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDeleteSingleRecordAction.tsx +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDeleteSingleRecordAction.tsx @@ -11,7 +11,7 @@ import { useRightDrawer } from '@/ui/layout/right-drawer/hooks/useRightDrawer'; import { isNull } from '@sniptt/guards'; import { useCallback, useContext, useState } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useDeleteSingleRecordAction: ActionHookWithObjectMetadataItem = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDestroySingleRecordAction.tsx b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDestroySingleRecordAction.tsx index cea62d14316..5278bffea64 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDestroySingleRecordAction.tsx +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useDestroySingleRecordAction.tsx @@ -9,7 +9,7 @@ import { ConfirmationModal } from '@/ui/layout/modal/components/ConfirmationModa import { useRightDrawer } from '@/ui/layout/right-drawer/hooks/useRightDrawer'; import { useCallback, useContext, useState } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useDestroySingleRecordAction: ActionHookWithObjectMetadataItem = ({ diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useExportNoteAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useExportNoteAction.ts index 80f3b196066..649350ee4de 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useExportNoteAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useExportNoteAction.ts @@ -4,7 +4,7 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; import { BlockNoteEditor } from '@blocknote/core'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useExportNoteAction: ActionHookWithObjectMetadataItem = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useRemoveFromFavoritesSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useRemoveFromFavoritesSingleRecordAction.ts index 00d924365a4..202a5620ecb 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useRemoveFromFavoritesSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/hooks/useRemoveFromFavoritesSingleRecordAction.ts @@ -2,7 +2,7 @@ import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions import { ActionHookWithObjectMetadataItem } from '@/action-menu/actions/types/ActionHook'; import { useDeleteFavorite } from '@/favorites/hooks/useDeleteFavorite'; import { useFavorites } from '@/favorites/hooks/useFavorites'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useRemoveFromFavoritesSingleRecordAction: ActionHookWithObjectMetadataItem = ({ objectMetadataItem }) => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useActivateWorkflowSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useActivateWorkflowSingleRecordAction.ts index f5a4bc3163b..e6d6cd561ff 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useActivateWorkflowSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useActivateWorkflowSingleRecordAction.ts @@ -2,7 +2,7 @@ import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions import { ActionHookWithoutObjectMetadataItem } from '@/action-menu/actions/types/ActionHook'; import { useActivateWorkflowVersion } from '@/workflow/hooks/useActivateWorkflowVersion'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useActivateWorkflowSingleRecordAction: ActionHookWithoutObjectMetadataItem = () => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDeactivateWorkflowSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDeactivateWorkflowSingleRecordAction.ts index 873993ee476..b6709245d35 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDeactivateWorkflowSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDeactivateWorkflowSingleRecordAction.ts @@ -2,7 +2,7 @@ import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions import { ActionHookWithoutObjectMetadataItem } from '@/action-menu/actions/types/ActionHook'; import { useDeactivateWorkflowVersion } from '@/workflow/hooks/useDeactivateWorkflowVersion'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useDeactivateWorkflowSingleRecordAction: ActionHookWithoutObjectMetadataItem = () => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDiscardDraftWorkflowSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDiscardDraftWorkflowSingleRecordAction.ts index d5db87b19cd..2f7c9e3bb71 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDiscardDraftWorkflowSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useDiscardDraftWorkflowSingleRecordAction.ts @@ -2,7 +2,7 @@ import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions import { ActionHookWithoutObjectMetadataItem } from '@/action-menu/actions/types/ActionHook'; import { useDeleteOneWorkflowVersion } from '@/workflow/hooks/useDeleteOneWorkflowVersion'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useDiscardDraftWorkflowSingleRecordAction: ActionHookWithoutObjectMetadataItem = () => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeActiveVersionWorkflowSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeActiveVersionWorkflowSingleRecordAction.ts index e5d653c8887..6198b13a233 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeActiveVersionWorkflowSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeActiveVersionWorkflowSingleRecordAction.ts @@ -4,7 +4,7 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi import { AppPath } from '@/types/AppPath'; import { useActiveWorkflowVersion } from '@/workflow/hooks/useActiveWorkflowVersion'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useSeeActiveVersionWorkflowSingleRecordAction: ActionHookWithoutObjectMetadataItem = diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeRunsWorkflowSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeRunsWorkflowSingleRecordAction.ts index b5933d9a9f1..68669ffd2d1 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeRunsWorkflowSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeRunsWorkflowSingleRecordAction.ts @@ -4,7 +4,7 @@ import { CoreObjectNamePlural } from '@/object-metadata/types/CoreObjectNamePlur import { AppPath } from '@/types/AppPath'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useSeeRunsWorkflowSingleRecordAction: ActionHookWithoutObjectMetadataItem = diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeVersionsWorkflowSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeVersionsWorkflowSingleRecordAction.ts index bb2f70f8b0d..6dd43d603a9 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeVersionsWorkflowSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useSeeVersionsWorkflowSingleRecordAction.ts @@ -4,7 +4,7 @@ import { CoreObjectNamePlural } from '@/object-metadata/types/CoreObjectNamePlur import { AppPath } from '@/types/AppPath'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useSeeVersionsWorkflowSingleRecordAction: ActionHookWithoutObjectMetadataItem = diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useTestWorkflowSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useTestWorkflowSingleRecordAction.ts index 2736ab0f162..662edbf0634 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useTestWorkflowSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-actions/hooks/useTestWorkflowSingleRecordAction.ts @@ -2,7 +2,7 @@ import { useSelectedRecordIdOrThrow } from '@/action-menu/actions/record-actions import { ActionHookWithoutObjectMetadataItem } from '@/action-menu/actions/types/ActionHook'; import { useRunWorkflowVersion } from '@/workflow/hooks/useRunWorkflowVersion'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useTestWorkflowSingleRecordAction: ActionHookWithoutObjectMetadataItem = () => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeRunsWorkflowVersionSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeRunsWorkflowVersionSingleRecordAction.ts index dc3c0a33bbd..e014985f62c 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeRunsWorkflowVersionSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeRunsWorkflowVersionSingleRecordAction.ts @@ -6,7 +6,7 @@ import { AppPath } from '@/types/AppPath'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useSeeRunsWorkflowVersionSingleRecordAction: ActionHookWithoutObjectMetadataItem = diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeVersionsWorkflowVersionSingleRecordAction.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeVersionsWorkflowVersionSingleRecordAction.ts index 01c6340bda5..4546a46aec6 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeVersionsWorkflowVersionSingleRecordAction.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useSeeVersionsWorkflowVersionSingleRecordAction.ts @@ -6,7 +6,7 @@ import { AppPath } from '@/types/AppPath'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useSeeVersionsWorkflowVersionSingleRecordAction: ActionHookWithoutObjectMetadataItem = diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useUseAsDraftWorkflowVersionSingleRecordAction.tsx b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useUseAsDraftWorkflowVersionSingleRecordAction.tsx index 3f94091f26a..156f659877e 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useUseAsDraftWorkflowVersionSingleRecordAction.tsx +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/workflow-version-actions/hooks/useUseAsDraftWorkflowVersionSingleRecordAction.tsx @@ -8,7 +8,7 @@ import { useWorkflowVersion } from '@/workflow/hooks/useWorkflowVersion'; import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithCurrentVersion'; import { openOverrideWorkflowDraftConfirmationModalState } from '@/workflow/states/openOverrideWorkflowDraftConfirmationModalState'; import { useSetRecoilState } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useUseAsDraftWorkflowVersionSingleRecordAction: ActionHookWithoutObjectMetadataItem = diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/workflow-run-record-actions/hooks/useWorkflowRunRecordActions.tsx b/packages/twenty-front/src/modules/action-menu/actions/record-actions/workflow-run-record-actions/hooks/useWorkflowRunRecordActions.tsx index 8d81754837b..7740a7665e9 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/workflow-run-record-actions/hooks/useWorkflowRunRecordActions.tsx +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/workflow-run-record-actions/hooks/useWorkflowRunRecordActions.tsx @@ -12,8 +12,8 @@ import { useRunWorkflowVersion } from '@/workflow/hooks/useRunWorkflowVersion'; import { msg } from '@lingui/core/macro'; import { useRecoilValue } from 'recoil'; -import { capitalize } from 'twenty-shared'; -import { IconSettingsAutomation, isDefined } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; +import { IconSettingsAutomation } from 'twenty-ui'; export const useWorkflowRunRecordActions = ({ objectMetadataItem, }: { diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-agnostic-actions/run-workflow-actions/hooks/useRunWorkflowActions.tsx b/packages/twenty-front/src/modules/action-menu/actions/record-agnostic-actions/run-workflow-actions/hooks/useRunWorkflowActions.tsx index a143f9acaa6..4e0696a0917 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-agnostic-actions/run-workflow-actions/hooks/useRunWorkflowActions.tsx +++ b/packages/twenty-front/src/modules/action-menu/actions/record-agnostic-actions/run-workflow-actions/hooks/useRunWorkflowActions.tsx @@ -7,8 +7,8 @@ import { useRunWorkflowVersion } from '@/workflow/hooks/useRunWorkflowVersion'; import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { msg } from '@lingui/core/macro'; -import { capitalize } from 'twenty-shared'; -import { IconSettingsAutomation, isDefined } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; +import { IconSettingsAutomation } from 'twenty-ui'; import { FeatureFlagKey } from '~/generated/graphql'; export const useRunWorkflowActions = () => { diff --git a/packages/twenty-front/src/modules/action-menu/actions/utils/wrapActionInCallbacks.ts b/packages/twenty-front/src/modules/action-menu/actions/utils/wrapActionInCallbacks.ts index be82a371c43..fd766d8c3c6 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/utils/wrapActionInCallbacks.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/utils/wrapActionInCallbacks.ts @@ -1,5 +1,5 @@ import { ActionMenuEntry } from '@/action-menu/types/ActionMenuEntry'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const wrapActionInCallbacks = ({ action, diff --git a/packages/twenty-front/src/modules/action-menu/states/actionMenuEntriesComponentSelector.ts b/packages/twenty-front/src/modules/action-menu/states/actionMenuEntriesComponentSelector.ts index 9a87deb4943..03527586a04 100644 --- a/packages/twenty-front/src/modules/action-menu/states/actionMenuEntriesComponentSelector.ts +++ b/packages/twenty-front/src/modules/action-menu/states/actionMenuEntriesComponentSelector.ts @@ -2,7 +2,7 @@ import { actionMenuEntriesComponentState } from '@/action-menu/states/actionMenu import { ActionMenuComponentInstanceContext } from '@/action-menu/states/contexts/ActionMenuComponentInstanceContext'; import { ActionMenuEntry } from '@/action-menu/types/ActionMenuEntry'; import { createComponentSelectorV2 } from '@/ui/utilities/state/component-state/utils/createComponentSelectorV2'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const actionMenuEntriesComponentSelector = createComponentSelectorV2< ActionMenuEntry[] diff --git a/packages/twenty-front/src/modules/activities/blocks/components/FileBlock.tsx b/packages/twenty-front/src/modules/activities/blocks/components/FileBlock.tsx index 685fdc0c8bb..b5ad1771ea2 100644 --- a/packages/twenty-front/src/modules/activities/blocks/components/FileBlock.tsx +++ b/packages/twenty-front/src/modules/activities/blocks/components/FileBlock.tsx @@ -3,8 +3,8 @@ import styled from '@emotion/styled'; import { isNonEmptyString } from '@sniptt/guards'; import { ChangeEvent, useRef } from 'react'; +import { isDefined } from 'twenty-shared'; import { Button } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { AttachmentIcon } from '../../files/components/AttachmentIcon'; diff --git a/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventRow.tsx b/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventRow.tsx index 8fabec9d520..11cb67c02a6 100644 --- a/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventRow.tsx +++ b/packages/twenty-front/src/modules/activities/calendar/components/CalendarEventRow.tsx @@ -3,15 +3,6 @@ import styled from '@emotion/styled'; import { format } from 'date-fns'; import { useContext } from 'react'; import { useRecoilValue } from 'recoil'; -import { - Avatar, - AvatarGroup, - Card, - CardContent, - IconArrowRight, - IconLock, - isDefined, -} from 'twenty-ui'; import { CalendarCurrentEventCursor } from '@/activities/calendar/components/CalendarCurrentEventCursor'; import { CalendarContext } from '@/activities/calendar/contexts/CalendarContext'; @@ -20,6 +11,15 @@ import { getCalendarEventEndDate } from '@/activities/calendar/utils/getCalendar import { getCalendarEventStartDate } from '@/activities/calendar/utils/getCalendarEventStartDate'; import { hasCalendarEventEnded } from '@/activities/calendar/utils/hasCalendarEventEnded'; import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; +import { isDefined } from 'twenty-shared'; +import { + Avatar, + AvatarGroup, + Card, + CardContent, + IconArrowRight, + IconLock, +} from 'twenty-ui'; import { CalendarChannelVisibility, TimelineCalendarEvent, diff --git a/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts b/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts index 751122499b6..7ecb7c45600 100644 --- a/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts +++ b/packages/twenty-front/src/modules/activities/calendar/hooks/useCalendarEvents.ts @@ -3,9 +3,9 @@ import { useMemo, useState } from 'react'; import { findUpcomingCalendarEvent } from '@/activities/calendar/utils/findUpcomingCalendarEvent'; import { getCalendarEventStartDate } from '@/activities/calendar/utils/getCalendarEventStartDate'; +import { isDefined } from 'twenty-shared'; import { TimelineCalendarEvent } from '~/generated/graphql'; import { groupArrayItemsBy } from '~/utils/array/groupArrayItemsBy'; -import { isDefined } from '~/utils/isDefined'; import { sortDesc } from '~/utils/sort'; export const useCalendarEvents = (calendarEvents: TimelineCalendarEvent[]) => { diff --git a/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx b/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx index 4dab9fa2fc6..dfabf9692ab 100644 --- a/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx +++ b/packages/twenty-front/src/modules/activities/components/ActivityRichTextEditor.tsx @@ -17,7 +17,7 @@ import { RightDrawerHotkeyScope } from '@/ui/layout/right-drawer/types/RightDraw import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { isNonTextWritingKey } from '@/ui/utilities/hotkey/utils/isNonTextWritingKey'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { BLOCK_SCHEMA } from '@/activities/blocks/constants/Schema'; import { ActivityRichTextEditorChangeOnActivityIdEffect } from '@/activities/components/ActivityRichTextEditorChangeOnActivityIdEffect'; diff --git a/packages/twenty-front/src/modules/activities/emails/right-drawer/hooks/useRightDrawerEmailThread.ts b/packages/twenty-front/src/modules/activities/emails/right-drawer/hooks/useRightDrawerEmailThread.ts index 8f58f06137a..6bfa8f123a7 100644 --- a/packages/twenty-front/src/modules/activities/emails/right-drawer/hooks/useRightDrawerEmailThread.ts +++ b/packages/twenty-front/src/modules/activities/emails/right-drawer/hooks/useRightDrawerEmailThread.ts @@ -14,7 +14,7 @@ import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords'; import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord'; import { viewableRecordIdState } from '@/object-record/record-right-drawer/states/viewableRecordIdState'; import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useRightDrawerEmailThread = () => { const viewableRecordId = useRecoilValue(viewableRecordIdState); diff --git a/packages/twenty-front/src/modules/activities/emails/utils/getDisplayNameFromParticipant.ts b/packages/twenty-front/src/modules/activities/emails/utils/getDisplayNameFromParticipant.ts index ca1e63ee2aa..858f1077d76 100644 --- a/packages/twenty-front/src/modules/activities/emails/utils/getDisplayNameFromParticipant.ts +++ b/packages/twenty-front/src/modules/activities/emails/utils/getDisplayNameFromParticipant.ts @@ -1,7 +1,7 @@ import { isNonEmptyString } from '@sniptt/guards'; import { EmailThreadMessageParticipant } from '@/activities/emails/types/EmailThreadMessageParticipant'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getDisplayNameFromParticipant = ({ participant, diff --git a/packages/twenty-front/src/modules/activities/files/components/Attachments.tsx b/packages/twenty-front/src/modules/activities/files/components/Attachments.tsx index 1cc6de187a0..047bc21ba6f 100644 --- a/packages/twenty-front/src/modules/activities/files/components/Attachments.tsx +++ b/packages/twenty-front/src/modules/activities/files/components/Attachments.tsx @@ -17,7 +17,7 @@ import { DropZone } from '@/activities/files/components/DropZone'; import { useAttachments } from '@/activities/files/hooks/useAttachments'; import { useUploadAttachmentFile } from '@/activities/files/hooks/useUploadAttachmentFile'; import { ActivityTargetableObject } from '@/activities/types/ActivityTargetableEntity'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledAttachmentsContainer = styled.div` display: flex; diff --git a/packages/twenty-front/src/modules/activities/hooks/useActivityTargetObjectRecords.ts b/packages/twenty-front/src/modules/activities/hooks/useActivityTargetObjectRecords.ts index 4b8edec3a2a..63e7c48bad7 100644 --- a/packages/twenty-front/src/modules/activities/hooks/useActivityTargetObjectRecords.ts +++ b/packages/twenty-front/src/modules/activities/hooks/useActivityTargetObjectRecords.ts @@ -8,7 +8,7 @@ import { Task } from '@/activities/types/Task'; import { TaskTarget } from '@/activities/types/TaskTarget'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useActivityTargetObjectRecords = ( activity?: Task | Note, diff --git a/packages/twenty-front/src/modules/activities/hooks/usePrepareFindManyActivitiesQuery.ts b/packages/twenty-front/src/modules/activities/hooks/usePrepareFindManyActivitiesQuery.ts index 21c5e539b6f..e203711bbd7 100644 --- a/packages/twenty-front/src/modules/activities/hooks/usePrepareFindManyActivitiesQuery.ts +++ b/packages/twenty-front/src/modules/activities/hooks/usePrepareFindManyActivitiesQuery.ts @@ -13,8 +13,8 @@ import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordF import { useUpsertFindManyRecordsQueryInCache } from '@/object-record/cache/hooks/useUpsertFindManyRecordsQueryInCache'; import { getRecordFromCache } from '@/object-record/cache/utils/getRecordFromCache'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { isDefined } from 'twenty-shared'; import { sortByAscString } from '~/utils/array/sortByAscString'; -import { isDefined } from '~/utils/isDefined'; export const usePrepareFindManyActivitiesQuery = ({ activityObjectNameSingular, diff --git a/packages/twenty-front/src/modules/activities/hooks/useRefreshShowPageFindManyActivitiesQueries.ts b/packages/twenty-front/src/modules/activities/hooks/useRefreshShowPageFindManyActivitiesQueries.ts index e3295d57e99..65e457ef006 100644 --- a/packages/twenty-front/src/modules/activities/hooks/useRefreshShowPageFindManyActivitiesQueries.ts +++ b/packages/twenty-front/src/modules/activities/hooks/useRefreshShowPageFindManyActivitiesQueries.ts @@ -3,7 +3,7 @@ import { useRecoilValue } from 'recoil'; import { usePrepareFindManyActivitiesQuery } from '@/activities/hooks/usePrepareFindManyActivitiesQuery'; import { objectShowPageTargetableObjectState } from '@/activities/timeline-activities/states/objectShowPageTargetableObjectIdState'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; // This hook should only be executed if the normalized cache is up-to-date // It will take a targetableObject and prepare the queries for the activities diff --git a/packages/twenty-front/src/modules/activities/hooks/useReplaceActivityBlockEditorContent.ts b/packages/twenty-front/src/modules/activities/hooks/useReplaceActivityBlockEditorContent.ts index 7fbda840c36..b29a2b291a5 100644 --- a/packages/twenty-front/src/modules/activities/hooks/useReplaceActivityBlockEditorContent.ts +++ b/packages/twenty-front/src/modules/activities/hooks/useReplaceActivityBlockEditorContent.ts @@ -2,7 +2,7 @@ import { BLOCK_SCHEMA } from '@/activities/blocks/constants/Schema'; import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; import { isNonEmptyString } from '@sniptt/guards'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; export const useReplaceActivityBlockEditorContent = ( diff --git a/packages/twenty-front/src/modules/activities/hooks/useUpsertActivity.ts b/packages/twenty-front/src/modules/activities/hooks/useUpsertActivity.ts index 76e91ec8bf5..c87dba580ac 100644 --- a/packages/twenty-front/src/modules/activities/hooks/useUpsertActivity.ts +++ b/packages/twenty-front/src/modules/activities/hooks/useUpsertActivity.ts @@ -9,7 +9,7 @@ import { Note } from '@/activities/types/Note'; import { Task } from '@/activities/types/Task'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useUpsertActivity = ({ activityObjectNameSingular, diff --git a/packages/twenty-front/src/modules/activities/timeline-activities/rows/calendar/components/EventCardCalendarEvent.tsx b/packages/twenty-front/src/modules/activities/timeline-activities/rows/calendar/components/EventCardCalendarEvent.tsx index c345d81f4d3..a58c05a4c5a 100644 --- a/packages/twenty-front/src/modules/activities/timeline-activities/rows/calendar/components/EventCardCalendarEvent.tsx +++ b/packages/twenty-front/src/modules/activities/timeline-activities/rows/calendar/components/EventCardCalendarEvent.tsx @@ -8,12 +8,12 @@ import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord'; import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore'; import { UserContext } from '@/users/contexts/UserContext'; import { useContext } from 'react'; +import { isDefined } from 'twenty-shared'; import { formatToHumanReadableDay, formatToHumanReadableMonth, formatToHumanReadableTime, } from '~/utils/format/formatDate'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; const StyledEventCardCalendarEventContainer = styled.div` diff --git a/packages/twenty-front/src/modules/activities/timeline-activities/rows/main-object/components/EventFieldDiffValueEffect.tsx b/packages/twenty-front/src/modules/activities/timeline-activities/rows/main-object/components/EventFieldDiffValueEffect.tsx index 6e20cfc4faa..61c17503f34 100644 --- a/packages/twenty-front/src/modules/activities/timeline-activities/rows/main-object/components/EventFieldDiffValueEffect.tsx +++ b/packages/twenty-front/src/modules/activities/timeline-activities/rows/main-object/components/EventFieldDiffValueEffect.tsx @@ -5,7 +5,7 @@ import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { useSetRecordValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext'; import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const EventFieldDiffValueEffect = ({ diffArtificialRecordStoreId, diff --git a/packages/twenty-front/src/modules/activities/timeline-activities/rows/message/components/EventCardMessage.tsx b/packages/twenty-front/src/modules/activities/timeline-activities/rows/message/components/EventCardMessage.tsx index 7114bd42766..9f7e9061fae 100644 --- a/packages/twenty-front/src/modules/activities/timeline-activities/rows/message/components/EventCardMessage.tsx +++ b/packages/twenty-front/src/modules/activities/timeline-activities/rows/message/components/EventCardMessage.tsx @@ -8,7 +8,7 @@ import { EventCardMessageNotShared } from '@/activities/timeline-activities/rows import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord'; import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledEventCardMessageContainer = styled.div` display: flex; diff --git a/packages/twenty-front/src/modules/activities/timeline-activities/utils/getTimelineActivityAuthorFullName.ts b/packages/twenty-front/src/modules/activities/timeline-activities/utils/getTimelineActivityAuthorFullName.ts index 4e141de6b3b..a784fd2f4c3 100644 --- a/packages/twenty-front/src/modules/activities/timeline-activities/utils/getTimelineActivityAuthorFullName.ts +++ b/packages/twenty-front/src/modules/activities/timeline-activities/utils/getTimelineActivityAuthorFullName.ts @@ -1,6 +1,6 @@ import { TimelineActivity } from '@/activities/timeline-activities/types/TimelineActivity'; import { CurrentWorkspaceMember } from '@/auth/states/currentWorkspaceMemberState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getTimelineActivityAuthorFullName = ( event: TimelineActivity, diff --git a/packages/twenty-front/src/modules/activities/timeline-activities/utils/groupEventsByMonth.ts b/packages/twenty-front/src/modules/activities/timeline-activities/utils/groupEventsByMonth.ts index cd5ce8a7336..f26bc8c79de 100644 --- a/packages/twenty-front/src/modules/activities/timeline-activities/utils/groupEventsByMonth.ts +++ b/packages/twenty-front/src/modules/activities/timeline-activities/utils/groupEventsByMonth.ts @@ -1,5 +1,5 @@ import { TimelineActivity } from '@/activities/timeline-activities/types/TimelineActivity'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export type EventGroup = { month: number; diff --git a/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts b/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts index 368a2ee2a2e..21f47bccc4b 100644 --- a/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts +++ b/packages/twenty-front/src/modules/apollo/hooks/useApolloFactory.ts @@ -10,10 +10,10 @@ import { previousUrlState } from '@/auth/states/previousUrlState'; import { tokenPairState } from '@/auth/states/tokenPairState'; import { workspacesState } from '@/auth/states/workspaces'; import { isDebugModeState } from '@/client-config/states/isDebugModeState'; +import { isDefined } from 'twenty-shared'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; import { useIsMatchingLocation } from '~/hooks/useIsMatchingLocation'; import { useUpdateEffect } from '~/hooks/useUpdateEffect'; -import { isDefined } from '~/utils/isDefined'; import { AppPath } from '@/types/AppPath'; import { ApolloFactory, Options } from '../services/apollo.factory'; diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/sortCachedObjectEdges.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/sortCachedObjectEdges.ts index 6b762f22158..9854f8af161 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/sortCachedObjectEdges.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/sortCachedObjectEdges.ts @@ -4,7 +4,7 @@ import { ReadFieldFunction } from '@apollo/client/cache/core/types/common'; import { RecordGqlRefEdge } from '@/object-record/cache/types/RecordGqlRefEdge'; import { RecordGqlOperationOrderBy } from '@/object-record/graphql/types/RecordGqlOperationOrderBy'; import { OrderBy } from '@/types/OrderBy'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { sortAsc, sortDesc, sortNullsFirst, sortNullsLast } from '~/utils/sort'; export const sortCachedObjectEdges = ({ diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerAttachRelationOptimisticEffect.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerAttachRelationOptimisticEffect.ts index 11b3c03c8c3..86b2bbe861e 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerAttachRelationOptimisticEffect.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerAttachRelationOptimisticEffect.ts @@ -2,8 +2,7 @@ import { ApolloCache, StoreObject } from '@apollo/client'; import { RecordGqlRefEdge } from '@/object-record/cache/types/RecordGqlRefEdge'; import { isObjectRecordConnectionWithRefs } from '@/object-record/cache/utils/isObjectRecordConnectionWithRefs'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; export const triggerAttachRelationOptimisticEffect = ({ cache, diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerCreateRecordsOptimisticEffect.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerCreateRecordsOptimisticEffect.ts index 54af02ea6c8..9acca6114a5 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerCreateRecordsOptimisticEffect.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerCreateRecordsOptimisticEffect.ts @@ -13,7 +13,7 @@ import { CachedObjectRecordQueryVariables } from '@/apollo/types/CachedObjectRec import { encodeCursor } from '@/apollo/utils/encodeCursor'; import { getRecordFromCache } from '@/object-record/cache/utils/getRecordFromCache'; import { getRecordNodeFromRecord } from '@/object-record/cache/utils/getRecordNodeFromRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { parseApolloStoreFieldName } from '~/utils/parseApolloStoreFieldName'; /* diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerDestroyRecordsOptimisticEffect.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerDestroyRecordsOptimisticEffect.ts index 8ed05ecd020..ba03721ef54 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerDestroyRecordsOptimisticEffect.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerDestroyRecordsOptimisticEffect.ts @@ -5,7 +5,7 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { RecordGqlRefEdge } from '@/object-record/cache/types/RecordGqlRefEdge'; import { isObjectRecordConnectionWithRefs } from '@/object-record/cache/utils/isObjectRecordConnectionWithRefs'; import { RecordGqlNode } from '@/object-record/graphql/types/RecordGqlNode'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const triggerDestroyRecordsOptimisticEffect = ({ cache, diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffect.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffect.ts index 15878796f5b..0a762ee34ff 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffect.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffect.ts @@ -9,7 +9,7 @@ import { getEdgeTypename } from '@/object-record/cache/utils/getEdgeTypename'; import { isObjectRecordConnectionWithRefs } from '@/object-record/cache/utils/isObjectRecordConnectionWithRefs'; import { RecordGqlNode } from '@/object-record/graphql/types/RecordGqlNode'; import { isRecordMatchingFilter } from '@/object-record/record-filter/utils/isRecordMatchingFilter'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { parseApolloStoreFieldName } from '~/utils/parseApolloStoreFieldName'; // TODO: add extensive unit tests for this function diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts index 52e88985e23..f4985964776 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRecordOptimisticEffectByBatch.ts @@ -9,7 +9,7 @@ import { getEdgeTypename } from '@/object-record/cache/utils/getEdgeTypename'; import { isObjectRecordConnectionWithRefs } from '@/object-record/cache/utils/isObjectRecordConnectionWithRefs'; import { RecordGqlNode } from '@/object-record/graphql/types/RecordGqlNode'; import { isRecordMatchingFilter } from '@/object-record/record-filter/utils/isRecordMatchingFilter'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { parseApolloStoreFieldName } from '~/utils/parseApolloStoreFieldName'; // TODO: add extensive unit tests for this function diff --git a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRelationsOptimisticEffect.ts b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRelationsOptimisticEffect.ts index d74849eec86..be977922dc8 100644 --- a/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRelationsOptimisticEffect.ts +++ b/packages/twenty-front/src/modules/apollo/optimistic-effect/utils/triggerUpdateRelationsOptimisticEffect.ts @@ -9,9 +9,9 @@ import { RecordGqlConnection } from '@/object-record/graphql/types/RecordGqlConn import { RecordGqlNode } from '@/object-record/graphql/types/RecordGqlNode'; import { ApolloCache } from '@apollo/client'; import { isArray } from '@sniptt/guards'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; type triggerUpdateRelationsOptimisticEffectArgs = { cache: ApolloCache; diff --git a/packages/twenty-front/src/modules/apollo/services/apollo.factory.ts b/packages/twenty-front/src/modules/apollo/services/apollo.factory.ts index 5096989f031..656fa509a7a 100644 --- a/packages/twenty-front/src/modules/apollo/services/apollo.factory.ts +++ b/packages/twenty-front/src/modules/apollo/services/apollo.factory.ts @@ -13,8 +13,8 @@ import { createUploadLink } from 'apollo-upload-client'; import { renewToken } from '@/auth/services/AuthService'; import { CurrentWorkspaceMember } from '@/auth/states/currentWorkspaceMemberState'; +import { isDefined } from 'twenty-shared'; import { AuthTokenPair } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { logDebug } from '~/utils/logDebug'; import { GraphQLFormattedError } from 'graphql'; diff --git a/packages/twenty-front/src/modules/apollo/utils/encodeCursor.ts b/packages/twenty-front/src/modules/apollo/utils/encodeCursor.ts index 2786db89670..072c482a71d 100644 --- a/packages/twenty-front/src/modules/apollo/utils/encodeCursor.ts +++ b/packages/twenty-front/src/modules/apollo/utils/encodeCursor.ts @@ -1,5 +1,5 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { Buffer } from 'buffer'; diff --git a/packages/twenty-front/src/modules/apollo/utils/loggerLink.ts b/packages/twenty-front/src/modules/apollo/utils/loggerLink.ts index 174c5c3badd..233c9209a3d 100644 --- a/packages/twenty-front/src/modules/apollo/utils/loggerLink.ts +++ b/packages/twenty-front/src/modules/apollo/utils/loggerLink.ts @@ -1,6 +1,6 @@ import { ApolloLink, gql, Operation } from '@apollo/client'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { logDebug } from '~/utils/logDebug'; import { logError } from '~/utils/logError'; diff --git a/packages/twenty-front/src/modules/app/effect-components/PageChangeEffect.tsx b/packages/twenty-front/src/modules/app/effect-components/PageChangeEffect.tsx index 3682760521d..674ce12a6b4 100644 --- a/packages/twenty-front/src/modules/app/effect-components/PageChangeEffect.tsx +++ b/packages/twenty-front/src/modules/app/effect-components/PageChangeEffect.tsx @@ -21,9 +21,9 @@ import { AppPath } from '@/types/AppPath'; import { PageHotkeyScope } from '@/types/PageHotkeyScope'; import { SettingsPath } from '@/types/SettingsPath'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; +import { isDefined } from 'twenty-shared'; import { useIsMatchingLocation } from '~/hooks/useIsMatchingLocation'; import { usePageChangeEffectNavigateLocation } from '~/hooks/usePageChangeEffectNavigateLocation'; -import { isDefined } from '~/utils/isDefined'; // TODO: break down into smaller functions and / or hooks // - moved usePageChangeEffectNavigateLocation into dedicated hook diff --git a/packages/twenty-front/src/modules/auth/components/VerifyEffect.tsx b/packages/twenty-front/src/modules/auth/components/VerifyEffect.tsx index 8de16cddb70..c4d41e3ad1a 100644 --- a/packages/twenty-front/src/modules/auth/components/VerifyEffect.tsx +++ b/packages/twenty-front/src/modules/auth/components/VerifyEffect.tsx @@ -8,7 +8,7 @@ import { AppPath } from '@/types/AppPath'; import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar'; import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { useSetRecoilState } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const VerifyEffect = () => { diff --git a/packages/twenty-front/src/modules/auth/hooks/useAuth.ts b/packages/twenty-front/src/modules/auth/hooks/useAuth.ts index 0101ccbbfe8..272486459d5 100644 --- a/packages/twenty-front/src/modules/auth/hooks/useAuth.ts +++ b/packages/twenty-front/src/modules/auth/hooks/useAuth.ts @@ -20,6 +20,7 @@ import { clientConfigApiStatusState } from '@/client-config/states/clientConfigA import { isDebugModeState } from '@/client-config/states/isDebugModeState'; import { supportChatState } from '@/client-config/states/supportChatState'; import { ColorScheme } from '@/workspace-member/types/WorkspaceMember'; +import { isDefined } from 'twenty-shared'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; import { useCheckUserExistsLazyQuery, @@ -29,7 +30,6 @@ import { useGetLoginTokenFromEmailVerificationTokenMutation, useSignUpMutation, } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { currentWorkspaceMembersState } from '@/auth/states/currentWorkspaceMembersStates'; import { isDeveloperDefaultSignInPrefilledState } from '@/client-config/states/isDeveloperDefaultSignInPrefilledState'; diff --git a/packages/twenty-front/src/modules/auth/services/AuthService.ts b/packages/twenty-front/src/modules/auth/services/AuthService.ts index 120a71eeae1..d82b6fd8c20 100644 --- a/packages/twenty-front/src/modules/auth/services/AuthService.ts +++ b/packages/twenty-front/src/modules/auth/services/AuthService.ts @@ -7,13 +7,13 @@ import { } from '@apollo/client'; import { loggerLink } from '@/apollo/utils/loggerLink'; +import { isDefined } from 'twenty-shared'; import { AuthTokenPair, RenewTokenDocument, RenewTokenMutation, RenewTokenMutationVariables, } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; const logger = loggerLink(() => 'Twenty-Refresh'); diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpGlobalScopeForm.tsx b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpGlobalScopeForm.tsx index 0d1fd5d173d..7d7bd58b7f9 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpGlobalScopeForm.tsx +++ b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpGlobalScopeForm.tsx @@ -26,7 +26,7 @@ import { authProvidersState } from '@/client-config/states/authProvidersState'; import { useRedirectToWorkspaceDomain } from '@/domain-manager/hooks/useRedirectToWorkspaceDomain'; import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar'; import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledContentContainer = styled(motion.div)` margin-bottom: ${({ theme }) => theme.spacing(8)}; diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpSSOIdentityProviderSelection.tsx b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpSSOIdentityProviderSelection.tsx index b3696dde143..96ec29b6c93 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpSSOIdentityProviderSelection.tsx +++ b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpSSOIdentityProviderSelection.tsx @@ -7,7 +7,7 @@ import { useRecoilValue } from 'recoil'; import { HorizontalSeparator, MainButton } from 'twenty-ui'; import { workspaceAuthProvidersState } from '@/workspace/states/workspaceAuthProvidersState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledContentContainer = styled.div` margin-bottom: ${({ theme }) => theme.spacing(8)}; diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithCredentials.tsx b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithCredentials.tsx index 29691cfa7a8..28453ef0015 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithCredentials.tsx +++ b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithCredentials.tsx @@ -14,8 +14,8 @@ import styled from '@emotion/styled'; import { useMemo, useState } from 'react'; import { useFormContext } from 'react-hook-form'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { Loader, MainButton } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; const StyledForm = styled.form` align-items: center; diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithSSO.tsx b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithSSO.tsx index 8b4a53ba49d..327ca76f648 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithSSO.tsx +++ b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWithSSO.tsx @@ -6,8 +6,8 @@ import { import { workspaceAuthProvidersState } from '@/workspace/states/workspaceAuthProvidersState'; import { useTheme } from '@emotion/react'; import { useRecoilValue, useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { HorizontalSeparator, IconLock, MainButton } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; export const SignInUpWithSSO = () => { const theme = useTheme(); diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWorkspaceScopeFormEffect.tsx b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWorkspaceScopeFormEffect.tsx index 8a600b197fe..6d3b0239c0a 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWorkspaceScopeFormEffect.tsx +++ b/packages/twenty-front/src/modules/auth/sign-in-up/components/SignInUpWorkspaceScopeFormEffect.tsx @@ -10,7 +10,7 @@ import { captchaState } from '@/client-config/states/captchaState'; import { workspaceAuthProvidersState } from '@/workspace/states/workspaceAuthProvidersState'; import { useEffect, useState } from 'react'; import { useRecoilValue, useSetRecoilState } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const searchParams = new URLSearchParams(window.location.search); const email = searchParams.get('email'); diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignInUpForm.ts b/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignInUpForm.ts index ef1af97edaa..630f19f4590 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignInUpForm.ts +++ b/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useSignInUpForm.ts @@ -11,7 +11,7 @@ import { } from '@/auth/states/signInUpStepState'; import { PASSWORD_REGEX } from '@/auth/utils/passwordRegex'; import { isDeveloperDefaultSignInPrefilledState } from '@/client-config/states/isDeveloperDefaultSignInPrefilledState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const makeValidationSchema = (signInUpStep: SignInUpStep) => z diff --git a/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useWorkspaceFromInviteHash.ts b/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useWorkspaceFromInviteHash.ts index e2c7e4b0bdc..209618eff91 100644 --- a/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useWorkspaceFromInviteHash.ts +++ b/packages/twenty-front/src/modules/auth/sign-in-up/hooks/useWorkspaceFromInviteHash.ts @@ -9,9 +9,9 @@ import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { isDefaultLayoutAuthModalVisibleState } from '@/ui/layout/states/isDefaultLayoutAuthModalVisibleState'; import { AppPath } from '@/types/AppPath'; +import { isDefined } from 'twenty-shared'; import { useGetWorkspaceFromInviteHashQuery } from '~/generated/graphql'; import { useNavigateApp } from '~/hooks/useNavigateApp'; -import { isDefined } from '~/utils/isDefined'; export const useWorkspaceFromInviteHash = () => { const { enqueueSnackBar } = useSnackBar(); diff --git a/packages/twenty-front/src/modules/captcha/hooks/useReadCaptchaToken.ts b/packages/twenty-front/src/modules/captcha/hooks/useReadCaptchaToken.ts index adc5aceb0ca..22e2fbbeb2d 100644 --- a/packages/twenty-front/src/modules/captcha/hooks/useReadCaptchaToken.ts +++ b/packages/twenty-front/src/modules/captcha/hooks/useReadCaptchaToken.ts @@ -1,7 +1,7 @@ import { useRecoilCallback } from 'recoil'; import { captchaTokenState } from '@/captcha/states/captchaTokenState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useReadCaptchaToken = () => { const readCaptchaToken = useRecoilCallback( diff --git a/packages/twenty-front/src/modules/chrome-extension-sidecar/components/ChromeExtensionSidecarEffect.tsx b/packages/twenty-front/src/modules/chrome-extension-sidecar/components/ChromeExtensionSidecarEffect.tsx index f7f98e702f1..e33142a4b22 100644 --- a/packages/twenty-front/src/modules/chrome-extension-sidecar/components/ChromeExtensionSidecarEffect.tsx +++ b/packages/twenty-front/src/modules/chrome-extension-sidecar/components/ChromeExtensionSidecarEffect.tsx @@ -5,7 +5,7 @@ import { useRecoilValue, useSetRecoilState } from 'recoil'; import { tokenPairState } from '@/auth/states/tokenPairState'; import { isLoadingTokensFromExtensionState } from '@/chrome-extension-sidecar/states/isLoadingTokensFromExtensionState'; import { chromeExtensionIdState } from '@/client-config/states/chromeExtensionIdState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isInFrame } from '~/utils/isInIframe'; export const ChromeExtensionSidecarEffect = () => { diff --git a/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx b/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx index ac34e0a6f44..67f48d8c812 100644 --- a/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx +++ b/packages/twenty-front/src/modules/client-config/components/ClientConfigProviderEffect.tsx @@ -16,8 +16,8 @@ import { supportChatState } from '@/client-config/states/supportChatState'; import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState'; import { useEffect } from 'react'; import { useRecoilState, useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { useGetClientConfigQuery } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; export const ClientConfigProviderEffect = () => { const setIsDebugMode = useSetRecoilState(isDebugModeState); diff --git a/packages/twenty-front/src/modules/command-menu/components/CommandMenu.tsx b/packages/twenty-front/src/modules/command-menu/components/CommandMenu.tsx index 5981639e8d1..19ed37ad028 100644 --- a/packages/twenty-front/src/modules/command-menu/components/CommandMenu.tsx +++ b/packages/twenty-front/src/modules/command-menu/components/CommandMenu.tsx @@ -11,7 +11,7 @@ import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/ import { useLingui } from '@lingui/react/macro'; import { isNonEmptyString } from '@sniptt/guards'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export type CommandGroupConfig = { heading: string; diff --git a/packages/twenty-front/src/modules/command-menu/components/CommandMenuDefaultSelectionEffect.tsx b/packages/twenty-front/src/modules/command-menu/components/CommandMenuDefaultSelectionEffect.tsx index eb94ecc42ea..136494f5f53 100644 --- a/packages/twenty-front/src/modules/command-menu/components/CommandMenuDefaultSelectionEffect.tsx +++ b/packages/twenty-front/src/modules/command-menu/components/CommandMenuDefaultSelectionEffect.tsx @@ -1,7 +1,7 @@ import { useSelectableList } from '@/ui/layout/selectable-list/hooks/useSelectableList'; import { useEffect } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const CommandMenuDefaultSelectionEffect = ({ selectableItemIds, diff --git a/packages/twenty-front/src/modules/command-menu/components/CommandMenuList.tsx b/packages/twenty-front/src/modules/command-menu/components/CommandMenuList.tsx index 9b39906a176..6667fbe67e1 100644 --- a/packages/twenty-front/src/modules/command-menu/components/CommandMenuList.tsx +++ b/packages/twenty-front/src/modules/command-menu/components/CommandMenuList.tsx @@ -12,7 +12,8 @@ import { SelectableList } from '@/ui/layout/selectable-list/components/Selectabl import { AppHotkeyScope } from '@/ui/utilities/hotkey/types/AppHotkeyScope'; import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper'; import styled from '@emotion/styled'; -import { MOBILE_VIEWPORT, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { MOBILE_VIEWPORT } from 'twenty-ui'; const MOBILE_NAVIGATION_BAR_HEIGHT = 64; diff --git a/packages/twenty-front/src/modules/command-menu/components/CommandMenuRouter.tsx b/packages/twenty-front/src/modules/command-menu/components/CommandMenuRouter.tsx index d5aee4267f0..dcae344a602 100644 --- a/packages/twenty-front/src/modules/command-menu/components/CommandMenuRouter.tsx +++ b/packages/twenty-front/src/modules/command-menu/components/CommandMenuRouter.tsx @@ -4,7 +4,7 @@ import { COMMAND_MENU_PAGES_CONFIG } from '@/command-menu/constants/CommandMenuP import { commandMenuPageState } from '@/command-menu/states/commandMenuPageState'; import styled from '@emotion/styled'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const StyledCommandMenuContent = styled.div` flex: 1; diff --git a/packages/twenty-front/src/modules/command-menu/components/CommandMenuTopBar.tsx b/packages/twenty-front/src/modules/command-menu/components/CommandMenuTopBar.tsx index e71b4fe30df..220b9a15a94 100644 --- a/packages/twenty-front/src/modules/command-menu/components/CommandMenuTopBar.tsx +++ b/packages/twenty-front/src/modules/command-menu/components/CommandMenuTopBar.tsx @@ -13,7 +13,8 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { useLingui } from '@lingui/react/macro'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { IconX, isDefined, LightIconButton, useIsMobile } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconX, LightIconButton, useIsMobile } from 'twenty-ui'; const StyledInputContainer = styled.div` align-items: center; diff --git a/packages/twenty-front/src/modules/command-menu/components/ResetContextToSelectionCommandButton.tsx b/packages/twenty-front/src/modules/command-menu/components/ResetContextToSelectionCommandButton.tsx index 4a8af1a477e..a8c85c3b6bc 100644 --- a/packages/twenty-front/src/modules/command-menu/components/ResetContextToSelectionCommandButton.tsx +++ b/packages/twenty-front/src/modules/command-menu/components/ResetContextToSelectionCommandButton.tsx @@ -8,7 +8,8 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { t } from '@lingui/core/macro'; import { useRecoilValue } from 'recoil'; -import { IconArrowBackUp, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconArrowBackUp } from 'twenty-ui'; export const ResetContextToSelectionCommandButton = () => { const contextStoreTargetedRecordsRule = useRecoilComponentValueV2( diff --git a/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuOnItemClick.ts b/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuOnItemClick.ts index c656e82eb11..20326eeb15e 100644 --- a/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuOnItemClick.ts +++ b/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuOnItemClick.ts @@ -2,7 +2,7 @@ import { useCommandMenu } from '@/command-menu/hooks/useCommandMenu'; import { isNonEmptyString } from '@sniptt/guards'; import { useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useCommandMenuOnItemClick = () => { const { toggleCommandMenu } = useCommandMenu(); diff --git a/packages/twenty-front/src/modules/context-store/components/ContextStoreViewIdEffect.tsx b/packages/twenty-front/src/modules/context-store/components/ContextStoreViewIdEffect.tsx index d4f7efc662a..f165d935766 100644 --- a/packages/twenty-front/src/modules/context-store/components/ContextStoreViewIdEffect.tsx +++ b/packages/twenty-front/src/modules/context-store/components/ContextStoreViewIdEffect.tsx @@ -9,8 +9,8 @@ import { useViewFromQueryParams } from '@/views/hooks/internal/useViewFromQueryP import { View } from '@/views/types/View'; import { isUndefined } from '@sniptt/guards'; import { useEffect } from 'react'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; export const ContextStoreViewIdEffect = ({ objectNamePlural, diff --git a/packages/twenty-front/src/modules/databases/hooks/useCreateOneDatabaseConnection.ts b/packages/twenty-front/src/modules/databases/hooks/useCreateOneDatabaseConnection.ts index e74c3f6edc1..c526fe2b891 100644 --- a/packages/twenty-front/src/modules/databases/hooks/useCreateOneDatabaseConnection.ts +++ b/packages/twenty-front/src/modules/databases/hooks/useCreateOneDatabaseConnection.ts @@ -3,12 +3,12 @@ import { useMutation } from '@apollo/client'; import { CREATE_ONE_DATABASE_CONNECTION } from '@/databases/graphql/mutations/createOneDatabaseConnection'; import { GET_MANY_DATABASE_CONNECTIONS } from '@/databases/graphql/queries/findManyDatabaseConnections'; import { useApolloMetadataClient } from '@/object-metadata/hooks/useApolloMetadataClient'; +import { isDefined } from 'twenty-shared'; import { CreateRemoteServerInput, CreateServerMutation, CreateServerMutationVariables, } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; export const useCreateOneDatabaseConnection = () => { const apolloMetadataClient = useApolloMetadataClient(); diff --git a/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTable.ts b/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTable.ts index 884339b46e7..aaa4386d84c 100644 --- a/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTable.ts +++ b/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTable.ts @@ -7,12 +7,12 @@ import { useApolloMetadataClient } from '@/object-metadata/hooks/useApolloMetada import { useFindManyObjectMetadataItems } from '@/object-metadata/hooks/useFindManyObjectMetadataItems'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useFindManyRecordsQuery } from '@/object-record/hooks/useFindManyRecordsQuery'; +import { isDefined } from 'twenty-shared'; import { RemoteTableInput, SyncRemoteTableMutation, SyncRemoteTableMutationVariables, } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; export const useSyncRemoteTable = () => { const apolloMetadataClient = useApolloMetadataClient(); diff --git a/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTableSchemaChanges.ts b/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTableSchemaChanges.ts index 0ce4bf68c99..74ce46a36c3 100644 --- a/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTableSchemaChanges.ts +++ b/packages/twenty-front/src/modules/databases/hooks/useSyncRemoteTableSchemaChanges.ts @@ -7,12 +7,12 @@ import { useApolloMetadataClient } from '@/object-metadata/hooks/useApolloMetada import { useFindManyObjectMetadataItems } from '@/object-metadata/hooks/useFindManyObjectMetadataItems'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useFindManyRecordsQuery } from '@/object-record/hooks/useFindManyRecordsQuery'; +import { isDefined } from 'twenty-shared'; import { RemoteTableInput, SyncRemoteTableSchemaChangesMutation, SyncRemoteTableSchemaChangesMutationVariables, } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; export const useSyncRemoteTableSchemaChanges = () => { const apolloMetadataClient = useApolloMetadataClient(); diff --git a/packages/twenty-front/src/modules/databases/hooks/useUnsyncRemoteTable.ts b/packages/twenty-front/src/modules/databases/hooks/useUnsyncRemoteTable.ts index 4a331e3892d..1d2f18d5589 100644 --- a/packages/twenty-front/src/modules/databases/hooks/useUnsyncRemoteTable.ts +++ b/packages/twenty-front/src/modules/databases/hooks/useUnsyncRemoteTable.ts @@ -5,12 +5,12 @@ import { UNSYNC_REMOTE_TABLE } from '@/databases/graphql/mutations/unsyncRemoteT import { modifyRemoteTableFromCache } from '@/databases/utils/modifyRemoteTableFromCache'; import { useApolloMetadataClient } from '@/object-metadata/hooks/useApolloMetadataClient'; import { useFindManyObjectMetadataItems } from '@/object-metadata/hooks/useFindManyObjectMetadataItems'; +import { isDefined } from 'twenty-shared'; import { RemoteTableInput, UnsyncRemoteTableMutation, UnsyncRemoteTableMutationVariables, } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; export const useUnsyncRemoteTable = () => { const apolloMetadataClient = useApolloMetadataClient(); diff --git a/packages/twenty-front/src/modules/domain-manager/hooks/useBuildWorkspaceUrl.ts b/packages/twenty-front/src/modules/domain-manager/hooks/useBuildWorkspaceUrl.ts index 606ae42b4cb..49d82b31172 100644 --- a/packages/twenty-front/src/modules/domain-manager/hooks/useBuildWorkspaceUrl.ts +++ b/packages/twenty-front/src/modules/domain-manager/hooks/useBuildWorkspaceUrl.ts @@ -1,6 +1,6 @@ import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useBuildWorkspaceUrl = () => { const domainConfiguration = useRecoilValue(domainConfigurationState); diff --git a/packages/twenty-front/src/modules/domain-manager/hooks/useGetPublicWorkspaceDataBySubdomain.ts b/packages/twenty-front/src/modules/domain-manager/hooks/useGetPublicWorkspaceDataBySubdomain.ts index 116ba20a0ec..047cd646925 100644 --- a/packages/twenty-front/src/modules/domain-manager/hooks/useGetPublicWorkspaceDataBySubdomain.ts +++ b/packages/twenty-front/src/modules/domain-manager/hooks/useGetPublicWorkspaceDataBySubdomain.ts @@ -4,8 +4,8 @@ import { useIsCurrentLocationOnDefaultDomain } from '@/domain-manager/hooks/useI import { useRedirectToDefaultDomain } from '@/domain-manager/hooks/useRedirectToDefaultDomain'; import { workspaceAuthProvidersState } from '@/workspace/states/workspaceAuthProvidersState'; import { useRecoilValue, useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { useGetPublicWorkspaceDataBySubdomainQuery } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; export const useGetPublicWorkspaceDataBySubdomain = () => { const { isDefaultDomain } = useIsCurrentLocationOnDefaultDomain(); diff --git a/packages/twenty-front/src/modules/domain-manager/hooks/useIsCurrentLocationOnAWorkspaceSubdomain.ts b/packages/twenty-front/src/modules/domain-manager/hooks/useIsCurrentLocationOnAWorkspaceSubdomain.ts index 27eb9a9ea70..4920f9f635f 100644 --- a/packages/twenty-front/src/modules/domain-manager/hooks/useIsCurrentLocationOnAWorkspaceSubdomain.ts +++ b/packages/twenty-front/src/modules/domain-manager/hooks/useIsCurrentLocationOnAWorkspaceSubdomain.ts @@ -1,8 +1,8 @@ -import { isDefined } from '~/utils/isDefined'; import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState'; -import { useRecoilValue } from 'recoil'; -import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState'; import { useReadDefaultDomainFromConfiguration } from '@/domain-manager/hooks/useReadDefaultDomainFromConfiguration'; +import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState'; +import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; export const useIsCurrentLocationOnAWorkspaceSubdomain = () => { const { defaultDomain } = useReadDefaultDomainFromConfiguration(); diff --git a/packages/twenty-front/src/modules/domain-manager/hooks/useReadWorkspaceSubdomainFromCurrentLocation.ts b/packages/twenty-front/src/modules/domain-manager/hooks/useReadWorkspaceSubdomainFromCurrentLocation.ts index fc053da0931..0fb57acf6fd 100644 --- a/packages/twenty-front/src/modules/domain-manager/hooks/useReadWorkspaceSubdomainFromCurrentLocation.ts +++ b/packages/twenty-front/src/modules/domain-manager/hooks/useReadWorkspaceSubdomainFromCurrentLocation.ts @@ -1,7 +1,7 @@ -import { isDefined } from '~/utils/isDefined'; +import { useIsCurrentLocationOnAWorkspaceSubdomain } from '@/domain-manager/hooks/useIsCurrentLocationOnAWorkspaceSubdomain'; import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState'; import { useRecoilValue } from 'recoil'; -import { useIsCurrentLocationOnAWorkspaceSubdomain } from '@/domain-manager/hooks/useIsCurrentLocationOnAWorkspaceSubdomain'; +import { isDefined } from 'twenty-shared'; export const useReadWorkspaceSubdomainFromCurrentLocation = () => { const domainConfiguration = useRecoilValue(domainConfigurationState); diff --git a/packages/twenty-front/src/modules/error-handler/components/SentryInitEffect.tsx b/packages/twenty-front/src/modules/error-handler/components/SentryInitEffect.tsx index f97336d1414..5944d7766e5 100644 --- a/packages/twenty-front/src/modules/error-handler/components/SentryInitEffect.tsx +++ b/packages/twenty-front/src/modules/error-handler/components/SentryInitEffect.tsx @@ -7,8 +7,8 @@ import { currentUserState } from '@/auth/states/currentUserState'; import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { sentryConfigState } from '@/client-config/states/sentryConfigState'; +import { isDefined } from 'twenty-shared'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; -import { isDefined } from '~/utils/isDefined'; export const SentryInitEffect = () => { const sentryConfig = useRecoilValue(sentryConfigState); diff --git a/packages/twenty-front/src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx b/packages/twenty-front/src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx index ffa69d78362..bd56909d176 100644 --- a/packages/twenty-front/src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx +++ b/packages/twenty-front/src/modules/favorites/components/CurrentWorkspaceMemberFavoritesFolders.tsx @@ -13,7 +13,8 @@ import { NavigationDrawerSectionTitle } from '@/ui/navigation/navigation-drawer/ import { useNavigationSection } from '@/ui/navigation/navigation-drawer/hooks/useNavigationSection'; import { useLingui } from '@lingui/react/macro'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { IconFolderPlus, LightIconButton, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconFolderPlus, LightIconButton } from 'twenty-ui'; export const CurrentWorkspaceMemberFavoritesFolders = () => { const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); diff --git a/packages/twenty-front/src/modules/favorites/favorite-folder-picker/components/FavoriteFolderPickerEffect.tsx b/packages/twenty-front/src/modules/favorites/favorite-folder-picker/components/FavoriteFolderPickerEffect.tsx index 28263ed5f57..43edd1bb048 100644 --- a/packages/twenty-front/src/modules/favorites/favorite-folder-picker/components/FavoriteFolderPickerEffect.tsx +++ b/packages/twenty-front/src/modules/favorites/favorite-folder-picker/components/FavoriteFolderPickerEffect.tsx @@ -1,6 +1,6 @@ import { useEffect } from 'react'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; import { favoriteFolderIdsPickerComponentState } from '@/favorites/favorite-folder-picker/states/favoriteFolderIdPickerComponentState'; diff --git a/packages/twenty-front/src/modules/favorites/favorite-folder-picker/hooks/useFavoriteFolderPicker.ts b/packages/twenty-front/src/modules/favorites/favorite-folder-picker/hooks/useFavoriteFolderPicker.ts index 1078542218a..8ae5b887a72 100644 --- a/packages/twenty-front/src/modules/favorites/favorite-folder-picker/hooks/useFavoriteFolderPicker.ts +++ b/packages/twenty-front/src/modules/favorites/favorite-folder-picker/hooks/useFavoriteFolderPicker.ts @@ -9,7 +9,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; type useFavoriteFolderPickerProps = { record?: ObjectRecord; diff --git a/packages/twenty-front/src/modules/favorites/favorite-folder-picker/states/selectors/favoriteFoldersComponentSelector.ts b/packages/twenty-front/src/modules/favorites/favorite-folder-picker/states/selectors/favoriteFoldersComponentSelector.ts index 8158c742aa5..55803f785f9 100644 --- a/packages/twenty-front/src/modules/favorites/favorite-folder-picker/states/selectors/favoriteFoldersComponentSelector.ts +++ b/packages/twenty-front/src/modules/favorites/favorite-folder-picker/states/selectors/favoriteFoldersComponentSelector.ts @@ -3,7 +3,7 @@ import { favoriteFolderIdsPickerComponentState } from '@/favorites/favorite-fold import { favoriteFolderPickerComponentFamilyState } from '@/favorites/favorite-folder-picker/states/favoriteFolderPickerComponentFamilyState'; import { FavoriteFolder } from '@/favorites/types/FavoriteFolder'; import { createComponentSelectorV2 } from '@/ui/utilities/state/component-state/utils/createComponentSelectorV2'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const favoriteFoldersComponentSelector = createComponentSelectorV2< FavoriteFolder[] diff --git a/packages/twenty-front/src/modules/favorites/utils/getObjectMetadataLabelPluralFromViewId.ts b/packages/twenty-front/src/modules/favorites/utils/getObjectMetadataLabelPluralFromViewId.ts index ca2511d8c6d..91e3a0ec0ff 100644 --- a/packages/twenty-front/src/modules/favorites/utils/getObjectMetadataLabelPluralFromViewId.ts +++ b/packages/twenty-front/src/modules/favorites/utils/getObjectMetadataLabelPluralFromViewId.ts @@ -1,6 +1,6 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { View } from '@/views/types/View'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; type ReturnType = { labelPlural: string; diff --git a/packages/twenty-front/src/modules/favorites/utils/sortFavorites.ts b/packages/twenty-front/src/modules/favorites/utils/sortFavorites.ts index 59e79004dea..46d6d32fb21 100644 --- a/packages/twenty-front/src/modules/favorites/utils/sortFavorites.ts +++ b/packages/twenty-front/src/modules/favorites/utils/sortFavorites.ts @@ -5,7 +5,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { ObjectRecordIdentifier } from '@/object-record/types/ObjectRecordIdentifier'; import { AppPath } from '@/types/AppPath'; import { View } from '@/views/types/View'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { getAppPath } from '~/utils/navigation/getAppPath'; import { getObjectMetadataLabelPluralFromViewId } from './getObjectMetadataLabelPluralFromViewId'; diff --git a/packages/twenty-front/src/modules/information-banner/components/InformationBannerWrapper.tsx b/packages/twenty-front/src/modules/information-banner/components/InformationBannerWrapper.tsx index 9ceb953e22e..0082634001d 100644 --- a/packages/twenty-front/src/modules/information-banner/components/InformationBannerWrapper.tsx +++ b/packages/twenty-front/src/modules/information-banner/components/InformationBannerWrapper.tsx @@ -6,7 +6,7 @@ import { InformationBannerReconnectAccountInsufficientPermissions } from '@/info import { useIsWorkspaceActivationStatusSuspended } from '@/workspace/hooks/useIsWorkspaceActivationStatusSuspended'; import { useSubscriptionStatus } from '@/workspace/hooks/useSubscriptionStatus'; import styled from '@emotion/styled'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { SubscriptionStatus } from '~/generated-metadata/graphql'; const StyledInformationBannerWrapper = styled.div` diff --git a/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerBillingSubscriptionPaused.tsx b/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerBillingSubscriptionPaused.tsx index c180f31236d..92da0912cf6 100644 --- a/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerBillingSubscriptionPaused.tsx +++ b/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerBillingSubscriptionPaused.tsx @@ -1,7 +1,7 @@ import { useRedirect } from '@/domain-manager/hooks/useRedirect'; import { InformationBanner } from '@/information-banner/components/InformationBanner'; import { SettingsPath } from '@/types/SettingsPath'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useBillingPortalSessionQuery } from '~/generated/graphql'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; diff --git a/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerFailPaymentInfo.tsx b/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerFailPaymentInfo.tsx index b1cc81abd1c..244f7fdd676 100644 --- a/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerFailPaymentInfo.tsx +++ b/packages/twenty-front/src/modules/information-banner/components/billing/InformationBannerFailPaymentInfo.tsx @@ -1,9 +1,9 @@ +import { useRedirect } from '@/domain-manager/hooks/useRedirect'; import { InformationBanner } from '@/information-banner/components/InformationBanner'; import { SettingsPath } from '@/types/SettingsPath'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useBillingPortalSessionQuery } from '~/generated/graphql'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; -import { useRedirect } from '@/domain-manager/hooks/useRedirect'; export const InformationBannerFailPaymentInfo = () => { const { redirect } = useRedirect(); diff --git a/packages/twenty-front/src/modules/localization/utils/detectTimeFormat.ts b/packages/twenty-front/src/modules/localization/utils/detectTimeFormat.ts index d6d914d8363..532178c1126 100644 --- a/packages/twenty-front/src/modules/localization/utils/detectTimeFormat.ts +++ b/packages/twenty-front/src/modules/localization/utils/detectTimeFormat.ts @@ -1,5 +1,5 @@ import { TimeFormat } from '@/localization/constants/TimeFormat'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const detectTimeFormat = (): keyof typeof TimeFormat => { const isHour12 = Intl.DateTimeFormat(navigator.language, { diff --git a/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts b/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts index cb3168ab83b..b3fa4412d0f 100644 --- a/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts +++ b/packages/twenty-front/src/modules/navigation/hooks/useDefaultHomePagePath.ts @@ -8,7 +8,7 @@ import { AppPath } from '@/types/AppPath'; import { View } from '@/views/types/View'; import { useCallback, useMemo } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { getAppPath } from '~/utils/navigation/getAppPath'; export const useDefaultHomePagePath = () => { diff --git a/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedObjectMetadataItem.ts b/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedObjectMetadataItem.ts index fca96e2cb39..e95fa257937 100644 --- a/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedObjectMetadataItem.ts +++ b/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedObjectMetadataItem.ts @@ -5,7 +5,7 @@ import { AppPath } from '@/types/AppPath'; import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState'; import { extractComponentState } from '@/ui/utilities/state/component-state/utils/extractComponentState'; import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; import { getAppPath } from '~/utils/navigation/getAppPath'; diff --git a/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedView.ts b/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedView.ts index 09f4190de30..d0abf01e1e9 100644 --- a/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedView.ts +++ b/packages/twenty-front/src/modules/navigation/hooks/useLastVisitedView.ts @@ -4,7 +4,7 @@ import { lastVisitedViewPerObjectMetadataItemStateSelector } from '@/navigation/ import { useFilteredObjectMetadataItems } from '@/object-metadata/hooks/useFilteredObjectMetadataItems'; import { extractComponentState } from '@/ui/utilities/state/component-state/utils/extractComponentState'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useLastVisitedView = () => { const currentWorkspace = useRecoilValue(currentWorkspaceState); diff --git a/packages/twenty-front/src/modules/navigation/states/selectors/lastVisitedViewPerObjectMetadataItemStateSelector.ts b/packages/twenty-front/src/modules/navigation/states/selectors/lastVisitedViewPerObjectMetadataItemStateSelector.ts index efb5c6594e4..42583753668 100644 --- a/packages/twenty-front/src/modules/navigation/states/selectors/lastVisitedViewPerObjectMetadataItemStateSelector.ts +++ b/packages/twenty-front/src/modules/navigation/states/selectors/lastVisitedViewPerObjectMetadataItemStateSelector.ts @@ -1,6 +1,6 @@ import { lastVisitedViewPerObjectMetadataItemState } from '@/navigation/states/lastVisitedViewPerObjectMetadataItemState'; import { createComponentSelector } from '@/ui/utilities/state/component-state/utils/createComponentSelector'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const lastVisitedViewPerObjectMetadataItemStateSelector = createComponentSelector | null>({ diff --git a/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx b/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx index 1ad2595e821..6881b6eaeb5 100644 --- a/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx +++ b/packages/twenty-front/src/modules/object-metadata/components/RemoteNavigationDrawerSection.tsx @@ -1,5 +1,5 @@ import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { currentUserState } from '@/auth/states/currentUserState'; import { NavigationDrawerSectionForObjectMetadataItems } from '@/object-metadata/components/NavigationDrawerSectionForObjectMetadataItems'; diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useFieldMetadataItemById.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useFieldMetadataItemById.ts index 1daffe5f9eb..0960deee4a2 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useFieldMetadataItemById.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useFieldMetadataItemById.ts @@ -1,6 +1,6 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useFieldMetadataItemById = (fieldMetadataId: string) => { const objectMetadataItems = useRecoilValue(objectMetadataItemsState); diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useGetFieldMetadataItemById.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useGetFieldMetadataItemById.ts index c1827d28474..0d5e433cc21 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useGetFieldMetadataItemById.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useGetFieldMetadataItemById.ts @@ -1,6 +1,6 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useGetFieldMetadataItemById = () => { const objectMetadataItems = useRecoilValue(objectMetadataItemsState); diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts index 0a8d3e8600a..5247be17c66 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts @@ -3,7 +3,7 @@ import { useRecoilValue } from 'recoil'; import { ObjectMetadataItemNotFoundError } from '@/object-metadata/errors/ObjectMetadataNotFoundError'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier'; diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemById.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemById.ts index 1783ea61fd1..565aca721c9 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemById.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemById.ts @@ -1,7 +1,7 @@ import { useRecoilValue } from 'recoil'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useObjectMetadataItemById = ({ objectId, diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts index c407749ab64..1a5f1c00477 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts @@ -2,9 +2,8 @@ import { useRecoilValue } from 'recoil'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; -import { isWorkspaceActiveOrSuspended } from 'twenty-shared'; +import { isDefined, isWorkspaceActiveOrSuspended } from 'twenty-shared'; import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems'; -import { isDefined } from '~/utils/isDefined'; export const useObjectNamePluralFromSingular = ({ objectNameSingular, diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts index ce387eb99bb..441372a1247 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts @@ -2,9 +2,8 @@ import { useRecoilValue } from 'recoil'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; -import { isWorkspaceActiveOrSuspended } from 'twenty-shared'; +import { isDefined, isWorkspaceActiveOrSuspended } from 'twenty-shared'; import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems'; -import { isDefined } from '~/utils/isDefined'; export const useObjectNameSingularFromPlural = ({ objectNamePlural, diff --git a/packages/twenty-front/src/modules/object-metadata/utils/getAvatarUrl.ts b/packages/twenty-front/src/modules/object-metadata/utils/getAvatarUrl.ts index 00243cc5a94..69950aea0a8 100644 --- a/packages/twenty-front/src/modules/object-metadata/utils/getAvatarUrl.ts +++ b/packages/twenty-front/src/modules/object-metadata/utils/getAvatarUrl.ts @@ -3,10 +3,9 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { getCompanyDomainName } from '@/object-metadata/utils/getCompanyDomainName'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { getImageAbsoluteURI } from 'twenty-shared'; +import { getImageAbsoluteURI, isDefined } from 'twenty-shared'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; import { getLogoUrlFromDomainName } from '~/utils'; -import { isDefined } from '~/utils/isDefined'; import { getImageIdentifierFieldValue } from './getImageIdentifierFieldValue'; export const getAvatarUrl = ( diff --git a/packages/twenty-front/src/modules/object-metadata/utils/getCompanyDomainName.ts b/packages/twenty-front/src/modules/object-metadata/utils/getCompanyDomainName.ts index a408c8dbda6..1cdc658cf35 100644 --- a/packages/twenty-front/src/modules/object-metadata/utils/getCompanyDomainName.ts +++ b/packages/twenty-front/src/modules/object-metadata/utils/getCompanyDomainName.ts @@ -1,5 +1,5 @@ import { Company } from '@/companies/types/Company'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; // temporary, to remove once domainName has been fully migrated to Links type export const getCompanyDomainName = (company: Company) => { diff --git a/packages/twenty-front/src/modules/object-metadata/utils/getImageIdentifierFieldValue.ts b/packages/twenty-front/src/modules/object-metadata/utils/getImageIdentifierFieldValue.ts index 2c04bfe10ca..0cbccc42abd 100644 --- a/packages/twenty-front/src/modules/object-metadata/utils/getImageIdentifierFieldValue.ts +++ b/packages/twenty-front/src/modules/object-metadata/utils/getImageIdentifierFieldValue.ts @@ -1,6 +1,6 @@ import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getImageIdentifierFieldValue = ( record: ObjectRecord, diff --git a/packages/twenty-front/src/modules/object-metadata/utils/getLabelIdentifierFieldValue.ts b/packages/twenty-front/src/modules/object-metadata/utils/getLabelIdentifierFieldValue.ts index 368cd41f373..9ae2d9fe0d4 100644 --- a/packages/twenty-front/src/modules/object-metadata/utils/getLabelIdentifierFieldValue.ts +++ b/packages/twenty-front/src/modules/object-metadata/utils/getLabelIdentifierFieldValue.ts @@ -1,8 +1,8 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; export const getLabelIdentifierFieldValue = ( record: ObjectRecord, diff --git a/packages/twenty-front/src/modules/object-metadata/utils/getObjectOrderByField.ts b/packages/twenty-front/src/modules/object-metadata/utils/getObjectOrderByField.ts index 35bee687784..614f6ab50b4 100644 --- a/packages/twenty-front/src/modules/object-metadata/utils/getObjectOrderByField.ts +++ b/packages/twenty-front/src/modules/object-metadata/utils/getObjectOrderByField.ts @@ -4,7 +4,7 @@ import { getLabelIdentifierFieldMetadataItem } from '@/object-metadata/utils/get import { getOrderByForFieldMetadataType } from '@/object-metadata/utils/getOrderByForFieldMetadataType'; import { RecordGqlOperationOrderBy } from '@/object-record/graphql/types/RecordGqlOperationOrderBy'; import { OrderBy } from '@/types/OrderBy'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getOrderByFieldForObjectMetadataItem = ( objectMetadataItem: ObjectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-metadata/utils/isLabelIdentifierField.ts b/packages/twenty-front/src/modules/object-metadata/utils/isLabelIdentifierField.ts index 1a40a876727..d5730a9ef5c 100644 --- a/packages/twenty-front/src/modules/object-metadata/utils/isLabelIdentifierField.ts +++ b/packages/twenty-front/src/modules/object-metadata/utils/isLabelIdentifierField.ts @@ -1,6 +1,6 @@ import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const DEFAULT_LABEL_IDENTIFIER_FIELD_NAME = 'name'; diff --git a/packages/twenty-front/src/modules/object-metadata/utils/shouldFieldBeQueried.ts b/packages/twenty-front/src/modules/object-metadata/utils/shouldFieldBeQueried.ts index 6c2d25556b2..2f4d694719e 100644 --- a/packages/twenty-front/src/modules/object-metadata/utils/shouldFieldBeQueried.ts +++ b/packages/twenty-front/src/modules/object-metadata/utils/shouldFieldBeQueried.ts @@ -1,7 +1,7 @@ import { RecordGqlOperationGqlRecordFields } from '@/object-record/graphql/types/RecordGqlOperationGqlRecordFields'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { FieldMetadataItem } from '../types/FieldMetadataItem'; diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterAddFilterRuleSelect.tsx b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterAddFilterRuleSelect.tsx index abd71f5ac2f..1c259f46674 100644 --- a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterAddFilterRuleSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterAddFilterRuleSelect.tsx @@ -12,13 +12,8 @@ import { availableFilterDefinitionsComponentState } from '@/views/states/availab import { ViewFilterGroup } from '@/views/types/ViewFilterGroup'; import { ViewFilterGroupLogicalOperator } from '@/views/types/ViewFilterGroupLogicalOperator'; import { useCallback } from 'react'; -import { - IconLibraryPlus, - IconPlus, - isDefined, - LightButton, - MenuItem, -} from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconLibraryPlus, IconPlus, LightButton, MenuItem } from 'twenty-ui'; import { v4 } from 'uuid'; type AdvancedFilterAddFilterRuleSelectProps = { diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRootLevelViewFilterGroup.tsx b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRootLevelViewFilterGroup.tsx index 9518cef60a9..f4bbce2670f 100644 --- a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRootLevelViewFilterGroup.tsx +++ b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRootLevelViewFilterGroup.tsx @@ -5,7 +5,7 @@ import { AdvancedFilterViewFilter } from '@/object-record/advanced-filter/compon import { AdvancedFilterViewFilterGroup } from '@/object-record/advanced-filter/components/AdvancedFilterViewFilterGroup'; import { useCurrentViewViewFilterGroup } from '@/object-record/advanced-filter/hooks/useCurrentViewViewFilterGroup'; import styled from '@emotion/styled'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const StyledRow = styled.div` display: flex; diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRuleOptionsDropdown.tsx b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRuleOptionsDropdown.tsx index bda3b7a42c4..85e0d3a789e 100644 --- a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRuleOptionsDropdown.tsx +++ b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterRuleOptionsDropdown.tsx @@ -6,7 +6,8 @@ import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown'; import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; import { ADVANCED_FILTER_DROPDOWN_ID } from '@/views/constants/AdvancedFilterDropdownId'; import { useDeleteCombinedViewFilters } from '@/views/hooks/useDeleteCombinedViewFilters'; -import { isDefined, MenuItem } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { MenuItem } from 'twenty-ui'; type AdvancedFilterRuleOptionsDropdownProps = | { diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilterOperandSelect.tsx b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilterOperandSelect.tsx index eda1fe1c1a4..8daba133cca 100644 --- a/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilterOperandSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/advanced-filter/components/AdvancedFilterViewFilterOperandSelect.tsx @@ -10,7 +10,8 @@ import { ADVANCED_FILTER_DROPDOWN_ID } from '@/views/constants/AdvancedFilterDro import { useUpsertCombinedViewFilters } from '@/views/hooks/useUpsertCombinedViewFilters'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import styled from '@emotion/styled'; -import { isDefined, MenuItem } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { MenuItem } from 'twenty-ui'; const StyledContainer = styled.div` flex: 1; diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useCurrentViewViewFilterGroup.ts b/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useCurrentViewViewFilterGroup.ts index 6b38e861a06..3e08f6ccc0f 100644 --- a/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useCurrentViewViewFilterGroup.ts +++ b/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useCurrentViewViewFilterGroup.ts @@ -1,7 +1,7 @@ import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { ViewFilter } from '@/views/types/ViewFilter'; import { ViewFilterGroup } from '@/views/types/ViewFilterGroup'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useCurrentViewViewFilterGroup = ({ viewFilterGroupId, diff --git a/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useDeleteCombinedViewFilterGroup.ts b/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useDeleteCombinedViewFilterGroup.ts index b6149454c89..c9a7ad93ca8 100644 --- a/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useDeleteCombinedViewFilterGroup.ts +++ b/packages/twenty-front/src/modules/object-record/advanced-filter/hooks/useDeleteCombinedViewFilterGroup.ts @@ -6,7 +6,7 @@ import { useGetViewFromCache } from '@/views/hooks/useGetViewFromCache'; import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState'; import { unsavedToDeleteViewFilterGroupIdsComponentFamilyState } from '@/views/states/unsavedToDeleteViewFilterGroupIdsComponentFamilyState'; import { unsavedToUpsertViewFilterGroupsComponentFamilyState } from '@/views/states/unsavedToUpsertViewFilterGroupsComponentFamilyState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useDeleteCombinedViewFilterGroup = ( viewBarComponentId?: string, diff --git a/packages/twenty-front/src/modules/object-record/cache/hooks/useCreateManyRecordsInCache.ts b/packages/twenty-front/src/modules/object-record/cache/hooks/useCreateManyRecordsInCache.ts index 31fb896556d..6435f1e0fcf 100644 --- a/packages/twenty-front/src/modules/object-record/cache/hooks/useCreateManyRecordsInCache.ts +++ b/packages/twenty-front/src/modules/object-record/cache/hooks/useCreateManyRecordsInCache.ts @@ -3,7 +3,7 @@ import { ObjectMetadataItemIdentifier } from '@/object-metadata/types/ObjectMeta import { useCreateOneRecordInCache } from '@/object-record/cache/hooks/useCreateOneRecordInCache'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { prefillRecord } from '@/object-record/utils/prefillRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useCreateManyRecordsInCache = ({ objectNameSingular, diff --git a/packages/twenty-front/src/modules/object-record/cache/hooks/useReadFindManyRecordsQueryInCache.ts b/packages/twenty-front/src/modules/object-record/cache/hooks/useReadFindManyRecordsQueryInCache.ts index cab73ebbd51..3529b286eaf 100644 --- a/packages/twenty-front/src/modules/object-record/cache/hooks/useReadFindManyRecordsQueryInCache.ts +++ b/packages/twenty-front/src/modules/object-record/cache/hooks/useReadFindManyRecordsQueryInCache.ts @@ -7,7 +7,7 @@ import { RecordGqlOperationFindManyResult } from '@/object-record/graphql/types/ import { RecordGqlOperationVariables } from '@/object-record/graphql/types/RecordGqlOperationVariables'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { generateFindManyRecordsQuery } from '@/object-record/utils/generateFindManyRecordsQuery'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useReadFindManyRecordsQueryInCache = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-record/cache/utils/getRecordFromRecordNode.ts b/packages/twenty-front/src/modules/object-record/cache/utils/getRecordFromRecordNode.ts index 23daf1ec629..c2c9b1bcb70 100644 --- a/packages/twenty-front/src/modules/object-record/cache/utils/getRecordFromRecordNode.ts +++ b/packages/twenty-front/src/modules/object-record/cache/utils/getRecordFromRecordNode.ts @@ -3,7 +3,7 @@ import pick from 'lodash.pick'; import { getRecordsFromRecordConnection } from '@/object-record/cache/utils/getRecordsFromRecordConnection'; import { RecordGqlNode } from '@/object-record/graphql/types/RecordGqlNode'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export const getRecordFromRecordNode = ({ diff --git a/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts b/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts index 66c58312b14..f66f4c8e15d 100644 --- a/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts +++ b/packages/twenty-front/src/modules/object-record/cache/utils/getRecordNodeFromRecord.ts @@ -7,11 +7,11 @@ import { getRecordConnectionFromRecords } from '@/object-record/cache/utils/getR import { getRefName } from '@/object-record/cache/utils/getRefName'; import { RecordGqlNode } from '@/object-record/graphql/types/RecordGqlNode'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType, RelationDefinitionType, } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { pascalCase } from '~/utils/string/pascalCase'; export const getRecordNodeFromRecord = ({ diff --git a/packages/twenty-front/src/modules/object-record/graphql/utils/generateDepthOneRecordGqlFields.ts b/packages/twenty-front/src/modules/object-record/graphql/utils/generateDepthOneRecordGqlFields.ts index 7870c00cc9f..fcc768267df 100644 --- a/packages/twenty-front/src/modules/object-record/graphql/utils/generateDepthOneRecordGqlFields.ts +++ b/packages/twenty-front/src/modules/object-record/graphql/utils/generateDepthOneRecordGqlFields.ts @@ -1,5 +1,5 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const generateDepthOneRecordGqlFields = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecords.ts index 19262db753c..0805c2f3fde 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecords.ts @@ -7,7 +7,7 @@ import { RecordGqlOperationFindManyResult } from '@/object-record/graphql/types/ import { useAggregateRecordsQuery } from '@/object-record/hooks/useAggregateRecordsQuery'; import { ExtendedAggregateOperations } from '@/object-record/record-table/types/ExtendedAggregateOperations'; import isEmpty from 'lodash.isempty'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export type AggregateRecordsData = { [fieldName: string]: { diff --git a/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecordsQuery.ts b/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecordsQuery.ts index 3333ae2817b..8c6bb32126a 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecordsQuery.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useAggregateRecordsQuery.ts @@ -5,7 +5,7 @@ import { ExtendedAggregateOperations } from '@/object-record/record-table/types/ import { generateAggregateQuery } from '@/object-record/utils/generateAggregateQuery'; import { getAvailableAggregationsFromObjectFields } from '@/object-record/utils/getAvailableAggregationsFromObjectFields'; import { useMemo } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export type GqlFieldToFieldMap = { [gqlField: string]: [ diff --git a/packages/twenty-front/src/modules/object-record/hooks/useAttachRelatedRecordFromRecord.ts b/packages/twenty-front/src/modules/object-record/hooks/useAttachRelatedRecordFromRecord.ts index 17c80b4c188..ddbda55874a 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useAttachRelatedRecordFromRecord.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useAttachRelatedRecordFromRecord.ts @@ -7,7 +7,7 @@ import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordF import { generateDepthOneRecordGqlFields } from '@/object-record/graphql/utils/generateDepthOneRecordGqlFields'; import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type useAttachRelatedRecordFromRecordProps = { recordObjectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/hooks/useCreateManyRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useCreateManyRecords.ts index 0988811a608..46d3bfcfe3d 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useCreateManyRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useCreateManyRecords.ts @@ -17,7 +17,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { computeOptimisticRecordFromInput } from '@/object-record/utils/computeOptimisticRecordFromInput'; import { getCreateManyRecordsMutationResponseField } from '@/object-record/utils/getCreateManyRecordsMutationResponseField'; import { sanitizeRecordInput } from '@/object-record/utils/sanitizeRecordInput'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type PartialObjectRecordWithId = Partial & { id: string; diff --git a/packages/twenty-front/src/modules/object-record/hooks/useCreateOneRecord.ts b/packages/twenty-front/src/modules/object-record/hooks/useCreateOneRecord.ts index cb3acf6576c..16a2205d684 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useCreateOneRecord.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useCreateOneRecord.ts @@ -18,7 +18,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { computeOptimisticRecordFromInput } from '@/object-record/utils/computeOptimisticRecordFromInput'; import { getCreateOneRecordMutationResponseField } from '@/object-record/utils/getCreateOneRecordMutationResponseField'; import { sanitizeRecordInput } from '@/object-record/utils/sanitizeRecordInput'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type useCreateOneRecordProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/hooks/useDeleteManyRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useDeleteManyRecords.ts index cbeaf1bce22..ca03bd89a56 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useDeleteManyRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useDeleteManyRecords.ts @@ -14,8 +14,7 @@ import { useRefetchAggregateQueries } from '@/object-record/hooks/useRefetchAggr import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { getDeleteManyRecordsMutationResponseField } from '@/object-record/utils/getDeleteManyRecordsMutationResponseField'; import { useRecoilValue } from 'recoil'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { sleep } from '~/utils/sleep'; diff --git a/packages/twenty-front/src/modules/object-record/hooks/useDeleteOneRecord.ts b/packages/twenty-front/src/modules/object-record/hooks/useDeleteOneRecord.ts index 58dc741e171..2d3846bd3c3 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useDeleteOneRecord.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useDeleteOneRecord.ts @@ -11,8 +11,7 @@ import { useDeleteOneRecordMutation } from '@/object-record/hooks/useDeleteOneRe import { useRefetchAggregateQueries } from '@/object-record/hooks/useRefetchAggregateQueries'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { getDeleteOneRecordMutationResponseField } from '@/object-record/utils/getDeleteOneRecordMutationResponseField'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; type useDeleteOneRecordProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/hooks/useDestroyManyRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useDestroyManyRecords.ts index e26be2c46ca..b434efa9400 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useDestroyManyRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useDestroyManyRecords.ts @@ -11,8 +11,7 @@ import { useDestroyManyRecordsMutation } from '@/object-record/hooks/useDestroyM import { useRefetchAggregateQueries } from '@/object-record/hooks/useRefetchAggregateQueries'; import { getDestroyManyRecordsMutationResponseField } from '@/object-record/utils/getDestroyManyRecordsMutationResponseField'; import { useRecoilValue } from 'recoil'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; import { sleep } from '~/utils/sleep'; type useDestroyManyRecordProps = { diff --git a/packages/twenty-front/src/modules/object-record/hooks/useFetchMoreRecordsWithPagination.ts b/packages/twenty-front/src/modules/object-record/hooks/useFetchMoreRecordsWithPagination.ts index 0edc1641241..abdbf763949 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useFetchMoreRecordsWithPagination.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useFetchMoreRecordsWithPagination.ts @@ -23,8 +23,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { OnFindManyRecordsCompleted } from '@/object-record/types/OnFindManyRecordsCompleted'; import { filterUniqueRecordEdgesByCursor } from '@/object-record/utils/filterUniqueRecordEdgesByCursor'; import { getQueryIdentifier } from '@/object-record/utils/getQueryIdentifier'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; import { cursorFamilyState } from '../states/cursorFamilyState'; import { hasNextPageFamilyState } from '../states/hasNextPageFamilyState'; diff --git a/packages/twenty-front/src/modules/object-record/hooks/useFindOneRecord.ts b/packages/twenty-front/src/modules/object-record/hooks/useFindOneRecord.ts index 0ddbde032ac..34c714aea8e 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useFindOneRecord.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useFindOneRecord.ts @@ -9,7 +9,7 @@ import { RecordGqlOperationGqlRecordFields } from '@/object-record/graphql/types import { generateDepthOneRecordGqlFields } from '@/object-record/graphql/utils/generateDepthOneRecordGqlFields'; import { useFindOneRecordQuery } from '@/object-record/hooks/useFindOneRecordQuery'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useFindOneRecord = ({ objectNameSingular, diff --git a/packages/twenty-front/src/modules/object-record/hooks/useHandleFindManyRecordsCompleted.ts b/packages/twenty-front/src/modules/object-record/hooks/useHandleFindManyRecordsCompleted.ts index f0f89bfb2e6..587d77bc5a0 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useHandleFindManyRecordsCompleted.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useHandleFindManyRecordsCompleted.ts @@ -6,7 +6,7 @@ import { RecordGqlOperationFindManyResult } from '@/object-record/graphql/types/ import { cursorFamilyState } from '@/object-record/states/cursorFamilyState'; import { hasNextPageFamilyState } from '@/object-record/states/hasNextPageFamilyState'; import { OnFindManyRecordsCompleted } from '@/object-record/types/OnFindManyRecordsCompleted'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useHandleFindManyRecordsCompleted = ({ queryIdentifier, diff --git a/packages/twenty-front/src/modules/object-record/hooks/useLazyFetchAllRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useLazyFetchAllRecords.ts index 1bc1c3f5d94..b07b66fe5f1 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useLazyFetchAllRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useLazyFetchAllRecords.ts @@ -1,10 +1,10 @@ import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; +import { DEFAULT_QUERY_PAGE_SIZE } from '@/object-record/constants/DefaultQueryPageSize'; import { UseFindManyRecordsParams } from '@/object-record/hooks/useFetchMoreRecordsWithPagination'; import { useLazyFindManyRecords } from '@/object-record/hooks/useLazyFindManyRecords'; import { useCallback, useState } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { sleep } from '~/utils/sleep'; -import { DEFAULT_QUERY_PAGE_SIZE } from '@/object-record/constants/DefaultQueryPageSize'; type UseLazyFetchAllRecordIdsParams = Omit< UseFindManyRecordsParams, diff --git a/packages/twenty-front/src/modules/object-record/hooks/useRestoreManyRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useRestoreManyRecords.ts index f5bef1f9f56..acee5873352 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useRestoreManyRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useRestoreManyRecords.ts @@ -12,8 +12,7 @@ import { useRestoreManyRecordsMutation } from '@/object-record/hooks/useRestoreM import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { getRestoreManyRecordsMutationResponseField } from '@/object-record/utils/getRestoreManyRecordsMutationResponseField'; import { useRecoilValue } from 'recoil'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; import { sleep } from '~/utils/sleep'; type useRestoreManyRecordProps = { diff --git a/packages/twenty-front/src/modules/object-record/hooks/useSearchRecords.ts b/packages/twenty-front/src/modules/object-record/hooks/useSearchRecords.ts index 7c1f9016259..1e8dae6bf88 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useSearchRecords.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useSearchRecords.ts @@ -13,7 +13,7 @@ import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { useQuery, WatchQueryFetchPolicy } from '@apollo/client'; import { useMemo } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { logError } from '~/utils/logError'; export type UseSearchRecordsParams = ObjectMetadataItemIdentifier & diff --git a/packages/twenty-front/src/modules/object-record/hooks/useUpdateOneRecord.ts b/packages/twenty-front/src/modules/object-record/hooks/useUpdateOneRecord.ts index 3cc80ffc039..e1859244dc7 100644 --- a/packages/twenty-front/src/modules/object-record/hooks/useUpdateOneRecord.ts +++ b/packages/twenty-front/src/modules/object-record/hooks/useUpdateOneRecord.ts @@ -13,8 +13,7 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { computeOptimisticRecordFromInput } from '@/object-record/utils/computeOptimisticRecordFromInput'; import { getUpdateOneRecordMutationResponseField } from '@/object-record/utils/getUpdateOneRecordMutationResponseField'; import { sanitizeRecordInput } from '@/object-record/utils/sanitizeRecordInput'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; type useUpdateOneRecordProps = { diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownBooleanSelect.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownBooleanSelect.tsx index 6c7ac92433e..fe8295eecf4 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownBooleanSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownBooleanSelect.tsx @@ -13,8 +13,8 @@ import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/Drop import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { SelectableList } from '@/ui/layout/selectable-list/components/SelectableList'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; +import { isDefined } from 'twenty-shared'; import { IconCheck } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; const StyledBooleanSelectContainer = styled.div<{ selected?: boolean }>` align-items: center; diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownDateInput.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownDateInput.tsx index 3fdec73c59a..77b980e6fca 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownDateInput.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownDateInput.tsx @@ -15,7 +15,7 @@ import { VariableDateViewFilterValueUnit, } from '@/views/view-filter-value/utils/resolveDateViewFilterValue'; import { useState } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; export const ObjectFilterDropdownDateInput = () => { diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterInput.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterInput.tsx index 6d792baa8eb..891521ee654 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterInput.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterInput.tsx @@ -9,7 +9,7 @@ import { ObjectFilterDropdownTextSearchInput } from '@/object-record/object-filt import { isActorSourceCompositeFilter } from '@/object-record/object-filter-dropdown/utils/isActorSourceCompositeFilter'; import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownMenuSeparator'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { ObjectFilterDropdownBooleanSelect } from '@/object-record/object-filter-dropdown/components/ObjectFilterDropdownBooleanSelect'; import { DATE_FILTER_TYPES } from '@/object-record/object-filter-dropdown/constants/DateFilterTypes'; diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelect.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelect.tsx index efcc83ba5f5..fe0dbd64013 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelect.tsx @@ -21,7 +21,7 @@ import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-sta import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { availableFilterDefinitionsComponentState } from '@/views/states/availableFilterDefinitionsComponentState'; import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FeatureFlagKey } from '~/generated/graphql'; import { advancedFilterViewFilterIdComponentState } from '@/object-record/object-filter-dropdown/states/advancedFilterViewFilterIdComponentState'; diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelectCompositeFieldSubMenu.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelectCompositeFieldSubMenu.tsx index 71b3b356cbc..b87f88caf37 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelectCompositeFieldSubMenu.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownFilterSelectCompositeFieldSubMenu.tsx @@ -22,13 +22,8 @@ import { useRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/ import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2'; import { useState } from 'react'; -import { - IconApps, - IconChevronLeft, - isDefined, - MenuItem, - useIcons, -} from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconApps, IconChevronLeft, MenuItem, useIcons } from 'twenty-ui'; export const ObjectFilterDropdownFilterSelectCompositeFieldSubMenu = () => { const [searchText] = useState(''); diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOperandSelect.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOperandSelect.tsx index 8a29a12a96f..48bf4787834 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOperandSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOperandSelect.tsx @@ -11,8 +11,8 @@ import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/ import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import styled from '@emotion/styled'; +import { isDefined } from 'twenty-shared'; import { MenuItem } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { getRecordFilterOperandsForRecordFilterDefinition } from '../../record-filter/utils/getRecordFilterOperandsForRecordFilterDefinition'; import { getOperandLabel } from '../utils/getOperandLabel'; diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOptionSelect.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOptionSelect.tsx index cc888c61d21..8b41f849643 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOptionSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownOptionSelect.tsx @@ -21,8 +21,8 @@ import { selectedOperandInDropdownComponentState } from '@/object-record/object- import { useApplyRecordFilter } from '@/object-record/record-filter/hooks/useApplyRecordFilter'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; +import { isDefined } from 'twenty-shared'; import { MenuItem, MenuItemMultiSelect } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; export const EMPTY_FILTER_VALUE = ''; export const MAX_OPTIONS_TO_DISPLAY = 3; diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownRecordSelect.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownRecordSelect.tsx index b63a8817e3e..dd2299a0390 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownRecordSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownRecordSelect.tsx @@ -22,8 +22,8 @@ import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { RelationFilterValue } from '@/views/view-filter-value/types/RelationFilterValue'; import { jsonRelationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/jsonRelationFilterValueSchema'; import { simpleRelationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/simpleRelationFilterValueSchema'; +import { isDefined } from 'twenty-shared'; import { IconUserCircle } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; export const EMPTY_FILTER_VALUE: string = JSON.stringify({ isCurrentWorkspaceMemberSelected: false, diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownSourceSelect.tsx b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownSourceSelect.tsx index 5639d82ea1f..cf61eda4610 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownSourceSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/components/ObjectFilterDropdownSourceSelect.tsx @@ -18,7 +18,7 @@ import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-sta import { useDeleteCombinedViewFilters } from '@/views/hooks/useDeleteCombinedViewFilters'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const EMPTY_FILTER_VALUE = '[]'; export const MAX_ITEMS_TO_DISPLAY = 3; diff --git a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts index 4895bfd76f9..16eff5a93c5 100644 --- a/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts +++ b/packages/twenty-front/src/modules/object-record/object-filter-dropdown/hooks/useSelectFilterDefinitionUsedInDropdown.ts @@ -12,7 +12,7 @@ import { RelationPickerHotkeyScope } from '@/object-record/relation-picker/types import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { v4 } from 'uuid'; type SelectFilterParams = { diff --git a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownMenuContent.tsx b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownMenuContent.tsx index 3bcd47afa32..9a67fe0693c 100644 --- a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownMenuContent.tsx +++ b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownMenuContent.tsx @@ -31,7 +31,7 @@ import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { ViewType } from '@/views/types/ViewType'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const ObjectOptionsDropdownMenuContent = () => { const { diff --git a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownRecordGroupFieldsContent.tsx b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownRecordGroupFieldsContent.tsx index 7b8d45ab50a..314b49c95ce 100644 --- a/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownRecordGroupFieldsContent.tsx +++ b/packages/twenty-front/src/modules/object-record/object-options-dropdown/components/ObjectOptionsDropdownRecordGroupFieldsContent.tsx @@ -26,8 +26,8 @@ import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/ import { ViewType } from '@/views/types/ViewType'; import { useLocation } from 'react-router-dom'; import { useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; export const ObjectOptionsDropdownRecordGroupFieldsContent = () => { diff --git a/packages/twenty-front/src/modules/object-record/object-options-dropdown/hooks/useExportProcessRecordsForCSV.ts b/packages/twenty-front/src/modules/object-record/object-options-dropdown/hooks/useExportProcessRecordsForCSV.ts index 4e930fc4fba..6f499d75b2c 100644 --- a/packages/twenty-front/src/modules/object-record/object-options-dropdown/hooks/useExportProcessRecordsForCSV.ts +++ b/packages/twenty-front/src/modules/object-record/object-options-dropdown/hooks/useExportProcessRecordsForCSV.ts @@ -1,7 +1,7 @@ import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; import { FieldCurrencyValue } from '@/object-record/record-field/types/FieldMetadata'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { convertCurrencyMicrosToCurrencyAmount } from '~/utils/convertCurrencyToCurrencyMicros'; diff --git a/packages/twenty-front/src/modules/object-record/object-sort-dropdown/utils/turnSortsIntoOrderBy.ts b/packages/twenty-front/src/modules/object-record/object-sort-dropdown/utils/turnSortsIntoOrderBy.ts index b38c0bba8dd..c2946592d3c 100644 --- a/packages/twenty-front/src/modules/object-record/object-sort-dropdown/utils/turnSortsIntoOrderBy.ts +++ b/packages/twenty-front/src/modules/object-record/object-sort-dropdown/utils/turnSortsIntoOrderBy.ts @@ -2,8 +2,8 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { hasPositionField } from '@/object-metadata/utils/hasPositionField'; import { RecordGqlOperationOrderBy } from '@/object-record/graphql/types/RecordGqlOperationOrderBy'; +import { isDefined } from 'twenty-shared'; import { mapArrayToObject } from '~/utils/array/mapArrayToObject'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; diff --git a/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordBoardRecordIds.ts b/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordBoardRecordIds.ts index 63b127408c0..95994896d00 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordBoardRecordIds.ts +++ b/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordBoardRecordIds.ts @@ -9,8 +9,8 @@ import { sortRecordsByPosition } from '@/object-record/utils/sortRecordsByPositi import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { getSnapshotValue } from '@/ui/utilities/state/utils/getSnapshotValue'; import { ViewType } from '@/views/types/ViewType'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; export const useSetRecordBoardRecordIds = (recordBoardId?: string) => { const visibleRecordGroupIdsFamilySelector = useRecoilComponentCallbackStateV2( diff --git a/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordIdsForColumn.ts b/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordIdsForColumn.ts index 35a0dda049d..2408a69f8de 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordIdsForColumn.ts +++ b/packages/twenty-front/src/modules/object-record/record-board/hooks/useSetRecordIdsForColumn.ts @@ -7,8 +7,8 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { sortRecordsByPosition } from '@/object-record/utils/sortRecordsByPosition'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { getSnapshotValue } from '@/ui/utilities/state/utils/getSnapshotValue'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; export const useSetRecordIdsForColumn = (recordBoardId?: string) => { const recordGroupFieldMetadataState = useRecoilComponentCallbackStateV2( diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderAggregateDropdownFieldsContent.tsx b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderAggregateDropdownFieldsContent.tsx index 2f4843e685d..91e5799bf8d 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderAggregateDropdownFieldsContent.tsx +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderAggregateDropdownFieldsContent.tsx @@ -9,6 +9,7 @@ import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/Drop import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useUpdateViewAggregate } from '@/views/hooks/useUpdateViewAggregate'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { Icon123, IconCheck, @@ -16,7 +17,6 @@ import { MenuItem, useIcons, } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; export const RecordBoardColumnHeaderAggregateDropdownFieldsContent = () => { const { diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderWrapper.tsx b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderWrapper.tsx index f156395f32d..1561ecc4f37 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderWrapper.tsx +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderWrapper.tsx @@ -1,4 +1,4 @@ -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { RecordBoardColumnHeader } from '@/object-record/record-board/record-board-column/components/RecordBoardColumnHeader'; import { RecordBoardColumnContext } from '@/object-record/record-board/record-board-column/contexts/RecordBoardColumnContext'; diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnNewOpportunity.tsx b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnNewOpportunity.tsx index 0095e1dedbb..32d9fe4ffc7 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnNewOpportunity.tsx +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/components/RecordBoardColumnNewOpportunity.tsx @@ -11,8 +11,8 @@ import { OverlayContainer } from '@/ui/layout/overlay/components/OverlayContaine import { useRightDrawer } from '@/ui/layout/right-drawer/hooks/useRightDrawer'; import { RightDrawerPages } from '@/ui/layout/right-drawer/types/RightDrawerPages'; import { useRecoilValue, useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { v4 } from 'uuid'; -import { isDefined } from '~/utils/isDefined'; export const RecordBoardColumnNewOpportunity = ({ columnId, diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAddNewCard.ts b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAddNewCard.ts index 29bef2b126f..87e5d7569f6 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAddNewCard.ts +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAddNewCard.ts @@ -7,7 +7,7 @@ import { RelationPickerHotkeyScope } from '@/object-record/relation-picker/types import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { useCallback, useContext } from 'react'; import { RecoilState, useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { v4 as uuidv4 } from 'uuid'; import { FieldMetadataType } from '~/generated-metadata/graphql'; diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAggregateRecordsForRecordBoardColumn.ts b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAggregateRecordsForRecordBoardColumn.ts index 7c4d89988fd..1501b2d6445 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAggregateRecordsForRecordBoardColumn.ts +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/hooks/useAggregateRecordsForRecordBoardColumn.ts @@ -4,7 +4,7 @@ import { recordIndexKanbanFieldMetadataIdState } from '@/object-record/record-in import { useAggregateRecordsForHeader } from '@/object-record/record-table/hooks/useAggregateRecordsForHeader'; import { useContext } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useAggregateRecordsForRecordBoardColumn = () => { const { columnDefinition } = useContext(RecordBoardColumnContext); diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/buildRecordGqlFieldsAggregateForView.ts b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/buildRecordGqlFieldsAggregateForView.ts index ad27e0355ca..fdba7a5433f 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/buildRecordGqlFieldsAggregateForView.ts +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/buildRecordGqlFieldsAggregateForView.ts @@ -2,8 +2,10 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { RecordGqlFieldsAggregate } from '@/object-record/graphql/types/RecordGqlFieldsAggregate'; import { KanbanAggregateOperation } from '@/object-record/record-index/states/recordIndexKanbanAggregateOperationState'; import { AGGREGATE_OPERATIONS } from '@/object-record/record-table/constants/AggregateOperations'; -import { FIELD_FOR_TOTAL_COUNT_AGGREGATE_OPERATION } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { + FIELD_FOR_TOTAL_COUNT_AGGREGATE_OPERATION, + isDefined, +} from 'twenty-shared'; export const buildRecordGqlFieldsAggregateForView = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/computeAggregateValueAndLabel.ts b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/computeAggregateValueAndLabel.ts index 95a3e296513..b357c2885f6 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/computeAggregateValueAndLabel.ts +++ b/packages/twenty-front/src/modules/object-record/record-board/record-board-column/utils/computeAggregateValueAndLabel.ts @@ -10,11 +10,13 @@ import { PERCENT_AGGREGATE_OPERATION_OPTIONS } from '@/object-record/record-tabl import { ExtendedAggregateOperations } from '@/object-record/record-table/types/ExtendedAggregateOperations'; import { t } from '@lingui/core/macro'; import isEmpty from 'lodash.isempty'; -import { FIELD_FOR_TOTAL_COUNT_AGGREGATE_OPERATION } from 'twenty-shared'; +import { + FIELD_FOR_TOTAL_COUNT_AGGREGATE_OPERATION, + isDefined, +} from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { formatAmount } from '~/utils/format/formatAmount'; import { formatNumber } from '~/utils/format/number'; -import { isDefined } from '~/utils/isDefined'; import { formatDateString } from '~/utils/string/formatDateString'; import { formatDateTimeString } from '~/utils/string/formatDateTimeString'; diff --git a/packages/twenty-front/src/modules/object-record/record-board/utils/getDraggedRecordPosition.ts b/packages/twenty-front/src/modules/object-record/record-board/utils/getDraggedRecordPosition.ts index a1a9090af20..8f096390216 100644 --- a/packages/twenty-front/src/modules/object-record/record-board/utils/getDraggedRecordPosition.ts +++ b/packages/twenty-front/src/modules/object-record/record-board/utils/getDraggedRecordPosition.ts @@ -1,4 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getDraggedRecordPosition = ( recordBeforePosition?: number, diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormBooleanFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormBooleanFieldInput.tsx index 0176248f427..f33ac3507de 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormBooleanFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormBooleanFieldInput.tsx @@ -8,7 +8,7 @@ import { InputLabel } from '@/ui/input/components/InputLabel'; import { isStandaloneVariableString } from '@/workflow/utils/isStandaloneVariableString'; import styled from '@emotion/styled'; import { useId, useState } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const StyledBooleanInputContainer = styled.div` padding-inline: ${({ theme }) => theme.spacing(2)}; diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormDateTimeFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormDateTimeFieldInput.tsx index a3ea73e7722..48df5df53c2 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormDateTimeFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormDateTimeFieldInput.tsx @@ -29,7 +29,8 @@ import { useRef, useState, } from 'react'; -import { isDefined, Nullable, TEXT_INPUT_STYLE } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { Nullable, TEXT_INPUT_STYLE } from 'twenty-ui'; const StyledInputContainer = styled(FormFieldInputInputContainer)` display: grid; diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormMultiSelectFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormMultiSelectFieldInput.tsx index 5ba322b3457..c97d3eee97c 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormMultiSelectFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormMultiSelectFieldInput.tsx @@ -16,8 +16,8 @@ import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousH import { isStandaloneVariableString } from '@/workflow/utils/isStandaloneVariableString'; import { useTheme } from '@emotion/react'; import { useId, useState } from 'react'; +import { isDefined } from 'twenty-shared'; import { IconChevronDown, VisibilityHidden } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; type FormMultiSelectFieldInputProps = { label?: string; diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormNumberFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormNumberFieldInput.tsx index cdc01e619a6..142cc82e7bc 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormNumberFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormNumberFieldInput.tsx @@ -9,7 +9,7 @@ import { InputLabel } from '@/ui/input/components/InputLabel'; import { isStandaloneVariableString } from '@/workflow/utils/isStandaloneVariableString'; import styled from '@emotion/styled'; import { useId, useState } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { canBeCastAsNumberOrNull, castAsNumberOrNull, diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormRawJsonFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormRawJsonFieldInput.tsx index e5d944f7b81..68dc4de5579 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormRawJsonFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormRawJsonFieldInput.tsx @@ -6,7 +6,7 @@ import { useTextVariableEditor } from '@/object-record/record-field/form-types/h import { VariablePickerComponent } from '@/object-record/record-field/form-types/types/VariablePickerComponent'; import { InputLabel } from '@/ui/input/components/InputLabel'; import { useId } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { turnIntoEmptyStringIfWhitespacesOnly } from '~/utils/string/turnIntoEmptyStringIfWhitespacesOnly'; type FormRawJsonFieldInputProps = { diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormSelectFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormSelectFieldInput.tsx index 90c5aad7ed2..c6ac040dcc4 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormSelectFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormSelectFieldInput.tsx @@ -18,7 +18,8 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { useId, useState } from 'react'; import { Key } from 'ts-key-enum'; -import { IconChevronDown, isDefined, VisibilityHidden } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconChevronDown, VisibilityHidden } from 'twenty-ui'; type FormSelectFieldInputProps = { label?: string; diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormTextFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormTextFieldInput.tsx index 7194948b9ed..3f4e998f737 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormTextFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormTextFieldInput.tsx @@ -7,7 +7,7 @@ import { VariablePickerComponent } from '@/object-record/record-field/form-types import { InputLabel } from '@/ui/input/components/InputLabel'; import { parseEditorContent } from '@/workflow/workflow-variables/utils/parseEditorContent'; import { useId } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; type FormTextFieldInputProps = { label?: string; diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormUuidFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormUuidFieldInput.tsx index 7cca096a524..6d0a96a1e87 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormUuidFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/FormUuidFieldInput.tsx @@ -8,7 +8,7 @@ import { InputLabel } from '@/ui/input/components/InputLabel'; import { isStandaloneVariableString } from '@/workflow/utils/isStandaloneVariableString'; import styled from '@emotion/styled'; import { useId, useState } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const StyledInput = styled(TextInput)` padding: ${({ theme }) => `${theme.spacing(1)} ${theme.spacing(2)}`}; diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/VariableChip.tsx b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/VariableChip.tsx index 07f615af591..c4456ef8340 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/components/VariableChip.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/components/VariableChip.tsx @@ -1,7 +1,8 @@ import { extractVariableLabel } from '@/workflow/workflow-variables/utils/extractVariableLabel'; import { css, useTheme } from '@emotion/react'; import styled from '@emotion/styled'; -import { IconX, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconX } from 'twenty-ui'; const StyledChip = styled.div<{ deletable: boolean }>` background-color: ${({ theme }) => theme.accent.quaternary}; diff --git a/packages/twenty-front/src/modules/object-record/record-field/form-types/hooks/useTextVariableEditor.ts b/packages/twenty-front/src/modules/object-record/record-field/form-types/hooks/useTextVariableEditor.ts index d3125b5f296..5c9b8030000 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/form-types/hooks/useTextVariableEditor.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/form-types/hooks/useTextVariableEditor.ts @@ -7,7 +7,7 @@ import Paragraph from '@tiptap/extension-paragraph'; import { default as Placeholder } from '@tiptap/extension-placeholder'; import Text from '@tiptap/extension-text'; import { Editor, useEditor } from '@tiptap/react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; type UseTextVariableEditorProps = { placeholder: string | undefined; diff --git a/packages/twenty-front/src/modules/object-record/record-field/hooks/useIsFieldEmpty.ts b/packages/twenty-front/src/modules/object-record/record-field/hooks/useIsFieldEmpty.ts index 446aeed8b73..26d4ade28f9 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/hooks/useIsFieldEmpty.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/hooks/useIsFieldEmpty.ts @@ -2,7 +2,7 @@ import { useContext } from 'react'; import { isFieldValueEmpty } from '@/object-record/record-field/utils/isFieldValueEmpty'; import { useRecordFieldValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { FieldContext } from '../contexts/FieldContext'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/JsonFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/JsonFieldDisplay.tsx index ab2dde8d729..f419651dc50 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/JsonFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/JsonFieldDisplay.tsx @@ -1,6 +1,6 @@ import { useJsonFieldDisplay } from '@/object-record/record-field/meta-types/hooks/useJsonFieldDisplay'; import { JsonDisplay } from '@/ui/field/display/components/JsonDisplay'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const JsonFieldDisplay = () => { const { fieldValue, maxWidth } = useJsonFieldDisplay(); diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/NumberFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/NumberFieldDisplay.tsx index 568d8ce6525..74cb7e6c0a8 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/NumberFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/NumberFieldDisplay.tsx @@ -1,6 +1,6 @@ import { useNumberFieldDisplay } from '@/object-record/record-field/meta-types/hooks/useNumberFieldDisplay'; import { NumberDisplay } from '@/ui/field/display/components/NumberDisplay'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { formatNumber } from '~/utils/format/number'; export const NumberFieldDisplay = () => { diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/SelectFieldDisplay.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/SelectFieldDisplay.tsx index 74ec57afc8c..ef0b1cd8f0d 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/SelectFieldDisplay.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/display/components/SelectFieldDisplay.tsx @@ -1,6 +1,6 @@ import { useSelectFieldDisplay } from '@/object-record/record-field/meta-types/hooks/useSelectFieldDisplay'; import { SelectDisplay } from '@/ui/field/display/components/SelectDisplay'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const SelectFieldDisplay = () => { const { fieldValue, fieldDefinition } = useSelectFieldDisplay(); diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts index e9b10179eb6..eceb8c15520 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useChipFieldDisplay.ts @@ -6,7 +6,7 @@ import { isFieldFullName } from '@/object-record/record-field/types/guards/isFie import { isFieldNumber } from '@/object-record/record-field/types/guards/isFieldNumber'; import { isFieldText } from '@/object-record/record-field/types/guards/isFieldText'; import { useRecordValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isFieldActor } from '@/object-record/record-field/types/guards/isFieldActor'; import { FieldContext } from '../../contexts/FieldContext'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationFromManyFieldDisplay.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationFromManyFieldDisplay.ts index 5a59705878e..86c389d0b1e 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationFromManyFieldDisplay.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationFromManyFieldDisplay.ts @@ -6,8 +6,8 @@ import { generateDefaultRecordChipData } from '@/object-metadata/utils/generateD import { useRecordFieldValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { FIELD_EDIT_BUTTON_WIDTH } from '@/ui/field/display/constants/FieldEditButtonWidth'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { FieldContext } from '../../contexts/FieldContext'; import { assertFieldMetadata } from '../../types/guards/assertFieldMetadata'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationToOneFieldDisplay.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationToOneFieldDisplay.ts index 7267b67016d..3ad94bb3c13 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationToOneFieldDisplay.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/hooks/useRelationToOneFieldDisplay.ts @@ -6,8 +6,8 @@ import { generateDefaultRecordChipData } from '@/object-metadata/utils/generateD import { useRecordFieldValue } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { FIELD_EDIT_BUTTON_WIDTH } from '@/ui/field/display/constants/FieldEditButtonWidth'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { FieldContext } from '../../contexts/FieldContext'; import { assertFieldMetadata } from '../../types/guards/assertFieldMetadata'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/DateFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/DateFieldInput.tsx index 888f59aed43..2fe5ef63b9a 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/DateFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/DateFieldInput.tsx @@ -2,7 +2,7 @@ import { Nullable } from 'twenty-ui'; import { useDateField } from '@/object-record/record-field/meta-types/hooks/useDateField'; import { DateInput } from '@/ui/field/input/components/DateInput'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { FieldInputClickOutsideEvent } from '@/object-record/record-field/meta-types/input/components/DateTimeFieldInput'; import { usePersistField } from '../../../hooks/usePersistField'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/EmailsFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/EmailsFieldInput.tsx index 7c2754da1a0..3c8d1630cf4 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/EmailsFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/EmailsFieldInput.tsx @@ -2,7 +2,7 @@ import { useEmailsField } from '@/object-record/record-field/meta-types/hooks/us import { EmailsFieldMenuItem } from '@/object-record/record-field/meta-types/input/components/EmailsFieldMenuItem'; import { emailSchema } from '@/object-record/record-field/validation-schemas/emailSchema'; import { useCallback, useMemo } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { MultiItemFieldInput } from './MultiItemFieldInput'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/LinksFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/LinksFieldInput.tsx index 84810afb741..7415a761c0b 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/LinksFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/LinksFieldInput.tsx @@ -1,7 +1,7 @@ import { useLinksField } from '@/object-record/record-field/meta-types/hooks/useLinksField'; import { LinksFieldMenuItem } from '@/object-record/record-field/meta-types/input/components/LinksFieldMenuItem'; import { useMemo } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { absoluteUrlSchema } from '~/utils/validation-schemas/absoluteUrlSchema'; import { MultiItemFieldInput } from './MultiItemFieldInput'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx index cc192ddbca9..fd454d5fc23 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/SelectFieldInput.tsx @@ -8,7 +8,7 @@ import { useSelectableList } from '@/ui/layout/selectable-list/hooks/useSelectab import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useState } from 'react'; import { Key } from 'ts-key-enum'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; type SelectFieldInputProps = { onSubmit?: FieldInputEvent; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RatingFieldInput.stories.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RatingFieldInput.stories.tsx index bb5a14c6032..f2d1d78b97a 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RatingFieldInput.stories.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/__stories__/RatingFieldInput.stories.tsx @@ -3,8 +3,8 @@ import { expect, fn, userEvent, waitFor, within } from '@storybook/test'; import { useEffect } from 'react'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { FieldContextProvider } from '@/object-record/record-field/meta-types/components/FieldContextProvider'; import { FieldRatingValue } from '../../../../types/FieldMetadata'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useRegisterInputEvents.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useRegisterInputEvents.ts index ec4d6eb9947..ebc47f13220 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useRegisterInputEvents.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/hooks/useRegisterInputEvents.ts @@ -7,7 +7,7 @@ import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { useContext } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useRegisterInputEvents = ({ inputRef, diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/phonesUtils.ts b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/phonesUtils.ts index b9e5db95264..74a2e2a680e 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/phonesUtils.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/utils/phonesUtils.ts @@ -1,5 +1,5 @@ import { FieldPhonesValue } from '@/object-record/record-field/types/FieldMetadata'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const createPhonesFromFieldValue = (fieldValue: FieldPhonesValue) => { return !isDefined(fieldValue) diff --git a/packages/twenty-front/src/modules/object-record/record-field/utils/computeDraftValueFromFieldValue.ts b/packages/twenty-front/src/modules/object-record/record-field/utils/computeDraftValueFromFieldValue.ts index 4e5b407f2cd..ac37b470e08 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/utils/computeDraftValueFromFieldValue.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/utils/computeDraftValueFromFieldValue.ts @@ -12,7 +12,7 @@ import { isFieldRawJsonValue } from '@/object-record/record-field/types/guards/i import { isFieldRelation } from '@/object-record/record-field/types/guards/isFieldRelation'; import { computeEmptyDraftValue } from '@/object-record/record-field/utils/computeEmptyDraftValue'; import { isFieldValueEmpty } from '@/object-record/record-field/utils/isFieldValueEmpty'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { stripSimpleQuotesFromString } from '~/utils/string/stripSimpleQuotesFromString'; diff --git a/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueEmpty.ts b/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueEmpty.ts index e8e3ebe3fb8..b70f208d41e 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueEmpty.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueEmpty.ts @@ -34,7 +34,7 @@ import { isFieldSelectValue } from '@/object-record/record-field/types/guards/is import { isFieldText } from '@/object-record/record-field/types/guards/isFieldText'; import { isFieldTsVector } from '@/object-record/record-field/types/guards/isFieldTsVectorValue'; import { isFieldUuid } from '@/object-record/record-field/types/guards/isFieldUuid'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { stripSimpleQuotesFromString } from '~/utils/string/stripSimpleQuotesFromString'; const isValueEmpty = (value: unknown) => diff --git a/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueReadOnly.ts b/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueReadOnly.ts index 703be51be36..a0e04389034 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueReadOnly.ts +++ b/packages/twenty-front/src/modules/object-record/record-field/utils/isFieldValueReadOnly.ts @@ -2,7 +2,7 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi import { isWorkflowSubObjectMetadata } from '@/object-metadata/utils/isWorkflowSubObjectMetadata'; import { isFieldActor } from '@/object-record/record-field/types/guards/isFieldActor'; import { isFieldRichText } from '@/object-record/record-field/types/guards/isFieldRichText'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; type isFieldValueReadOnlyParams = { diff --git a/packages/twenty-front/src/modules/object-record/record-filter/hooks/useApplyRecordFilter.ts b/packages/twenty-front/src/modules/object-record/record-filter/hooks/useApplyRecordFilter.ts index ba82b14c57b..24650021f6e 100644 --- a/packages/twenty-front/src/modules/object-record/record-filter/hooks/useApplyRecordFilter.ts +++ b/packages/twenty-front/src/modules/object-record/record-filter/hooks/useApplyRecordFilter.ts @@ -4,7 +4,7 @@ import { RecordFilter } from '@/object-record/record-filter/types/RecordFilter'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { useUpsertCombinedViewFilters } from '@/views/hooks/useUpsertCombinedViewFilters'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useApplyRecordFilter = (componentInstanceId?: string) => { const { upsertCombinedViewFilter } = useUpsertCombinedViewFilters(); diff --git a/packages/twenty-front/src/modules/object-record/record-filter/utils/computeViewRecordGqlOperationFilter.ts b/packages/twenty-front/src/modules/object-record/record-filter/utils/computeViewRecordGqlOperationFilter.ts index 6a96749f8dc..c6b30384b7e 100644 --- a/packages/twenty-front/src/modules/object-record/record-filter/utils/computeViewRecordGqlOperationFilter.ts +++ b/packages/twenty-front/src/modules/object-record/record-filter/utils/computeViewRecordGqlOperationFilter.ts @@ -18,9 +18,9 @@ import { SelectFilter, StringFilter, } from '@/object-record/graphql/types/RecordGqlOperationFilter'; +import { isDefined } from 'twenty-shared'; import { Field } from '~/generated/graphql'; import { generateILikeFiltersForCompositeFields } from '~/utils/array/generateILikeFiltersForCompositeFields'; -import { isDefined } from '~/utils/isDefined'; import { convertGreaterThanRatingToArrayOfRatingValues, diff --git a/packages/twenty-front/src/modules/object-record/record-filter/utils/isRecordMatchingFilter.ts b/packages/twenty-front/src/modules/object-record/record-filter/utils/isRecordMatchingFilter.ts index 1124458b66e..9fe27d438a4 100644 --- a/packages/twenty-front/src/modules/object-record/record-filter/utils/isRecordMatchingFilter.ts +++ b/packages/twenty-front/src/modules/object-record/record-filter/utils/isRecordMatchingFilter.ts @@ -36,8 +36,8 @@ import { isMatchingRawJsonFilter } from '@/object-record/record-filter/utils/isM import { isMatchingSelectFilter } from '@/object-record/record-filter/utils/isMatchingSelectFilter'; import { isMatchingStringFilter } from '@/object-record/record-filter/utils/isMatchingStringFilter'; import { isMatchingUUIDFilter } from '@/object-record/record-filter/utils/isMatchingUUIDFilter'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { isEmptyObject } from '~/utils/isEmptyObject'; const isLeafFilter = ( diff --git a/packages/twenty-front/src/modules/object-record/record-group/components/RecordGroupMenuItemDraggable.tsx b/packages/twenty-front/src/modules/object-record/record-group/components/RecordGroupMenuItemDraggable.tsx index 3a5d668ad00..1278d40ca7f 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/components/RecordGroupMenuItemDraggable.tsx +++ b/packages/twenty-front/src/modules/object-record/record-group/components/RecordGroupMenuItemDraggable.tsx @@ -6,7 +6,7 @@ import { RecordGroupDefinitionType, } from '@/object-record/record-group/types/RecordGroupDefinition'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type RecordGroupMenuItemDraggableProps = { recordGroupId: string; diff --git a/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupActions.ts b/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupActions.ts index 9110c1cc775..f1b4ece96b3 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupActions.ts +++ b/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupActions.ts @@ -11,7 +11,8 @@ import { ViewType } from '@/views/types/ViewType'; import { useCallback, useContext, useMemo } from 'react'; import { useLocation } from 'react-router-dom'; import { useSetRecoilState } from 'recoil'; -import { IconEyeOff, IconSettings, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconEyeOff, IconSettings } from 'twenty-ui'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; type UseRecordGroupActionsParams = { diff --git a/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupFilter.ts b/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupFilter.ts index 27b182ed819..0a6d4a7b0a9 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupFilter.ts +++ b/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupFilter.ts @@ -1,7 +1,7 @@ import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { useCurrentRecordGroupDefinition } from '@/object-record/record-group/hooks/useCurrentRecordGroupDefinition'; import { useMemo } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useRecordGroupFilter = (fields: FieldMetadataItem[]) => { const currentRecordGroupDefinition = useCurrentRecordGroupDefinition(); diff --git a/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupReorder.ts b/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupReorder.ts index 93e1f05c73d..e7d12411811 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupReorder.ts +++ b/packages/twenty-front/src/modules/object-record/record-group/hooks/useRecordGroupReorder.ts @@ -10,9 +10,9 @@ import { useSaveCurrentViewGroups } from '@/views/hooks/useSaveCurrentViewGroups import { ViewType } from '@/views/types/ViewType'; import { mapRecordGroupDefinitionsToViewGroups } from '@/views/utils/mapRecordGroupDefinitionsToViewGroups'; import { useRecoilCallback } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { moveArrayItem } from '~/utils/array/moveArrayItem'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; type UseRecordGroupHandlersParams = { viewBarId: string; diff --git a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/availableRecordGroupIdsComponentSelector.ts b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/availableRecordGroupIdsComponentSelector.ts index e500f12345b..437a40f8724 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/availableRecordGroupIdsComponentSelector.ts +++ b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/availableRecordGroupIdsComponentSelector.ts @@ -8,7 +8,7 @@ import { recordGroupSortedInsert } from '@/object-record/record-group/utils/reco import { createComponentSelectorV2 } from '@/ui/utilities/state/component-state/utils/createComponentSelectorV2'; import { ViewComponentInstanceContext } from '@/views/states/contexts/ViewComponentInstanceContext'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const availableRecordGroupIdsComponentSelector = createComponentSelectorV2({ diff --git a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/hiddenRecordGroupIdsComponentSelector.ts b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/hiddenRecordGroupIdsComponentSelector.ts index 8974472496b..290c566ffa5 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/hiddenRecordGroupIdsComponentSelector.ts +++ b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/hiddenRecordGroupIdsComponentSelector.ts @@ -4,7 +4,7 @@ import { RecordGroupDefinition } from '@/object-record/record-group/types/Record import { createComponentSelectorV2 } from '@/ui/utilities/state/component-state/utils/createComponentSelectorV2'; import { ViewComponentInstanceContext } from '@/views/states/contexts/ViewComponentInstanceContext'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const hiddenRecordGroupIdsComponentSelector = createComponentSelectorV2< RecordGroupDefinition['id'][] diff --git a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/recordGroupDefinitionsComponentSelector.ts b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/recordGroupDefinitionsComponentSelector.ts index ce0e0432eab..b5dae8bc10c 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/recordGroupDefinitionsComponentSelector.ts +++ b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/recordGroupDefinitionsComponentSelector.ts @@ -4,7 +4,7 @@ import { RecordGroupDefinition } from '@/object-record/record-group/types/Record import { createComponentSelectorV2 } from '@/ui/utilities/state/component-state/utils/createComponentSelectorV2'; import { ViewComponentInstanceContext } from '@/views/states/contexts/ViewComponentInstanceContext'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const recordGroupDefinitionsComponentSelector = createComponentSelectorV2({ diff --git a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/visibleRecordGroupIdsComponentFamilySelector.ts b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/visibleRecordGroupIdsComponentFamilySelector.ts index 139e3806bac..76baff77f1f 100644 --- a/packages/twenty-front/src/modules/object-record/record-group/states/selectors/visibleRecordGroupIdsComponentFamilySelector.ts +++ b/packages/twenty-front/src/modules/object-record/record-group/states/selectors/visibleRecordGroupIdsComponentFamilySelector.ts @@ -10,7 +10,7 @@ import { createComponentFamilySelectorV2 } from '@/ui/utilities/state/component- import { ViewComponentInstanceContext } from '@/views/states/contexts/ViewComponentInstanceContext'; import { ViewType } from '@/views/types/ViewType'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const visibleRecordGroupIdsComponentFamilySelector = createComponentFamilySelectorV2({ diff --git a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexContainer.tsx b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexContainer.tsx index 0ebff1827a5..b3cec7e8f6e 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexContainer.tsx +++ b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexContainer.tsx @@ -1,6 +1,6 @@ import styled from '@emotion/styled'; import { useRecoilCallback, useRecoilState, useSetRecoilState } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { useColumnDefinitionsFromFieldMetadata } from '@/object-metadata/hooks/useColumnDefinitionsFromFieldMetadata'; import { ObjectOptionsDropdown } from '@/object-record/object-options-dropdown/components/ObjectOptionsDropdown'; diff --git a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageHeader.tsx b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageHeader.tsx index 229f69b52b6..614b6e577df 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageHeader.tsx +++ b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageHeader.tsx @@ -12,8 +12,8 @@ import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/ import { ViewType } from '@/views/types/ViewType'; import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { useRecoilValue } from 'recoil'; -import { capitalize } from 'twenty-shared'; -import { isDefined, useIcons } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; +import { useIcons } from 'twenty-ui'; import { FeatureFlagKey } from '~/generated/graphql'; export const RecordIndexPageHeader = () => { diff --git a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageKanbanAddMenuItem.tsx b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageKanbanAddMenuItem.tsx index c209a6b0ee3..ad4de00f246 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageKanbanAddMenuItem.tsx +++ b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexPageKanbanAddMenuItem.tsx @@ -2,8 +2,8 @@ import { recordGroupDefinitionFamilyState } from '@/object-record/record-group/s import { RecordGroupDefinitionType } from '@/object-record/record-group/types/RecordGroupDefinition'; import styled from '@emotion/styled'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { MenuItem, Tag } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; const StyledMenuItem = styled(MenuItem)` width: calc(100% - 2 * var(--horizontal-padding)); diff --git a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexTableContainerEffect.tsx b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexTableContainerEffect.tsx index 040d6ae35a6..851318d33ba 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexTableContainerEffect.tsx +++ b/packages/twenty-front/src/modules/object-record/record-index/components/RecordIndexTableContainerEffect.tsx @@ -12,7 +12,7 @@ import { convertAggregateOperationToExtendedAggregateOperation } from '@/object- import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { ViewField } from '@/views/types/ViewField'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RecordIndexTableContainerEffect = () => { const { recordIndexId, objectNameSingular } = useRecordIndexContextOrThrow(); diff --git a/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportProcessRecordsForCSV.ts b/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportProcessRecordsForCSV.ts index 2476ccc059c..9dd14c5e52d 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportProcessRecordsForCSV.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportProcessRecordsForCSV.ts @@ -1,7 +1,7 @@ import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; import { FieldCurrencyValue } from '@/object-record/record-field/types/FieldMetadata'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { convertCurrencyMicrosToCurrencyAmount } from '~/utils/convertCurrencyToCurrencyMicros'; diff --git a/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportRecords.ts b/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportRecords.ts index 247bdd14c24..6a48cf59a5a 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportRecords.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/export/hooks/useExportRecords.ts @@ -11,9 +11,9 @@ import { import { ColumnDefinition } from '@/object-record/record-table/types/ColumnDefinition'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { saveAs } from 'file-saver'; +import { isDefined } from 'twenty-shared'; import { RelationDefinitionType } from '~/generated-metadata/graphql'; import { FieldMetadataType } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; type GenerateExportOptions = { diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts index bcc7d25be2a..00c4b2cd382 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnFilter.ts @@ -17,7 +17,7 @@ import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { useUpsertCombinedViewFilters } from '@/views/hooks/useUpsertCombinedViewFilters'; import { availableFilterDefinitionsComponentState } from '@/views/states/availableFilterDefinitionsComponentState'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type UseHandleToggleColumnFilterProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnSort.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnSort.ts index b285fe34504..5aefe00ef18 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnSort.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleColumnSort.ts @@ -4,7 +4,7 @@ import { useColumnDefinitionsFromFieldMetadata } from '@/object-metadata/hooks/u import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; import { Sort } from '@/object-record/object-sort-dropdown/types/Sort'; import { useUpsertCombinedViewSorts } from '@/views/hooks/useUpsertCombinedViewSorts'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type UseHandleToggleColumnSortProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleTrashColumnFilter.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleTrashColumnFilter.ts index f3471ea3ae1..523fd072f1f 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleTrashColumnFilter.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useHandleToggleTrashColumnFilter.ts @@ -11,7 +11,7 @@ import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/componen import { useUpsertCombinedViewFilters } from '@/views/hooks/useUpsertCombinedViewFilters'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type UseHandleToggleTrashColumnFilterProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts index ff60d05d014..e105cca850a 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexBoardColumn.ts @@ -13,7 +13,7 @@ import { recordIndexFiltersState } from '@/object-record/record-index/states/rec import { recordIndexSortsState } from '@/object-record/record-index/states/recordIndexSortsState'; import { recordIndexViewFilterGroupsState } from '@/object-record/record-index/states/recordIndexViewFilterGroupsState'; import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type UseLoadRecordIndexBoardProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordBoardRecordGqlFields.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordBoardRecordGqlFields.ts index c192de2083e..6d3a4809e93 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordBoardRecordGqlFields.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordBoardRecordGqlFields.ts @@ -7,7 +7,7 @@ import { generateDepthOneRecordGqlFields } from '@/object-record/graphql/utils/g import { recordBoardVisibleFieldDefinitionsComponentSelector } from '@/object-record/record-board/states/selectors/recordBoardVisibleFieldDefinitionsComponentSelector'; import { recordGroupFieldMetadataComponentState } from '@/object-record/record-group/states/recordGroupFieldMetadataComponentState'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useRecordBoardRecordGqlFields = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts index a4588c6d5f9..4604b54a20e 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useRecordTableRecordGqlFields.ts @@ -5,7 +5,7 @@ import { getObjectMetadataIdentifierFields } from '@/object-metadata/utils/getOb import { generateDepthOneRecordGqlFields } from '@/object-record/graphql/utils/generateDepthOneRecordGqlFields'; import { visibleTableColumnsComponentSelector } from '@/object-record/record-table/states/selectors/visibleTableColumnsComponentSelector'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useRecordTableRecordGqlFields = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useSetRecordIndexEntityCount.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useSetRecordIndexEntityCount.ts index 2e589db7a4e..1abdeb8a96d 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useSetRecordIndexEntityCount.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useSetRecordIndexEntityCount.ts @@ -2,7 +2,7 @@ import { recordIndexEntityCountByGroupComponentFamilyState } from '@/object-reco import { recordIndexEntityCountNoGroupComponentFamilyState } from '@/object-record/record-index/states/recordIndexEntityCountNoGroupComponentFamilyState'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useSetRecordIndexEntityCount = (viewBarComponentId?: string) => { const recordIndexEntityCountNoGroupFamilyState = diff --git a/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts b/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts index 4a4600d6741..f01084d45b1 100644 --- a/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts +++ b/packages/twenty-front/src/modules/object-record/record-inline-cell/hooks/useInlineCell.ts @@ -4,7 +4,7 @@ import { useRecoilState } from 'recoil'; import { FieldContext } from '@/object-record/record-field/contexts/FieldContext'; import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { useInitDraftValueV2 } from '@/object-record/record-field/hooks/useInitDraftValueV2'; import { getDropdownFocusIdForRecordField } from '@/object-record/utils/getDropdownFocusIdForRecordField'; diff --git a/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx b/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx index 37f26cc00a1..66baa1fb637 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx +++ b/packages/twenty-front/src/modules/object-record/record-show/components/FieldsCard.tsx @@ -15,8 +15,8 @@ import { useRecordShowContainerData } from '@/object-record/record-show/hooks/us import { RecordDetailDuplicatesSection } from '@/object-record/record-show/record-detail-section/components/RecordDetailDuplicatesSection'; import { RecordDetailRelationSection } from '@/object-record/record-show/record-detail-section/components/RecordDetailRelationSection'; import { isFieldCellSupported } from '@/object-record/utils/isFieldCellSupported'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; type FieldsCardProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx b/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx index 189e5147019..e9b4a5f8700 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx +++ b/packages/twenty-front/src/modules/object-record/record-show/components/SummaryCard.tsx @@ -10,8 +10,8 @@ import { useRecordShowContainerData } from '@/object-record/record-show/hooks/us import { ShowPageSummaryCard } from '@/ui/layout/show-page/components/ShowPageSummaryCard'; import { ShowPageSummaryCardSkeletonLoader } from '@/ui/layout/show-page/components/ShowPageSummaryCardSkeletonLoader'; import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; type SummaryCardProps = { objectNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPage.ts b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPage.ts index c6753a5728f..a8759cea39c 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPage.ts +++ b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPage.ts @@ -12,9 +12,8 @@ import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadat import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord'; import { buildFindOneRecordForShowPageOperationSignature } from '@/object-record/record-show/graphql/operations/factories/findOneRecordForShowPageOperationSignatureFactory'; import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; -import { capitalize } from 'twenty-shared'; +import { capitalize, isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; export const useRecordShowPage = ( propsObjectNameSingular: string, diff --git a/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts index 46285e38b2a..1f3f149ddbb 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts +++ b/packages/twenty-front/src/modules/object-record/record-show/hooks/useRecordShowPagePagination.ts @@ -9,8 +9,7 @@ import { lastShowPageRecordIdState } from '@/object-record/record-field/states/l import { useRecordIdsFromFindManyCacheRootQuery } from '@/object-record/record-show/hooks/useRecordIdsFromFindManyCacheRootQuery'; import { AppPath } from '@/types/AppPath'; import { useQueryVariablesFromActiveFieldsOfViewOrDefaultView } from '@/views/hooks/useQueryVariablesFromActiveFieldsOfViewOrDefaultView'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; import { useNavigateApp } from '~/hooks/useNavigateApp'; export const useRecordShowPagePagination = ( diff --git a/packages/twenty-front/src/modules/object-record/record-show/record-detail-section/components/RecordDetailRelationRecordsListItemEffect.tsx b/packages/twenty-front/src/modules/object-record/record-show/record-detail-section/components/RecordDetailRelationRecordsListItemEffect.tsx index 0d7451bd5ce..5aba61c524a 100644 --- a/packages/twenty-front/src/modules/object-record/record-show/record-detail-section/components/RecordDetailRelationRecordsListItemEffect.tsx +++ b/packages/twenty-front/src/modules/object-record/record-show/record-detail-section/components/RecordDetailRelationRecordsListItemEffect.tsx @@ -4,7 +4,7 @@ import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord'; import { FieldContext } from '@/object-record/record-field/contexts/FieldContext'; import { FieldRelationMetadata } from '@/object-record/record-field/types/FieldMetadata'; import { useUpsertRecordsInStore } from '@/object-record/record-store/hooks/useUpsertRecordsInStore'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type RecordDetailRelationRecordsListItemEffectProps = { relationRecordId: string; diff --git a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableRecordGroupRows.tsx b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableRecordGroupRows.tsx index 77547999e72..7f16fd05d6a 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableRecordGroupRows.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/components/RecordTableRecordGroupRows.tsx @@ -10,7 +10,7 @@ import { isRecordGroupTableSectionToggledComponentState } from '@/object-record/ import { useRecoilComponentFamilyValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyValueV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useMemo } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const RecordTableRecordGroupRows = () => { const currentRecordGroupId = useCurrentRecordGroupId(); diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useSetRecordTableData.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useSetRecordTableData.ts index 3cac0bca295..12573f3dc31 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useSetRecordTableData.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useSetRecordTableData.ts @@ -8,8 +8,8 @@ import { isRowSelectedComponentFamilyState } from '@/object-record/record-table/ import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; type useSetRecordTableDataProps = { recordTableId?: string; diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordInGroup.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordInGroup.ts index 47ae746da87..6175877e195 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordInGroup.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordInGroup.ts @@ -12,7 +12,7 @@ import { getScopeIdFromComponentId } from '@/ui/utilities/recoil-scope/utils/get import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { extractComponentSelector } from '@/ui/utilities/state/component-state/utils/extractComponentSelector'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useUpsertTableRecordInGroup = (recordGroupId: string) => { const { objectMetadataItem, objectNameSingular } = diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordNoGroup.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordNoGroup.ts index c78a47d1ede..68b682cc3ca 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordNoGroup.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/internal/useUpsertTableRecordNoGroup.ts @@ -9,7 +9,7 @@ import { getScopeIdFromComponentId } from '@/ui/utilities/recoil-scope/utils/get import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { extractComponentSelector } from '@/ui/utilities/state/component-state/utils/extractComponentSelector'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useUpsertTableRecordNoGroup = () => { const { objectMetadataItem, objectNameSingular, recordTableId } = diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/useAggregateRecordsForHeader.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/useAggregateRecordsForHeader.ts index 60a92cc4c7f..b85b14257df 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/hooks/useAggregateRecordsForHeader.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/useAggregateRecordsForHeader.ts @@ -10,7 +10,7 @@ import { recordIndexViewFilterGroupsState } from '@/object-record/record-index/s import { UserContext } from '@/users/contexts/UserContext'; import { useContext } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type UseAggregateRecordsProps = { objectMetadataItem: ObjectMetadataItem; diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecordInGroup.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecordInGroup.ts index 8e2f0236474..05b675616a7 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecordInGroup.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecordInGroup.ts @@ -7,8 +7,8 @@ import { useSetActiveDropdownFocusIdAndMemorizePrevious } from '@/ui/layout/drop import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { useRecoilCallback } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { v4 } from 'uuid'; -import { isDefined } from '~/utils/isDefined'; export const useCreateNewTableRecordInGroup = () => { const { recordIndexId, objectMetadataItem } = useRecordIndexContextOrThrow(); diff --git a/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecords.ts b/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecords.ts index 189385d736a..5d9c5cb0c2f 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecords.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/hooks/useCreateNewTableRecords.ts @@ -15,10 +15,10 @@ import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/componen import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2'; import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { useRecoilCallback } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { v4 } from 'uuid'; import { FeatureFlagKey } from '~/generated/graphql'; import { useNavigateApp } from '~/hooks/useNavigateApp'; -import { isDefined } from '~/utils/isDefined'; export const useCreateNewTableRecord = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyDragDropContextProvider.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyDragDropContextProvider.tsx index dc74cff107d..f59a3902382 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyDragDropContextProvider.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyDragDropContextProvider.tsx @@ -11,7 +11,7 @@ import { isRemoveSortingModalOpenState } from '@/object-record/record-table/stat import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const RecordTableBodyDragDropContextProvider = ({ children, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyRecordGroupDragDropContextProvider.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyRecordGroupDragDropContextProvider.tsx index 55af955e504..4054c2825e4 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyRecordGroupDragDropContextProvider.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-body/components/RecordTableBodyRecordGroupDragDropContextProvider.tsx @@ -12,7 +12,7 @@ import { useRecordTableContextOrThrow } from '@/object-record/record-table/conte import { isRemoveSortingModalOpenState } from '@/object-record/record-table/states/isRemoveSortingModalOpenState'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { getSnapshotValue } from '@/ui/utilities/state/utils/getSnapshotValue'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const RecordTableBodyRecordGroupDragDropContextProvider = ({ children, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellSoftFocusMode.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellSoftFocusMode.tsx index 20c8630e67a..ae38eabbcaa 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellSoftFocusMode.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/components/RecordTableCellSoftFocusMode.tsx @@ -15,7 +15,7 @@ import { useOpenRecordTableCellFromCell } from '@/object-record/record-table/rec import { isSoftFocusUsingMouseState } from '@/object-record/record-table/states/isSoftFocusUsingMouseState'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { isNonTextWritingKey } from '@/ui/utilities/hotkey/utils/isNonTextWritingKey'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { TableHotkeyScope } from '../../types/TableHotkeyScope'; diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/useOpenRecordTableCellV2.ts b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/useOpenRecordTableCellV2.ts index fae00fd95a8..bf1efc24c8c 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/useOpenRecordTableCellV2.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/hooks/useOpenRecordTableCellV2.ts @@ -18,7 +18,7 @@ import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope'; import { useClickOutsideListener } from '@/ui/utilities/pointer-event/hooks/useClickOutsideListener'; import { getSnapshotValue } from '@/ui/utilities/state/utils/getSnapshotValue'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { useRecordIndexContextOrThrow } from '@/object-record/record-index/contexts/RecordIndexContext'; import { RECORD_TABLE_CLICK_OUTSIDE_LISTENER_ID } from '@/object-record/record-table/constants/RecordTableClickOutsideListenerId'; diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx index 6e852d10c6a..cb62db6b656 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterAggregateOperationMenuItems.tsx @@ -4,7 +4,8 @@ import { useViewFieldAggregateOperation } from '@/object-record/record-table/rec import { ExtendedAggregateOperations } from '@/object-record/record-table/types/ExtendedAggregateOperations'; import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { ReactNode, useContext } from 'react'; -import { IconCheck, isDefined, MenuItem } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconCheck, MenuItem } from 'twenty-ui'; export const RecordTableColumnAggregateFooterAggregateOperationMenuItems = ({ aggregateOperations, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx index 2dfd0aa8d56..e1826d763ee 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterMenuContent.tsx @@ -11,8 +11,8 @@ import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { t } from '@lingui/core/macro'; import { useContext, useMemo } from 'react'; import { Key } from 'ts-key-enum'; -import { isFieldMetadataDateKind } from 'twenty-shared'; -import { IconCheck, isDefined, MenuItem } from 'twenty-ui'; +import { isDefined, isFieldMetadataDateKind } from 'twenty-shared'; +import { IconCheck, MenuItem } from 'twenty-ui'; import { FieldMetadataType } from '~/generated-metadata/graphql'; export const RecordTableColumnAggregateFooterMenuContent = () => { diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValue.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValue.tsx index df862c13227..7a284b01693 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValue.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/components/RecordTableColumnAggregateFooterValue.tsx @@ -1,7 +1,8 @@ import { useAggregateRecordsForRecordTableColumnFooter } from '@/object-record/record-table/record-table-footer/hooks/useAggregateRecordsForRecordTableColumnFooter'; import styled from '@emotion/styled'; import { Trans } from '@lingui/react/macro'; -import { isDefined, OverflowingTextWithTooltip } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { OverflowingTextWithTooltip } from 'twenty-ui'; const StyledText = styled.span` overflow: hidden; diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/hooks/useAggregateRecordsForRecordTableColumnFooter.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/hooks/useAggregateRecordsForRecordTableColumnFooter.tsx index 1949bfbda8e..0e101cc95b3 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/hooks/useAggregateRecordsForRecordTableColumnFooter.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/hooks/useAggregateRecordsForRecordTableColumnFooter.tsx @@ -11,7 +11,7 @@ import { viewFieldAggregateOperationState } from '@/object-record/record-table/r import { UserContext } from '@/users/contexts/UserContext'; import { useContext } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useAggregateRecordsForRecordTableColumnFooter = ( fieldMetadataId: string, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/states/hasAggregateOperationForViewFieldFamilySelector.ts b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/states/hasAggregateOperationForViewFieldFamilySelector.ts index 4b78840466b..5143256f9c1 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/states/hasAggregateOperationForViewFieldFamilySelector.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/states/hasAggregateOperationForViewFieldFamilySelector.ts @@ -1,6 +1,6 @@ import { viewFieldAggregateOperationState } from '@/object-record/record-table/record-table-footer/states/viewFieldAggregateOperationState'; import { selectorFamily } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const hasAggregateOperationForViewFieldFamilySelector = selectorFamily< boolean, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/utils/getAvailableAggregateOperationsForFieldMetadataType.ts b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/utils/getAvailableAggregateOperationsForFieldMetadataType.ts index cf44d0de559..50c225bf674 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/utils/getAvailableAggregateOperationsForFieldMetadataType.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-footer/utils/getAvailableAggregateOperationsForFieldMetadataType.ts @@ -3,8 +3,8 @@ import { FIELD_TYPES_AVAILABLE_FOR_NON_STANDARD_AGGREGATE_OPERATION } from '@/ob import { ExtendedAggregateOperations } from '@/object-record/record-table/types/ExtendedAggregateOperations'; import { AggregateOperationsOmittingStandardOperations } from '@/object-record/types/AggregateOperationsOmittingStandardOperations'; import { isFieldTypeValidForAggregateOperation } from '@/object-record/utils/isFieldTypeValidForAggregateOperation'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; export const getAvailableAggregateOperationsForFieldMetadataType = ({ fieldMetadataType, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-section/components/RecordTableRecordGroupSection.tsx b/packages/twenty-front/src/modules/object-record/record-table/record-table-section/components/RecordTableRecordGroupSection.tsx index 1d192d69030..bd5620f33bc 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-section/components/RecordTableRecordGroupSection.tsx +++ b/packages/twenty-front/src/modules/object-record/record-table/record-table-section/components/RecordTableRecordGroupSection.tsx @@ -1,12 +1,6 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { useCallback } from 'react'; -import { - AnimatedLightIconButton, - IconChevronDown, - isDefined, - Tag, -} from 'twenty-ui'; import { RecordBoardColumnHeaderAggregateDropdown } from '@/object-record/record-board/record-board-column/components/RecordBoardColumnHeaderAggregateDropdown'; import { useCurrentRecordGroupId } from '@/object-record/record-group/hooks/useCurrentRecordGroupId'; @@ -21,6 +15,8 @@ import { visibleTableColumnsComponentSelector } from '@/object-record/record-tab import { useRecoilComponentFamilyStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentFamilyStateV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; +import { AnimatedLightIconButton, IconChevronDown, Tag } from 'twenty-ui'; const StyledTrContainer = styled.tr` cursor: pointer; diff --git a/packages/twenty-front/src/modules/object-record/record-table/states/selectors/hasPendingRecordComponentSelector.ts b/packages/twenty-front/src/modules/object-record/record-table/states/selectors/hasPendingRecordComponentSelector.ts index 377e75f322c..11593254b0d 100644 --- a/packages/twenty-front/src/modules/object-record/record-table/states/selectors/hasPendingRecordComponentSelector.ts +++ b/packages/twenty-front/src/modules/object-record/record-table/states/selectors/hasPendingRecordComponentSelector.ts @@ -4,7 +4,7 @@ import { RecordTableComponentInstanceContext } from '@/object-record/record-tabl import { recordTablePendingRecordIdByGroupComponentFamilyState } from '@/object-record/record-table/states/recordTablePendingRecordIdByGroupComponentFamilyState'; import { recordTablePendingRecordIdComponentState } from '@/object-record/record-table/states/recordTablePendingRecordIdComponentState'; import { createComponentSelectorV2 } from '@/ui/utilities/state/component-state/utils/createComponentSelectorV2'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const hasPendingRecordComponentSelector = createComponentSelectorV2({ key: 'hasPendingRecordComponentSelector', diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/components/MultiRecordSelect.tsx b/packages/twenty-front/src/modules/object-record/relation-picker/components/MultiRecordSelect.tsx index f5348821cd0..2a8727d3db4 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/components/MultiRecordSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/relation-picker/components/MultiRecordSelect.tsx @@ -24,7 +24,8 @@ import { Placement } from '@floating-ui/react'; import { useCallback, useEffect, useRef } from 'react'; import { useRecoilValue } from 'recoil'; import { Key } from 'ts-key-enum'; -import { IconPlus, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconPlus } from 'twenty-ui'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export const StyledSelectableItem = styled(SelectableItem)` diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/components/MultipleObjectRecordSelectItem.tsx b/packages/twenty-front/src/modules/object-record/relation-picker/components/MultipleObjectRecordSelectItem.tsx index ce8d472bd28..212b45651e9 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/components/MultipleObjectRecordSelectItem.tsx +++ b/packages/twenty-front/src/modules/object-record/relation-picker/components/MultipleObjectRecordSelectItem.tsx @@ -8,7 +8,7 @@ import { RecordPickerComponentInstanceContext } from '@/object-record/relation-p import { SelectableItem } from '@/ui/layout/selectable-list/components/SelectableItem'; import { useSelectableList } from '@/ui/layout/selectable-list/hooks/useSelectableList'; import { useAvailableComponentInstanceIdOrThrow } from '@/ui/utilities/state/component-state/hooks/useAvailableComponentInstanceIdOrThrow'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const StyledSelectableItem = styled(SelectableItem)` height: 100%; diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelect.tsx b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelect.tsx index f18bdc769e8..e2f4ded6e2b 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelect.tsx +++ b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelect.tsx @@ -6,7 +6,7 @@ import { } from '@/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch'; import { DropdownMenu } from '@/ui/layout/dropdown/components/DropdownMenu'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export type SingleRecordSelectProps = { width?: number; diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItems.tsx b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItems.tsx index 77782e5507f..5217b7a3f41 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItems.tsx +++ b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItems.tsx @@ -11,7 +11,7 @@ import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/Drop import { SelectableList } from '@/ui/layout/selectable-list/components/SelectableList'; import { useSelectableList } from '@/ui/layout/selectable-list/hooks/useSelectableList'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { RecordForSelect } from '../types/RecordForSelect'; import { RelationPickerHotkeyScope } from '../types/RelationPickerHotkeyScope'; diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx index 1b9e1c3787f..803210bf524 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx +++ b/packages/twenty-front/src/modules/object-record/relation-picker/components/SingleRecordSelectMenuItemsWithSearch.tsx @@ -11,8 +11,8 @@ import { DropdownMenuSearchInput } from '@/ui/layout/dropdown/components/Dropdow import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownMenuSeparator'; import { useAvailableComponentInstanceIdOrThrow } from '@/ui/utilities/state/component-state/hooks/useAvailableComponentInstanceIdOrThrow'; import { Placement } from '@floating-ui/react'; +import { isDefined } from 'twenty-shared'; import { IconPlus } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export type SingleRecordSelectMenuItemsWithSearchProps = { diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useAddNewRecordAndOpenRightDrawer.ts b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useAddNewRecordAndOpenRightDrawer.ts index e1ee1ac3d2e..ea3dd0aa28f 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useAddNewRecordAndOpenRightDrawer.ts +++ b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useAddNewRecordAndOpenRightDrawer.ts @@ -10,11 +10,11 @@ import { viewableRecordIdState } from '@/object-record/record-right-drawer/state import { viewableRecordNameSingularState } from '@/object-record/record-right-drawer/states/viewableRecordNameSingularState'; import { useRightDrawer } from '@/ui/layout/right-drawer/hooks/useRightDrawer'; import { RightDrawerPages } from '@/ui/layout/right-drawer/types/RightDrawerPages'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType, RelationDefinitionType, } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; type RecordDetailRelationSectionProps = { relationObjectMetadataNameSingular: string; diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useLimitPerMetadataItem.ts b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useLimitPerMetadataItem.ts index 29482fb1fab..cca9e525e2e 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useLimitPerMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useLimitPerMetadataItem.ts @@ -1,7 +1,6 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { DEFAULT_SEARCH_REQUEST_LIMIT } from '@/object-record/constants/DefaultSearchRequestLimit'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; export const useLimitPerMetadataItem = ({ objectMetadataItems, diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray.ts b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray.ts index ebac778c44f..a9087624fe0 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray.ts +++ b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray.ts @@ -6,7 +6,7 @@ import { getObjectRecordIdentifier } from '@/object-metadata/utils/getObjectReco import { RecordGqlConnection } from '@/object-record/graphql/types/RecordGqlConnection'; import { formatMultiObjectRecordSearchResults } from '@/object-record/relation-picker/utils/formatMultiObjectRecordSearchResults'; import { ObjectRecordForSelect } from '@/object-record/types/ObjectRecordForSelect'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export type MultiObjectRecordQueryResult = { [namePlural: string]: RecordGqlConnection; diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearch.ts b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearch.ts index 07d5e0d9cda..6b862a8e2d3 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearch.ts +++ b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearch.ts @@ -8,7 +8,7 @@ import { useGenerateCombinedSearchRecordsQuery } from '@/object-record/multiple- import { useLimitPerMetadataItem } from '@/object-record/relation-picker/hooks/useLimitPerMetadataItem'; import { MultiObjectRecordQueryResult } from '@/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray'; import { isObjectMetadataItemSearchableInCombinedRequest } from '@/object-record/utils/isObjectMetadataItemSearchableInCombinedRequest'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useMultiObjectSearch = ({ searchFilterValue, diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchQueryResultFormattedAsObjectRecordsMap.ts b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchQueryResultFormattedAsObjectRecordsMap.ts index 5945af71d39..2ab5ae56568 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchQueryResultFormattedAsObjectRecordsMap.ts +++ b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchQueryResultFormattedAsObjectRecordsMap.ts @@ -6,7 +6,7 @@ import { getObjectRecordIdentifier } from '@/object-metadata/utils/getObjectReco import { MultiObjectRecordQueryResult } from '@/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray'; import { formatMultiObjectRecordSearchResults } from '@/object-record/relation-picker/utils/formatMultiObjectRecordSearchResults'; import { ObjectRecordForSelect } from '@/object-record/types/ObjectRecordForSelect'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useMultiObjectSearchQueryResultFormattedAsObjectRecordsMap = ({ multiObjectRecordsQueryResult, diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchSelectedItemsQuery.ts b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchSelectedItemsQuery.ts index 372109ef6a1..34c2be76130 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchSelectedItemsQuery.ts +++ b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useMultiObjectSearchSelectedItemsQuery.ts @@ -11,8 +11,7 @@ import { } from '@/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray'; import { useOrderByFieldPerMetadataItem } from '@/object-record/relation-picker/hooks/useOrderByFieldPerMetadataItem'; import { SelectedObjectRecordId } from '@/object-record/types/SelectedObjectRecordId'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; export const EMPTY_QUERY = gql` query Empty { diff --git a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useOrderByFieldPerMetadataItem.ts b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useOrderByFieldPerMetadataItem.ts index 1fb2a394884..dbec589c094 100644 --- a/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useOrderByFieldPerMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-record/relation-picker/hooks/useOrderByFieldPerMetadataItem.ts @@ -1,7 +1,6 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { getOrderByFieldForObjectMetadataItem } from '@/object-metadata/utils/getObjectOrderByField'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; export const useOrderByFieldPerMetadataItem = ({ objectMetadataItems, diff --git a/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/buildRecordFromImportedStructuredRow.ts b/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/buildRecordFromImportedStructuredRow.ts index b4496199ca7..fe2e1246c4f 100644 --- a/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/buildRecordFromImportedStructuredRow.ts +++ b/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/buildRecordFromImportedStructuredRow.ts @@ -8,7 +8,7 @@ import { import { COMPOSITE_FIELD_IMPORT_LABELS } from '@/object-record/spreadsheet-import/constants/CompositeFieldImportLabels'; import { ImportedStructuredRow } from '@/spreadsheet-import/types'; import { isNonEmptyString } from '@sniptt/guards'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { z } from 'zod'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { castToString } from '~/utils/castToString'; diff --git a/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/getSpreadSheetFieldValidationDefinitions.ts b/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/getSpreadSheetFieldValidationDefinitions.ts index af0a9a0ca8c..3907ed8f7c5 100644 --- a/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/getSpreadSheetFieldValidationDefinitions.ts +++ b/packages/twenty-front/src/modules/object-record/spreadsheet-import/utils/getSpreadSheetFieldValidationDefinitions.ts @@ -1,5 +1,5 @@ import { FieldValidationDefinition } from '@/spreadsheet-import/types'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { isValidUuid } from '~/utils/isValidUuid'; import { absoluteUrlSchema } from '~/utils/validation-schemas/absoluteUrlSchema'; diff --git a/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts b/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts index a553c3f2e18..9e6f0dea765 100644 --- a/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts +++ b/packages/twenty-front/src/modules/object-record/utils/computeOptimisticRecordFromInput.ts @@ -9,9 +9,9 @@ import { isFieldRelation } from '@/object-record/record-field/types/guards/isFie import { isFieldUuid } from '@/object-record/record-field/types/guards/isFieldUuid'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { getForeignKeyNameFromRelationFieldName } from '@/object-record/utils/getForeignKeyNameFromRelationFieldName'; +import { isDefined } from 'twenty-shared'; import { RelationDefinitionType } from '~/generated-metadata/graphql'; import { FieldMetadataType } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; type ComputeOptimisticCacheRecordInputArgs = { objectMetadataItem: ObjectMetadataItem; diff --git a/packages/twenty-front/src/modules/object-record/utils/getAggregateQueryName.ts b/packages/twenty-front/src/modules/object-record/utils/getAggregateQueryName.ts index cdecc42adcc..298239ff9ae 100644 --- a/packages/twenty-front/src/modules/object-record/utils/getAggregateQueryName.ts +++ b/packages/twenty-front/src/modules/object-record/utils/getAggregateQueryName.ts @@ -1,5 +1,4 @@ -import { capitalize } from 'twenty-shared'; -import { isDefined } from '~/utils/isDefined'; +import { capitalize, isDefined } from 'twenty-shared'; export const getAggregateQueryName = ( objectMetadataNamePlural: string, diff --git a/packages/twenty-front/src/modules/object-record/utils/getAvailableFieldsIdsForAggregationFromObjectFields.ts b/packages/twenty-front/src/modules/object-record/utils/getAvailableFieldsIdsForAggregationFromObjectFields.ts index 91b6891347b..68b7ebb3fcd 100644 --- a/packages/twenty-front/src/modules/object-record/utils/getAvailableFieldsIdsForAggregationFromObjectFields.ts +++ b/packages/twenty-front/src/modules/object-record/utils/getAvailableFieldsIdsForAggregationFromObjectFields.ts @@ -3,7 +3,7 @@ import { ExtendedAggregateOperations } from '@/object-record/record-table/types/ import { AvailableFieldsForAggregateOperation } from '@/object-record/types/AvailableFieldsForAggregateOperation'; import { getAvailableAggregationsFromObjectFields } from '@/object-record/utils/getAvailableAggregationsFromObjectFields'; import { initializeAvailableFieldsForAggregateOperationMap } from '@/object-record/utils/initializeAvailableFieldsForAggregateOperationMap'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getAvailableFieldsIdsForAggregationFromObjectFields = ( fields: FieldMetadataItem[], diff --git a/packages/twenty-front/src/modules/object-record/utils/getRecordChipGenerators.ts b/packages/twenty-front/src/modules/object-record/utils/getRecordChipGenerators.ts index 650a4825dcc..9bcb8adf565 100644 --- a/packages/twenty-front/src/modules/object-record/utils/getRecordChipGenerators.ts +++ b/packages/twenty-front/src/modules/object-record/utils/getRecordChipGenerators.ts @@ -11,8 +11,8 @@ import { isLabelIdentifierField } from '@/object-metadata/utils/isLabelIdentifie import { isFieldIdentifierDisplay } from '@/object-record/record-field/meta-types/display/utils/isFieldIdentifierDisplay'; import { RecordChipData } from '@/object-record/record-field/types/RecordChipData'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; export const getRecordChipGenerators = ( objectMetadataItems: ObjectMetadataItem[], diff --git a/packages/twenty-front/src/modules/object-record/utils/makeAndFilterVariables.ts b/packages/twenty-front/src/modules/object-record/utils/makeAndFilterVariables.ts index 1f5ae29502f..bf20cefc486 100644 --- a/packages/twenty-front/src/modules/object-record/utils/makeAndFilterVariables.ts +++ b/packages/twenty-front/src/modules/object-record/utils/makeAndFilterVariables.ts @@ -1,5 +1,5 @@ import { RecordGqlOperationFilter } from '@/object-record/graphql/types/RecordGqlOperationFilter'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const makeAndFilterVariables = ( filters: (RecordGqlOperationFilter | undefined)[], diff --git a/packages/twenty-front/src/modules/object-record/utils/makeOrFilterVariables.ts b/packages/twenty-front/src/modules/object-record/utils/makeOrFilterVariables.ts index ed07e891c76..e466cccffe8 100644 --- a/packages/twenty-front/src/modules/object-record/utils/makeOrFilterVariables.ts +++ b/packages/twenty-front/src/modules/object-record/utils/makeOrFilterVariables.ts @@ -1,5 +1,5 @@ import { RecordGqlOperationFilter } from '@/object-record/graphql/types/RecordGqlOperationFilter'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const makeOrFilterVariables = ( filters: (RecordGqlOperationFilter | undefined)[], diff --git a/packages/twenty-front/src/modules/object-record/utils/prefillRecord.ts b/packages/twenty-front/src/modules/object-record/utils/prefillRecord.ts index c27f5042f61..a71b4ae11c9 100644 --- a/packages/twenty-front/src/modules/object-record/utils/prefillRecord.ts +++ b/packages/twenty-front/src/modules/object-record/utils/prefillRecord.ts @@ -4,8 +4,8 @@ import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { generateDefaultFieldValue } from '@/object-record/utils/generateDefaultFieldValue'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType, RelationDefinitionType } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; export const prefillRecord = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/object-record/utils/sanitizeRecordInput.ts b/packages/twenty-front/src/modules/object-record/utils/sanitizeRecordInput.ts index effe3c87066..38d0e9e5439 100644 --- a/packages/twenty-front/src/modules/object-record/utils/sanitizeRecordInput.ts +++ b/packages/twenty-front/src/modules/object-record/utils/sanitizeRecordInput.ts @@ -1,8 +1,8 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { isDefined } from 'twenty-shared'; import { RelationDefinitionType } from '~/generated-metadata/graphql'; import { FieldMetadataType } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; export const sanitizeRecordInput = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts b/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts index b2a252a3c3d..c15ca6c505b 100644 --- a/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts +++ b/packages/twenty-front/src/modules/onboarding/hooks/useSetNextOnboardingStatus.ts @@ -5,8 +5,8 @@ import { CurrentWorkspace, currentWorkspaceState, } from '@/auth/states/currentWorkspaceState'; +import { isDefined } from 'twenty-shared'; import { OnboardingStatus } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; const getNextOnboardingStatus = ( currentUser: CurrentUser | null, diff --git a/packages/twenty-front/src/modules/prefetch/components/PrefetchRunQueriesEffect.tsx b/packages/twenty-front/src/modules/prefetch/components/PrefetchRunQueriesEffect.tsx index 2a6481d292c..2c4d1f91699 100644 --- a/packages/twenty-front/src/modules/prefetch/components/PrefetchRunQueriesEffect.tsx +++ b/packages/twenty-front/src/modules/prefetch/components/PrefetchRunQueriesEffect.tsx @@ -11,7 +11,7 @@ import { useUpsertRecordsInCacheForPrefetchKey } from '@/prefetch/hooks/internal import { PrefetchKey } from '@/prefetch/types/PrefetchKey'; import { View } from '@/views/types/View'; import { useIsWorkspaceActivationStatusSuspended } from '@/workspace/hooks/useIsWorkspaceActivationStatusSuspended'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const PrefetchRunQueriesEffect = () => { const currentUser = useRecoilValue(currentUserState); diff --git a/packages/twenty-front/src/modules/search/hooks/useFilteredSearchRecordQuery.ts b/packages/twenty-front/src/modules/search/hooks/useFilteredSearchRecordQuery.ts index e58c35bf934..927ed81cb29 100644 --- a/packages/twenty-front/src/modules/search/hooks/useFilteredSearchRecordQuery.ts +++ b/packages/twenty-front/src/modules/search/hooks/useFilteredSearchRecordQuery.ts @@ -4,7 +4,7 @@ import { useSearchRecords } from '@/object-record/hooks/useSearchRecords'; import { RecordForSelect } from '@/object-record/relation-picker/types/RecordForSelect'; import { RecordsForMultipleRecordSelect } from '@/object-record/relation-picker/types/RecordsForMultipleRecordSelect'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; // TODO: use this for all search queries, because we need selectedRecords and recordsToSelect each time we want to search // Filtered entities to select are diff --git a/packages/twenty-front/src/modules/serverless-functions/hooks/useTestServerlessFunction.ts b/packages/twenty-front/src/modules/serverless-functions/hooks/useTestServerlessFunction.ts index 8ca50d4a42c..fd7c662b1a7 100644 --- a/packages/twenty-front/src/modules/serverless-functions/hooks/useTestServerlessFunction.ts +++ b/packages/twenty-front/src/modules/serverless-functions/hooks/useTestServerlessFunction.ts @@ -1,9 +1,9 @@ -import { useExecuteOneServerlessFunction } from '@/settings/serverless-functions/hooks/useExecuteOneServerlessFunction'; -import { useRecoilState } from 'recoil'; -import { serverlessFunctionTestDataFamilyState } from '@/workflow/states/serverlessFunctionTestDataFamilyState'; -import { isDefined } from 'twenty-ui'; -import { useState } from 'react'; import { useBuildDraftServerlessFunction } from '@/settings/serverless-functions/hooks/useBuildDraftServerlessFunction'; +import { useExecuteOneServerlessFunction } from '@/settings/serverless-functions/hooks/useExecuteOneServerlessFunction'; +import { serverlessFunctionTestDataFamilyState } from '@/workflow/states/serverlessFunctionTestDataFamilyState'; +import { useState } from 'react'; +import { useRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { sleep } from '~/utils/sleep'; export const useTestServerlessFunction = ({ diff --git a/packages/twenty-front/src/modules/serverless-functions/utils/getDefaultFunctionInputFromInputSchema.ts b/packages/twenty-front/src/modules/serverless-functions/utils/getDefaultFunctionInputFromInputSchema.ts index 8aec5bce22f..7375d3ee4ca 100644 --- a/packages/twenty-front/src/modules/serverless-functions/utils/getDefaultFunctionInputFromInputSchema.ts +++ b/packages/twenty-front/src/modules/serverless-functions/utils/getDefaultFunctionInputFromInputSchema.ts @@ -1,6 +1,6 @@ import { InputSchema } from '@/workflow/types/InputSchema'; import { FunctionInput } from '@/workflow/workflow-steps/workflow-actions/types/FunctionInput'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getDefaultFunctionInputFromInputSchema = ( inputSchema: InputSchema, diff --git a/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputFromSourceCode.ts b/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputFromSourceCode.ts index ac84b668295..ea3287c2eb6 100644 --- a/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputFromSourceCode.ts +++ b/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputFromSourceCode.ts @@ -2,7 +2,7 @@ import { getDefaultFunctionInputFromInputSchema } from '@/serverless-functions/u import { getFunctionInputSchema } from '@/serverless-functions/utils/getFunctionInputSchema'; import { FunctionInput } from '@/workflow/workflow-steps/workflow-actions/types/FunctionInput'; import { isObject } from '@sniptt/guards'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const getFunctionInputFromSourceCode = ( sourceCode?: string, diff --git a/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputSchema.ts b/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputSchema.ts index 381d87f6698..34bc476a28f 100644 --- a/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputSchema.ts +++ b/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionInputSchema.ts @@ -1,3 +1,5 @@ +import { InputSchema, InputSchemaProperty } from '@/workflow/types/InputSchema'; +import { isDefined } from 'twenty-shared'; import { ArrayTypeNode, ArrowFunction, @@ -5,17 +7,15 @@ import { FunctionDeclaration, FunctionLikeDeclaration, LiteralTypeNode, + Node, PropertySignature, ScriptTarget, StringLiteral, SyntaxKind, TypeNode, - Node, UnionTypeNode, VariableStatement, } from 'typescript'; -import { InputSchema, InputSchemaProperty } from '@/workflow/types/InputSchema'; -import { isDefined } from 'twenty-ui'; const getTypeString = (typeNode: TypeNode): InputSchemaProperty => { switch (typeNode.kind) { diff --git a/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionOutputSchema.ts b/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionOutputSchema.ts index bf40934e0e7..2d5537bc856 100644 --- a/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionOutputSchema.ts +++ b/packages/twenty-front/src/modules/serverless-functions/utils/getFunctionOutputSchema.ts @@ -1,7 +1,7 @@ import { InputSchemaPropertyType } from '@/workflow/types/InputSchema'; import { BaseOutputSchema } from '@/workflow/workflow-variables/types/StepOutputSchema'; import { isObject } from '@sniptt/guards'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const getValueType = (value: any): InputSchemaPropertyType => { if (!isDefined(value) || value === null) { diff --git a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsConnectedAccountsListCard.tsx b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsConnectedAccountsListCard.tsx index 405cf68b9f1..30cab94ccc5 100644 --- a/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsConnectedAccountsListCard.tsx +++ b/packages/twenty-front/src/modules/settings/accounts/components/SettingsAccountsConnectedAccountsListCard.tsx @@ -7,8 +7,8 @@ import { SettingsPath } from '@/types/SettingsPath'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { SettingsAccountsConnectedAccountsRowRightContainer } from '@/settings/accounts/components/SettingsAccountsConnectedAccountsRowRightContainer'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; -import { isDefined } from '~/utils/isDefined'; import { SettingsListCard } from '../../components/SettingsListCard'; const ProviderIcons: { [k: string]: IconComponent } = { diff --git a/packages/twenty-front/src/modules/settings/admin-panel/components/SettingsAdminContent.tsx b/packages/twenty-front/src/modules/settings/admin-panel/components/SettingsAdminContent.tsx index 484932e73bd..2620ec8a3b0 100644 --- a/packages/twenty-front/src/modules/settings/admin-panel/components/SettingsAdminContent.tsx +++ b/packages/twenty-front/src/modules/settings/admin-panel/components/SettingsAdminContent.tsx @@ -14,7 +14,7 @@ import styled from '@emotion/styled'; import { isNonEmptyString } from '@sniptt/guards'; import { useState } from 'react'; import { useRecoilValue } from 'recoil'; -import { getImageAbsoluteURI } from 'twenty-shared'; +import { getImageAbsoluteURI, isDefined } from 'twenty-shared'; import { Button, H1Title, @@ -22,7 +22,6 @@ import { H2Title, IconSearch, IconUser, - isDefined, Section, Toggle, } from 'twenty-ui'; diff --git a/packages/twenty-front/src/modules/settings/admin-panel/hooks/useFeatureFlagsManagement.ts b/packages/twenty-front/src/modules/settings/admin-panel/hooks/useFeatureFlagsManagement.ts index 81378bf7691..8005bf21c8b 100644 --- a/packages/twenty-front/src/modules/settings/admin-panel/hooks/useFeatureFlagsManagement.ts +++ b/packages/twenty-front/src/modules/settings/admin-panel/hooks/useFeatureFlagsManagement.ts @@ -1,10 +1,10 @@ import { UserLookup } from '@/settings/admin-panel/types/UserLookup'; import { useState } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { + FeatureFlagKey, useUpdateWorkspaceFeatureFlagMutation, useUserLookupAdminPanelMutation, - FeatureFlagKey, } from '~/generated/graphql'; export const useFeatureFlagsManagement = () => { diff --git a/packages/twenty-front/src/modules/settings/admin-panel/hooks/useImpersonate.ts b/packages/twenty-front/src/modules/settings/admin-panel/hooks/useImpersonate.ts index dd235341001..e4ce97d95b7 100644 --- a/packages/twenty-front/src/modules/settings/admin-panel/hooks/useImpersonate.ts +++ b/packages/twenty-front/src/modules/settings/admin-panel/hooks/useImpersonate.ts @@ -6,8 +6,8 @@ import { isAppWaitingForFreshObjectMetadataState } from '@/object-metadata/state import { AppPath } from '@/types/AppPath'; import { useState } from 'react'; import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { useImpersonateMutation } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; export const useImpersonate = () => { const [currentUser] = useRecoilState(currentUserState); diff --git a/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx b/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx index e2c47d2822b..f2f1a7300a5 100644 --- a/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx +++ b/packages/twenty-front/src/modules/settings/components/SettingsPageContainer.tsx @@ -3,7 +3,7 @@ import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; import { ScrollWrapper } from '@/ui/utilities/scroll/components/ScrollWrapper'; import styled from '@emotion/styled'; import { ReactNode } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledSettingsPageContainer = styled.div<{ width?: number; diff --git a/packages/twenty-front/src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx b/packages/twenty-front/src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx index 7efaa57eb7c..8d82a5584f8 100644 --- a/packages/twenty-front/src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx @@ -7,7 +7,8 @@ import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { useLocation, useParams, useSearchParams } from 'react-router-dom'; -import { Button, IconChevronDown, isDefined, MenuItem } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { Button, IconChevronDown, MenuItem } from 'twenty-ui'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; const StyledContainer = styled.div` diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx b/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx index 6385b0cda2f..7f37e08486e 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/fields/forms/components/SettingsDataModelFieldIconLabelForm.tsx @@ -12,12 +12,12 @@ import { IconPicker } from '@/ui/input/components/IconPicker'; import { TextInput } from '@/ui/input/components/TextInput'; import { useTheme } from '@emotion/react'; import { useLingui } from '@lingui/react/macro'; +import { isDefined } from 'twenty-shared'; import { AppTooltip, Card, IconInfoCircle, IconRefresh, - isDefined, TooltipDelay, } from 'twenty-ui'; import { computeMetadataNameFromLabel } from '~/pages/settings/data-model/utils/compute-metadata-name-from-label.utils'; diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelSetFieldValueEffect.tsx b/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelSetFieldValueEffect.tsx index 110591d3e11..a4068655ee4 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelSetFieldValueEffect.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/fields/preview/components/SettingsDataModelSetFieldValueEffect.tsx @@ -4,7 +4,7 @@ import { recordStoreFamilySelector } from '@/object-record/record-store/states/s import { settingsPreviewRecordIdState } from '@/settings/data-model/fields/preview/states/settingsPreviewRecordIdState'; import { useEffect } from 'react'; import { useRecoilValue, useSetRecoilState } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type SettingsDataModelSetFieldValueEffectProps = { recordId: string; diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/preview/hooks/usePreviewRecord.ts b/packages/twenty-front/src/modules/settings/data-model/fields/preview/hooks/usePreviewRecord.ts index d48e88dfcae..903271e2bae 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/preview/hooks/usePreviewRecord.ts +++ b/packages/twenty-front/src/modules/settings/data-model/fields/preview/hooks/usePreviewRecord.ts @@ -4,8 +4,8 @@ import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords'; import { isFieldValueEmpty } from '@/object-record/record-field/utils/isFieldValueEmpty'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { getFieldPreviewValue } from '@/settings/data-model/fields/preview/utils/getFieldPreviewValue'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { pascalCase } from '~/utils/string/pascalCase'; type UsePreviewRecordParams = { diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts index a71d6ed0781..1255bcd95a9 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts +++ b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getFieldPreviewValue.ts @@ -3,7 +3,7 @@ import { isFieldValueEmpty } from '@/object-record/record-field/utils/isFieldVal import { generateDefaultFieldValue } from '@/object-record/utils/generateDefaultFieldValue'; import { getSettingsFieldTypeConfig } from '@/settings/data-model/utils/getSettingsFieldTypeConfig'; import { isFieldTypeSupportedInSettings } from '@/settings/data-model/utils/isFieldTypeSupportedInSettings'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getFieldPreviewValue = ({ fieldMetadataItem, diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getMultiSelectFieldPreviewValue.ts b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getMultiSelectFieldPreviewValue.ts index d6fb8cf5ae9..77aaed76515 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getMultiSelectFieldPreviewValue.ts +++ b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getMultiSelectFieldPreviewValue.ts @@ -4,8 +4,8 @@ import { isNonEmptyString } from '@sniptt/guards'; import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { FieldMultiSelectValue } from '@/object-record/record-field/types/FieldMetadata'; import { multiSelectFieldDefaultValueSchema } from '@/object-record/record-field/validation-schemas/multiSelectFieldDefaultValueSchema'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { stripSimpleQuotesFromString } from '~/utils/string/stripSimpleQuotesFromString'; export const getMultiSelectFieldPreviewValue = ({ diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getSelectFieldPreviewValue.ts b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getSelectFieldPreviewValue.ts index 79fa857a162..ecb16ff37b8 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getSelectFieldPreviewValue.ts +++ b/packages/twenty-front/src/modules/settings/data-model/fields/preview/utils/getSelectFieldPreviewValue.ts @@ -3,8 +3,8 @@ import { isNonEmptyString } from '@sniptt/guards'; import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { FieldSelectValue } from '@/object-record/record-field/types/FieldMetadata'; import { selectFieldDefaultValueSchema } from '@/object-record/record-field/validation-schemas/selectFieldDefaultValueSchema'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; import { stripSimpleQuotesFromString } from '~/utils/string/stripSimpleQuotesFromString'; export const getSelectFieldPreviewValue = ({ diff --git a/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverview.tsx b/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverview.tsx index 36f7134d427..d43a8ddb5df 100644 --- a/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverview.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverview.tsx @@ -20,6 +20,7 @@ import { useReactFlow, } from '@xyflow/react'; import { useCallback, useState } from 'react'; +import { isDefined } from 'twenty-shared'; import { Button, IconButtonGroup, @@ -30,7 +31,6 @@ import { IconPlus, IconX, } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; const nodeTypes: NodeTypes = { object: SettingsDataModelOverviewObject, diff --git a/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx b/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx index a4feec43d59..35417309cbc 100644 --- a/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/graph-overview/components/SettingsDataModelOverviewEffect.tsx @@ -5,7 +5,7 @@ import { useEffect } from 'react'; import { useRecoilValue } from 'recoil'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; type SettingsDataModelOverviewEffectProps = { diff --git a/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx b/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx index 9401ec6c4da..38a1830766a 100644 --- a/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/object-details/components/SettingsObjectFieldItemTableRow.tsx @@ -21,12 +21,12 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { useMemo } from 'react'; import { useRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { IconMinus, IconPlus, LightIconButton, UndecoratedLink, - isDefined, useIcons, } from 'twenty-ui'; import { RelationDefinitionType } from '~/generated-metadata/graphql'; diff --git a/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx b/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx index 54233dc3522..cbcb6929172 100644 --- a/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx +++ b/packages/twenty-front/src/modules/settings/data-model/objects/forms/components/SettingsDataModelObjectAboutForm.tsx @@ -10,6 +10,7 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { plural } from 'pluralize'; import { Controller, useFormContext } from 'react-hook-form'; +import { isDefined } from 'twenty-shared'; import { AppTooltip, Card, @@ -19,7 +20,6 @@ import { } from 'twenty-ui'; import { z } from 'zod'; import { computeMetadataNameFromLabel } from '~/pages/settings/data-model/utils/compute-metadata-name-from-label.utils'; -import { isDefined } from '~/utils/isDefined'; export const settingsDataModelObjectAboutFormSchema = objectMetadataItemSchema .pick({ diff --git a/packages/twenty-front/src/modules/settings/developers/components/ApiKeyNameInput.tsx b/packages/twenty-front/src/modules/settings/developers/components/ApiKeyNameInput.tsx index 12c43dfb15c..bce4790f224 100644 --- a/packages/twenty-front/src/modules/settings/developers/components/ApiKeyNameInput.tsx +++ b/packages/twenty-front/src/modules/settings/developers/components/ApiKeyNameInput.tsx @@ -1,12 +1,12 @@ -import { useCallback, useEffect } from 'react'; import styled from '@emotion/styled'; +import { useCallback, useEffect } from 'react'; import { useDebouncedCallback } from 'use-debounce'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; import { ApiKey } from '@/settings/developers/types/api-key/ApiKey'; import { TextInput } from '@/ui/input/components/TextInput'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledComboInputContainer = styled.div` display: flex; diff --git a/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx b/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx index ec2a4fcbf2f..0aa09672382 100644 --- a/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx +++ b/packages/twenty-front/src/modules/settings/integrations/components/SettingsIntegrationComponent.tsx @@ -12,7 +12,7 @@ import { import { SettingsIntegration } from '@/settings/integrations/types/SettingsIntegration'; import { Link } from 'react-router-dom'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; interface SettingsIntegrationComponentProps { integration: SettingsIntegration; diff --git a/packages/twenty-front/src/modules/settings/integrations/database-connection/components/SettingsIntegrationDatabaseConnectionSyncStatus.tsx b/packages/twenty-front/src/modules/settings/integrations/database-connection/components/SettingsIntegrationDatabaseConnectionSyncStatus.tsx index b4298fe511d..62a492699fc 100644 --- a/packages/twenty-front/src/modules/settings/integrations/database-connection/components/SettingsIntegrationDatabaseConnectionSyncStatus.tsx +++ b/packages/twenty-front/src/modules/settings/integrations/database-connection/components/SettingsIntegrationDatabaseConnectionSyncStatus.tsx @@ -1,7 +1,7 @@ import { useGetDatabaseConnectionTables } from '@/databases/hooks/useGetDatabaseConnectionTables'; +import { isDefined } from 'twenty-shared'; import { Status } from 'twenty-ui'; import { RemoteTableStatus } from '~/generated-metadata/graphql'; -import { isDefined } from '~/utils/isDefined'; type SettingsIntegrationDatabaseConnectionSyncStatusProps = { connectionId: string; diff --git a/packages/twenty-front/src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts b/packages/twenty-front/src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts index 635dd129e16..5e3cb52dc9c 100644 --- a/packages/twenty-front/src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts +++ b/packages/twenty-front/src/modules/settings/lab/hooks/useLabPublicFeatureFlags.ts @@ -2,7 +2,7 @@ import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { labPublicFeatureFlagsState } from '@/client-config/states/labPublicFeatureFlagsState'; import { useState } from 'react'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { FeatureFlagKey, useUpdateLabPublicFeatureFlagMutation, diff --git a/packages/twenty-front/src/modules/settings/profile/components/ProfilePictureUploader.tsx b/packages/twenty-front/src/modules/settings/profile/components/ProfilePictureUploader.tsx index cc29f7e58c5..07b62aa5a5a 100644 --- a/packages/twenty-front/src/modules/settings/profile/components/ProfilePictureUploader.tsx +++ b/packages/twenty-front/src/modules/settings/profile/components/ProfilePictureUploader.tsx @@ -5,8 +5,8 @@ import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMembe import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; import { ImageInput } from '@/ui/input/components/ImageInput'; +import { isDefined } from 'twenty-shared'; import { useUploadProfilePictureMutation } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export const ProfilePictureUploader = () => { diff --git a/packages/twenty-front/src/modules/settings/security/components/SettingsSSOSAMLForm.tsx b/packages/twenty-front/src/modules/settings/security/components/SettingsSSOSAMLForm.tsx index af6b898cbc8..1a39b4a2d71 100644 --- a/packages/twenty-front/src/modules/settings/security/components/SettingsSSOSAMLForm.tsx +++ b/packages/twenty-front/src/modules/settings/security/components/SettingsSSOSAMLForm.tsx @@ -8,6 +8,7 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { ChangeEvent, useRef } from 'react'; import { useFormContext } from 'react-hook-form'; +import { isDefined } from 'twenty-shared'; import { Button, H2Title, @@ -19,7 +20,6 @@ import { Section, } from 'twenty-ui'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; -import { isDefined } from '~/utils/isDefined'; const StyledUploadFileContainer = styled.div` align-items: center; diff --git a/packages/twenty-front/src/modules/settings/security/components/SettingsSecuritySSORowDropdownMenu.tsx b/packages/twenty-front/src/modules/settings/security/components/SettingsSecuritySSORowDropdownMenu.tsx index 01561fb2f40..d14bfc0babd 100644 --- a/packages/twenty-front/src/modules/settings/security/components/SettingsSecuritySSORowDropdownMenu.tsx +++ b/packages/twenty-front/src/modules/settings/security/components/SettingsSecuritySSORowDropdownMenu.tsx @@ -17,8 +17,8 @@ import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown'; import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { UnwrapRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { SsoIdentityProviderStatus } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; type SettingsSecuritySSORowDropdownMenuProps = { SSOIdp: UnwrapRecoilValue[0]; diff --git a/packages/twenty-front/src/modules/settings/serverless-functions/components/SettingsServerlessFunctionCodeEditor.tsx b/packages/twenty-front/src/modules/settings/serverless-functions/components/SettingsServerlessFunctionCodeEditor.tsx index 48a69acc071..5534537942a 100644 --- a/packages/twenty-front/src/modules/settings/serverless-functions/components/SettingsServerlessFunctionCodeEditor.tsx +++ b/packages/twenty-front/src/modules/settings/serverless-functions/components/SettingsServerlessFunctionCodeEditor.tsx @@ -3,9 +3,9 @@ import { EditorProps, Monaco } from '@monaco-editor/react'; import dotenv from 'dotenv'; import { editor, MarkerSeverity } from 'monaco-editor'; import { AutoTypings } from 'monaco-editor-auto-typings'; -import { CodeEditor } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { useParams } from 'react-router-dom'; +import { isDefined } from 'twenty-shared'; +import { CodeEditor } from 'twenty-ui'; export type File = { language: string; diff --git a/packages/twenty-front/src/modules/settings/workspace/components/NameField.tsx b/packages/twenty-front/src/modules/settings/workspace/components/NameField.tsx index 9e4eae34233..d52f926810c 100644 --- a/packages/twenty-front/src/modules/settings/workspace/components/NameField.tsx +++ b/packages/twenty-front/src/modules/settings/workspace/components/NameField.tsx @@ -7,8 +7,8 @@ import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { TextInput } from '@/ui/input/components/TextInput'; import { useLingui } from '@lingui/react/macro'; import isEmpty from 'lodash.isempty'; +import { isDefined } from 'twenty-shared'; import { useUpdateWorkspaceMutation } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { logError } from '~/utils/logError'; diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UnmatchColumn.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UnmatchColumn.tsx index 1edfc63ce17..70b282a17dd 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UnmatchColumn.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UnmatchColumn.tsx @@ -5,7 +5,8 @@ import { Column } from '@/spreadsheet-import/steps/components/MatchColumnsStep/M import { Fields } from '@/spreadsheet-import/types'; import styled from '@emotion/styled'; import { useState } from 'react'; -import { AnimatedExpandableContainer, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { AnimatedExpandableContainer } from 'twenty-ui'; const getExpandableContainerTitle = ( fields: Fields, diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UserTableColumn.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UserTableColumn.tsx index 8c575097af6..a3b84f4c7bb 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UserTableColumn.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/MatchColumnsStep/components/UserTableColumn.tsx @@ -1,7 +1,7 @@ import styled from '@emotion/styled'; import { ImportedRow } from '@/spreadsheet-import/types'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { Column } from '../MatchColumnsStep'; diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx index 12e89fd5502..7a28439acb0 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/ValidationStep.tsx @@ -25,8 +25,8 @@ import { } from 'react'; // @ts-expect-error Todo: remove usage of react-data-grid` import { RowsChangeData } from 'react-data-grid'; +import { isDefined } from 'twenty-shared'; import { Button, IconTrash, Toggle } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { generateColumns } from './components/columns'; import { ImportedStructuredRowMetadata } from './types'; diff --git a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx index cc2f4507252..c5f1516c6fa 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx +++ b/packages/twenty-front/src/modules/spreadsheet-import/steps/components/ValidationStep/components/columns.tsx @@ -7,7 +7,7 @@ import { AppTooltip, Checkbox, CheckboxVariant, Toggle } from 'twenty-ui'; import { MatchColumnSelect } from '@/spreadsheet-import/components/MatchColumnSelect'; import { Fields, ImportedStructuredRow } from '@/spreadsheet-import/types'; import { TextInput } from '@/ui/input/components/TextInput'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { ImportedStructuredRowMetadata } from '../types'; diff --git a/packages/twenty-front/src/modules/spreadsheet-import/utils/dataMutations.ts b/packages/twenty-front/src/modules/spreadsheet-import/utils/dataMutations.ts index 14ad0ed11f1..9226bef30c3 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/utils/dataMutations.ts +++ b/packages/twenty-front/src/modules/spreadsheet-import/utils/dataMutations.ts @@ -12,7 +12,7 @@ import { RowHook, TableHook, } from '@/spreadsheet-import/types'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export const addErrorsAndRunHooks = ( diff --git a/packages/twenty-front/src/modules/spreadsheet-import/utils/getMatchedColumns.ts b/packages/twenty-front/src/modules/spreadsheet-import/utils/getMatchedColumns.ts index 4397231640a..18db7061046 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/utils/getMatchedColumns.ts +++ b/packages/twenty-front/src/modules/spreadsheet-import/utils/getMatchedColumns.ts @@ -6,7 +6,7 @@ import { MatchColumnsStepProps, } from '@/spreadsheet-import/steps/components/MatchColumnsStep/MatchColumnsStep'; import { Field, Fields } from '@/spreadsheet-import/types'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { findMatch } from './findMatch'; import { setColumn } from './setColumn'; diff --git a/packages/twenty-front/src/modules/spreadsheet-import/utils/normalizeTableData.ts b/packages/twenty-front/src/modules/spreadsheet-import/utils/normalizeTableData.ts index 50bf976b5c1..729f476f48d 100644 --- a/packages/twenty-front/src/modules/spreadsheet-import/utils/normalizeTableData.ts +++ b/packages/twenty-front/src/modules/spreadsheet-import/utils/normalizeTableData.ts @@ -8,7 +8,7 @@ import { ImportedStructuredRow, } from '@/spreadsheet-import/types'; -import { isDefined } from '@ui/utilities/isDefined'; +import { isDefined } from 'twenty-shared'; import { z } from 'zod'; import { normalizeCheckboxValue } from './normalizeCheckboxValue'; diff --git a/packages/twenty-front/src/modules/support/hooks/useSupportChat.ts b/packages/twenty-front/src/modules/support/hooks/useSupportChat.ts index 2fe623a699a..6b2b76be79b 100644 --- a/packages/twenty-front/src/modules/support/hooks/useSupportChat.ts +++ b/packages/twenty-front/src/modules/support/hooks/useSupportChat.ts @@ -5,7 +5,7 @@ import { useIsPrefetchLoading } from '@/prefetch/hooks/useIsPrefetchLoading'; import { isNonEmptyString } from '@sniptt/guards'; import { useCallback, useEffect, useState } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { User, WorkspaceMember } from '~/generated-metadata/graphql'; const insertScript = ({ diff --git a/packages/twenty-front/src/modules/ui/feedback/dialog-manager/components/Dialog.tsx b/packages/twenty-front/src/modules/ui/feedback/dialog-manager/components/Dialog.tsx index febaa3f0803..4dbdc629567 100644 --- a/packages/twenty-front/src/modules/ui/feedback/dialog-manager/components/Dialog.tsx +++ b/packages/twenty-front/src/modules/ui/feedback/dialog-manager/components/Dialog.tsx @@ -4,8 +4,8 @@ import { useCallback } from 'react'; import { Key } from 'ts-key-enum'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; +import { isDefined } from 'twenty-shared'; import { Button } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { DialogHotkeyScope } from '../types/DialogHotkeyScope'; diff --git a/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx b/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx index 52e01318e34..2ca2660b1f3 100644 --- a/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx +++ b/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/components/SnackBar.tsx @@ -16,7 +16,7 @@ import { useProgressAnimation, } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export enum SnackBarVariant { Default = 'default', diff --git a/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts b/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts index 04684c2acd0..1e143eaeeff 100644 --- a/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts +++ b/packages/twenty-front/src/modules/ui/feedback/snack-bar-manager/hooks/useSnackBar.ts @@ -1,7 +1,7 @@ import { useCallback } from 'react'; import { useRecoilCallback } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { v4 as uuidv4 } from 'uuid'; -import { isDefined } from '~/utils/isDefined'; import { SnackBarManagerScopeInternalContext } from '@/ui/feedback/snack-bar-manager/scopes/scope-internal-context/SnackBarManagerScopeInternalContext'; import { diff --git a/packages/twenty-front/src/modules/ui/field/display/components/BooleanDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/BooleanDisplay.tsx index 992667a8353..b9568ffbe91 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/BooleanDisplay.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/BooleanDisplay.tsx @@ -1,7 +1,7 @@ import { styled } from '@linaria/react'; import { IconCheck, IconX, THEME_COMMON } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const spacing = THEME_COMMON.spacingMultiplicator * 1; const iconSizeSm = THEME_COMMON.icon.size.sm; diff --git a/packages/twenty-front/src/modules/ui/field/display/components/CurrencyDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/CurrencyDisplay.tsx index a246395b697..eebff913e8c 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/CurrencyDisplay.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/CurrencyDisplay.tsx @@ -3,8 +3,8 @@ import { styled } from '@linaria/react'; import { FieldCurrencyValue } from '@/object-record/record-field/types/FieldMetadata'; import { SETTINGS_FIELD_CURRENCY_CODES } from '@/settings/data-model/constants/SettingsFieldCurrencyCodes'; +import { isDefined } from 'twenty-shared'; import { formatAmount } from '~/utils/format/formatAmount'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; type CurrencyDisplayProps = { diff --git a/packages/twenty-front/src/modules/ui/field/display/components/EmailDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/EmailDisplay.tsx index 75089eaf6f1..f5ae25ed179 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/EmailDisplay.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/EmailDisplay.tsx @@ -1,6 +1,6 @@ import { MouseEvent } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { ContactLink } from 'twenty-ui'; import { EllipsisDisplay } from './EllipsisDisplay'; diff --git a/packages/twenty-front/src/modules/ui/field/display/components/EmailsDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/EmailsDisplay.tsx index e2737dadce1..7d71c0e782d 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/EmailsDisplay.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/EmailsDisplay.tsx @@ -4,7 +4,7 @@ import { RoundedLink, THEME_COMMON } from 'twenty-ui'; import { FieldEmailsValue } from '@/object-record/record-field/types/FieldMetadata'; import { ExpandableList } from '@/ui/layout/expandable-list/components/ExpandableList'; import styled from '@emotion/styled'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type EmailsDisplayProps = { value?: FieldEmailsValue; diff --git a/packages/twenty-front/src/modules/ui/field/display/components/LinksDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/LinksDisplay.tsx index fd03c8c005b..16bfd7398da 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/LinksDisplay.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/LinksDisplay.tsx @@ -3,8 +3,8 @@ import { LinkType, RoundedLink, SocialLink } from 'twenty-ui'; import { FieldLinksValue } from '@/object-record/record-field/types/FieldMetadata'; import { ExpandableList } from '@/ui/layout/expandable-list/components/ExpandableList'; +import { isDefined } from 'twenty-shared'; import { checkUrlType } from '~/utils/checkUrlType'; -import { isDefined } from '~/utils/isDefined'; import { getAbsoluteUrl } from '~/utils/url/getAbsoluteUrl'; import { getUrlHostName } from '~/utils/url/getUrlHostName'; diff --git a/packages/twenty-front/src/modules/ui/field/display/components/PhoneDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/PhoneDisplay.tsx index 78accbd3374..7c823d8ecb1 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/PhoneDisplay.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/PhoneDisplay.tsx @@ -2,7 +2,7 @@ import { parsePhoneNumber, PhoneNumber } from 'libphonenumber-js'; import { MouseEvent } from 'react'; import { ContactLink } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; interface PhoneDisplayProps { value: PhoneDisplayValueProps; diff --git a/packages/twenty-front/src/modules/ui/field/display/components/PhonesDisplay.tsx b/packages/twenty-front/src/modules/ui/field/display/components/PhonesDisplay.tsx index d3bef134297..585ad3949a4 100644 --- a/packages/twenty-front/src/modules/ui/field/display/components/PhonesDisplay.tsx +++ b/packages/twenty-front/src/modules/ui/field/display/components/PhonesDisplay.tsx @@ -7,7 +7,7 @@ import { ExpandableList } from '@/ui/layout/expandable-list/components/Expandabl import { DEFAULT_PHONE_CALLING_CODE } from '@/object-record/record-field/meta-types/input/components/PhonesFieldInput'; import { parsePhoneNumber } from 'libphonenumber-js'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { logError } from '~/utils/logError'; type PhonesDisplayProps = { diff --git a/packages/twenty-front/src/modules/ui/field/input/components/AddressInput.tsx b/packages/twenty-front/src/modules/ui/field/input/components/AddressInput.tsx index 8be2bd42056..aa63b01be6f 100644 --- a/packages/twenty-front/src/modules/ui/field/input/components/AddressInput.tsx +++ b/packages/twenty-front/src/modules/ui/field/input/components/AddressInput.tsx @@ -12,7 +12,8 @@ import { activeDropdownFocusIdState } from '@/ui/layout/dropdown/states/activeDr import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { useRecoilValue } from 'recoil'; -import { isDefined, MOBILE_VIEWPORT } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { MOBILE_VIEWPORT } from 'twenty-ui'; const StyledAddressContainer = styled.div` padding: 4px 8px; diff --git a/packages/twenty-front/src/modules/ui/field/input/components/DoubleTextInput.tsx b/packages/twenty-front/src/modules/ui/field/input/components/DoubleTextInput.tsx index e4a1b7b7498..d5e09295028 100644 --- a/packages/twenty-front/src/modules/ui/field/input/components/DoubleTextInput.tsx +++ b/packages/twenty-front/src/modules/ui/field/input/components/DoubleTextInput.tsx @@ -10,7 +10,7 @@ import { Key } from 'ts-key-enum'; import { FieldDoubleText } from '@/object-record/record-field/types/FieldDoubleText'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { FieldInputContainer } from '@/ui/field/input/components/FieldInputContainer'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; diff --git a/packages/twenty-front/src/modules/ui/field/input/components/MultiSelectInput.tsx b/packages/twenty-front/src/modules/ui/field/input/components/MultiSelectInput.tsx index 3b3086bb3e8..a8e83b81b57 100644 --- a/packages/twenty-front/src/modules/ui/field/input/components/MultiSelectInput.tsx +++ b/packages/twenty-front/src/modules/ui/field/input/components/MultiSelectInput.tsx @@ -14,8 +14,8 @@ import { useSelectableListStates } from '@/ui/layout/selectable-list/hooks/inter import { useSelectableList } from '@/ui/layout/selectable-list/hooks/useSelectableList'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; +import { isDefined } from 'twenty-shared'; import { MenuItemMultiSelectTag } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { turnIntoEmptyStringIfWhitespacesOnly } from '~/utils/string/turnIntoEmptyStringIfWhitespacesOnly'; type MultiSelectInputProps = { diff --git a/packages/twenty-front/src/modules/ui/field/input/components/TextAreaInput.tsx b/packages/twenty-front/src/modules/ui/field/input/components/TextAreaInput.tsx index 08d75a9761a..53dc1a87173 100644 --- a/packages/twenty-front/src/modules/ui/field/input/components/TextAreaInput.tsx +++ b/packages/twenty-front/src/modules/ui/field/input/components/TextAreaInput.tsx @@ -5,7 +5,7 @@ import { TEXT_INPUT_STYLE } from 'twenty-ui'; import { LightCopyIconButton } from '@/object-record/record-field/components/LightCopyIconButton'; import { useRegisterInputEvents } from '@/object-record/record-field/meta-types/input/hooks/useRegisterInputEvents'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { turnIntoEmptyStringIfWhitespacesOnly } from '~/utils/string/turnIntoEmptyStringIfWhitespacesOnly'; export type TextAreaInputProps = { diff --git a/packages/twenty-front/src/modules/ui/input/components/ImageInput.tsx b/packages/twenty-front/src/modules/ui/input/components/ImageInput.tsx index 034dca35ef7..1aaeed14ddb 100644 --- a/packages/twenty-front/src/modules/ui/input/components/ImageInput.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/ImageInput.tsx @@ -4,10 +4,9 @@ import { Trans, useLingui } from '@lingui/react/macro'; import { isNonEmptyString } from '@sniptt/guards'; import React from 'react'; -import { getImageAbsoluteURI } from 'twenty-shared'; +import { getImageAbsoluteURI, isDefined } from 'twenty-shared'; import { Button, IconPhotoUp, IconTrash, IconUpload, IconX } from 'twenty-ui'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; -import { isDefined } from '~/utils/isDefined'; const StyledContainer = styled.div` display: flex; diff --git a/packages/twenty-front/src/modules/ui/input/components/Select.tsx b/packages/twenty-front/src/modules/ui/input/components/Select.tsx index d94cc00d6ca..06d101ba9ac 100644 --- a/packages/twenty-front/src/modules/ui/input/components/Select.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/Select.tsx @@ -9,7 +9,7 @@ import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownM import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { SelectControl } from '@/ui/input/components/SelectControl'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { SelectHotkeyScope } from '../types/SelectHotkeyScope'; export type SelectOption = { diff --git a/packages/twenty-front/src/modules/ui/input/components/SelectControl.tsx b/packages/twenty-front/src/modules/ui/input/components/SelectControl.tsx index 28fc9962512..7946af06551 100644 --- a/packages/twenty-front/src/modules/ui/input/components/SelectControl.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/SelectControl.tsx @@ -1,11 +1,8 @@ import { SelectOption, SelectSizeVariant } from '@/ui/input/components/Select'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; -import { - IconChevronDown, - isDefined, - OverflowingTextWithTooltip, -} from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconChevronDown, OverflowingTextWithTooltip } from 'twenty-ui'; const StyledControlContainer = styled.div<{ disabled?: boolean; diff --git a/packages/twenty-front/src/modules/ui/input/components/SelectInput.tsx b/packages/twenty-front/src/modules/ui/input/components/SelectInput.tsx index 249692646b1..94ded0928ad 100644 --- a/packages/twenty-front/src/modules/ui/input/components/SelectInput.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/SelectInput.tsx @@ -8,7 +8,8 @@ import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; import { useEffect, useMemo, useRef, useState } from 'react'; import { Key } from 'ts-key-enum'; -import { MenuItemSelectTag, TagColor, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { MenuItemSelectTag, TagColor } from 'twenty-ui'; interface SelectInputProps { onOptionSelected: (selectedOption: SelectOption) => void; diff --git a/packages/twenty-front/src/modules/ui/input/components/TextInput.tsx b/packages/twenty-front/src/modules/ui/input/components/TextInput.tsx index 8e31f598822..666b181ef64 100644 --- a/packages/twenty-front/src/modules/ui/input/components/TextInput.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/TextInput.tsx @@ -8,7 +8,7 @@ import { import { InputHotkeyScope } from '@/ui/input/types/InputHotkeyScope'; import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export type TextInputProps = TextInputV2ComponentProps & { disableHotkeys?: boolean; diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimeInput.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimeInput.tsx index 531608fefa7..c60bc19ab18 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimeInput.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/DateTimeInput.tsx @@ -12,7 +12,7 @@ import { MIN_DATE } from '@/ui/input/components/internal/date/constants/MinDate' import { parseDateToString } from '@/ui/input/components/internal/date/utils/parseDateToString'; import { parseStringToDate } from '@/ui/input/components/internal/date/utils/parseStringToDate'; import { isNull } from '@sniptt/guards'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const StyledInputContainer = styled.div` align-items: center; diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/InternalDatePicker.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/InternalDatePicker.tsx index d54d8a976a2..bb48bcbeb49 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/InternalDatePicker.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/InternalDatePicker.tsx @@ -8,7 +8,7 @@ import { } from 'twenty-ui'; import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { AbsoluteDatePickerHeader } from '@/ui/input/components/internal/date/components/AbsoluteDatePickerHeader'; import { DateTimeInput } from '@/ui/input/components/internal/date/components/DateTimeInput'; diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/__stories__/InternalDatePicker.stories.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/__stories__/InternalDatePicker.stories.tsx index 3bed3754339..36fb9ad1bc7 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/date/components/__stories__/InternalDatePicker.stories.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/date/components/__stories__/InternalDatePicker.stories.tsx @@ -3,7 +3,7 @@ import { Meta, StoryObj } from '@storybook/react'; import { expect, userEvent, within } from '@storybook/test'; import { ComponentDecorator } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { DateTimePicker } from '../InternalDatePicker'; const meta: Meta = { diff --git a/packages/twenty-front/src/modules/ui/input/components/internal/phone/components/PhoneCountryPickerDropdownButton.tsx b/packages/twenty-front/src/modules/ui/input/components/internal/phone/components/PhoneCountryPickerDropdownButton.tsx index 8d8aba0b45a..00c05feed84 100644 --- a/packages/twenty-front/src/modules/ui/input/components/internal/phone/components/PhoneCountryPickerDropdownButton.tsx +++ b/packages/twenty-front/src/modules/ui/input/components/internal/phone/components/PhoneCountryPickerDropdownButton.tsx @@ -5,8 +5,8 @@ import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { useEffect, useState } from 'react'; +import { isDefined } from 'twenty-shared'; import { IconChevronDown, IconWorld } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { CountryPickerHotkeyScope } from '../types/CountryPickerHotkeyScope'; diff --git a/packages/twenty-front/src/modules/ui/input/hooks/useInputFocusWithoutScrollOnMount.ts b/packages/twenty-front/src/modules/ui/input/hooks/useInputFocusWithoutScrollOnMount.ts index a771bcd6e23..c0e373b15e3 100644 --- a/packages/twenty-front/src/modules/ui/input/hooks/useInputFocusWithoutScrollOnMount.ts +++ b/packages/twenty-front/src/modules/ui/input/hooks/useInputFocusWithoutScrollOnMount.ts @@ -1,5 +1,5 @@ import { useEffect, useRef } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useInputFocusWithoutScrollOnMount = () => { const inputRef = useRef(null); diff --git a/packages/twenty-front/src/modules/ui/layout/bottom-bar/hooks/useBottomBar.ts b/packages/twenty-front/src/modules/ui/layout/bottom-bar/hooks/useBottomBar.ts index bfae8a470fa..7cbb867f26b 100644 --- a/packages/twenty-front/src/modules/ui/layout/bottom-bar/hooks/useBottomBar.ts +++ b/packages/twenty-front/src/modules/ui/layout/bottom-bar/hooks/useBottomBar.ts @@ -4,7 +4,7 @@ import { bottomBarHotkeyComponentState } from '@/ui/layout/bottom-bar/states/bot import { isBottomBarOpenedComponentState } from '@/ui/layout/bottom-bar/states/isBottomBarOpenedComponentState'; import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useBottomBar = () => { const { diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx b/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx index 355ba9de77d..014d96c1d12 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/components/Dropdown.tsx @@ -20,7 +20,7 @@ import { MouseEvent, ReactNode } from 'react'; import { flushSync } from 'react-dom'; import { Keys } from 'react-hotkeys-hook'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { sleep } from '~/utils/sleep'; import { useDropdown } from '../hooks/useDropdown'; diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownMenuHeader.tsx b/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownMenuHeader.tsx index 901b47aad80..39127f9f632 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownMenuHeader.tsx +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/components/DropdownMenuHeader.tsx @@ -1,7 +1,8 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { ComponentProps, MouseEvent } from 'react'; -import { IconComponent, isDefined, LightIconButton } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconComponent, LightIconButton } from 'twenty-ui'; const StyledHeader = styled.li` align-items: center; diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdown.ts b/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdown.ts index 48b13dc5535..b2bd155c866 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdown.ts +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdown.ts @@ -8,7 +8,7 @@ import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousH import { getScopeIdOrUndefinedFromComponentId } from '@/ui/utilities/recoil-scope/utils/getScopeIdOrUndefinedFromComponentId'; import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue'; import { useCallback } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useDropdown = (dropdownId?: string) => { const { diff --git a/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdownV2.ts b/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdownV2.ts index 59ae9358bd2..edd496c5131 100644 --- a/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdownV2.ts +++ b/packages/twenty-front/src/modules/ui/layout/dropdown/hooks/useDropdownV2.ts @@ -5,7 +5,7 @@ import { isDropdownOpenComponentState } from '@/ui/layout/dropdown/states/isDrop import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope'; import { getScopeIdFromComponentId } from '@/ui/utilities/recoil-scope/utils/getScopeIdFromComponentId'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useDropdownV2 = () => { const { diff --git a/packages/twenty-front/src/modules/ui/layout/expandable-list/components/ExpandableList.tsx b/packages/twenty-front/src/modules/ui/layout/expandable-list/components/ExpandableList.tsx index b1d19104e36..83e3714f3af 100644 --- a/packages/twenty-front/src/modules/ui/layout/expandable-list/components/ExpandableList.tsx +++ b/packages/twenty-front/src/modules/ui/layout/expandable-list/components/ExpandableList.tsx @@ -4,7 +4,7 @@ import { AnimatedContainer, Chip, ChipVariant } from 'twenty-ui'; import { ExpandedListDropdown } from '@/ui/layout/expandable-list/components/ExpandedListDropdown'; import { isFirstOverflowingChildElement } from '@/ui/layout/expandable-list/utils/isFirstOverflowingChildElement'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledContainer = styled.div` align-items: center; diff --git a/packages/twenty-front/src/modules/ui/layout/expandable-list/components/__stories__/ExpandableList.stories.tsx b/packages/twenty-front/src/modules/ui/layout/expandable-list/components/__stories__/ExpandableList.stories.tsx index e6a84470f35..374cce31167 100644 --- a/packages/twenty-front/src/modules/ui/layout/expandable-list/components/__stories__/ExpandableList.stories.tsx +++ b/packages/twenty-front/src/modules/ui/layout/expandable-list/components/__stories__/ExpandableList.stories.tsx @@ -2,14 +2,10 @@ import styled from '@emotion/styled'; import { expect } from '@storybook/jest'; import { Meta, StoryObj } from '@storybook/react'; import { userEvent, within } from '@storybook/test'; -import { - ComponentDecorator, - isDefined, - MAIN_COLOR_NAMES, - Tag, -} from 'twenty-ui'; import { ExpandableList } from '@/ui/layout/expandable-list/components/ExpandableList'; +import { isDefined } from 'twenty-shared'; +import { ComponentDecorator, MAIN_COLOR_NAMES, Tag } from 'twenty-ui'; const StyledContainer = styled.div` padding: ${({ theme }) => theme.spacing(1)}; diff --git a/packages/twenty-front/src/modules/ui/layout/expandable-list/utils/isFirstOverflowingChildElement.ts b/packages/twenty-front/src/modules/ui/layout/expandable-list/utils/isFirstOverflowingChildElement.ts index 6be49b7a896..89a5de0b5b3 100644 --- a/packages/twenty-front/src/modules/ui/layout/expandable-list/utils/isFirstOverflowingChildElement.ts +++ b/packages/twenty-front/src/modules/ui/layout/expandable-list/utils/isFirstOverflowingChildElement.ts @@ -1,4 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const isFirstOverflowingChildElement = ({ containerElement, diff --git a/packages/twenty-front/src/modules/ui/layout/hooks/useShowAuthModal.ts b/packages/twenty-front/src/modules/ui/layout/hooks/useShowAuthModal.ts index cdfa22e76b8..ee9af1da546 100644 --- a/packages/twenty-front/src/modules/ui/layout/hooks/useShowAuthModal.ts +++ b/packages/twenty-front/src/modules/ui/layout/hooks/useShowAuthModal.ts @@ -6,9 +6,9 @@ import { useOnboardingStatus } from '@/onboarding/hooks/useOnboardingStatus'; import { AppPath } from '@/types/AppPath'; import { isDefaultLayoutAuthModalVisibleState } from '@/ui/layout/states/isDefaultLayoutAuthModalVisibleState'; import { useSubscriptionStatus } from '@/workspace/hooks/useSubscriptionStatus'; +import { isDefined } from 'twenty-shared'; import { OnboardingStatus, SubscriptionStatus } from '~/generated/graphql'; import { useIsMatchingLocation } from '~/hooks/useIsMatchingLocation'; -import { isDefined } from '~/utils/isDefined'; export const useShowAuthModal = () => { const isMatchingLocation = useIsMatchingLocation(); diff --git a/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawer.tsx b/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawer.tsx index 2012d5ba990..a2498d774a1 100644 --- a/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawer.tsx +++ b/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawer.tsx @@ -6,7 +6,7 @@ import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { motion } from 'framer-motion'; import { useRecoilValue, useSetRecoilState } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isRightDrawerOpenState } from '../states/isRightDrawerOpenState'; import { rightDrawerPageState } from '../states/rightDrawerPageState'; diff --git a/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawerRouter.tsx b/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawerRouter.tsx index de47fbf3161..a2d5dbcc1b2 100644 --- a/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawerRouter.tsx +++ b/packages/twenty-front/src/modules/ui/layout/right-drawer/components/RightDrawerRouter.tsx @@ -14,7 +14,7 @@ import { RightDrawerWorkflowEditStep } from '@/workflow/workflow-steps/component import { RightDrawerWorkflowViewStep } from '@/workflow/workflow-steps/components/RightDrawerWorkflowViewStep'; import { RightDrawerWorkflowSelectAction } from '@/workflow/workflow-steps/workflow-actions/components/RightDrawerWorkflowSelectAction'; import { RightDrawerWorkflowSelectTriggerType } from '@/workflow/workflow-trigger/components/RightDrawerWorkflowSelectTriggerType'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { rightDrawerPageState } from '../states/rightDrawerPageState'; import { RightDrawerPages } from '../types/RightDrawerPages'; diff --git a/packages/twenty-front/src/modules/ui/layout/selectable-list/components/SelectableList.tsx b/packages/twenty-front/src/modules/ui/layout/selectable-list/components/SelectableList.tsx index 12efb1b612f..1816b60dcd9 100644 --- a/packages/twenty-front/src/modules/ui/layout/selectable-list/components/SelectableList.tsx +++ b/packages/twenty-front/src/modules/ui/layout/selectable-list/components/SelectableList.tsx @@ -3,8 +3,8 @@ import { ReactNode, useEffect } from 'react'; import { useSelectableListHotKeys } from '@/ui/layout/selectable-list/hooks/internal/useSelectableListHotKeys'; import { useSelectableList } from '@/ui/layout/selectable-list/hooks/useSelectableList'; import { SelectableListScope } from '@/ui/layout/selectable-list/scopes/SelectableListScope'; +import { isDefined } from 'twenty-shared'; import { arrayToChunks } from '~/utils/array/arrayToChunks'; -import { isDefined } from '~/utils/isDefined'; type SelectableListProps = { children: ReactNode; diff --git a/packages/twenty-front/src/modules/ui/layout/selectable-list/hooks/useSelectableList.ts b/packages/twenty-front/src/modules/ui/layout/selectable-list/hooks/useSelectableList.ts index 41a85a10a13..6609820d614 100644 --- a/packages/twenty-front/src/modules/ui/layout/selectable-list/hooks/useSelectableList.ts +++ b/packages/twenty-front/src/modules/ui/layout/selectable-list/hooks/useSelectableList.ts @@ -2,7 +2,7 @@ import { useRecoilCallback, useSetRecoilState } from 'recoil'; import { useSelectableListStates } from '@/ui/layout/selectable-list/hooks/internal/useSelectableListStates'; import { getSnapshotValue } from '@/ui/utilities/recoil-scope/utils/getSnapshotValue'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useSelectableList = (selectableListId?: string) => { const { diff --git a/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx b/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx index 114d196dd9c..502956effaa 100644 --- a/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx +++ b/packages/twenty-front/src/modules/ui/layout/show-page/components/ShowPageSummaryCard.tsx @@ -7,11 +7,11 @@ import Skeleton, { SkeletonTheme } from 'react-loading-skeleton'; import { AppTooltip, Avatar, AvatarType, IconComponent } from 'twenty-ui'; import { v4 as uuidV4 } from 'uuid'; +import { isDefined } from 'twenty-shared'; import { beautifyExactDateTime, beautifyPastDateRelativeToNow, } from '~/utils/date-utils'; -import { isDefined } from '~/utils/isDefined'; type ShowPageSummaryCardProps = { avatarPlaceholder: string; diff --git a/packages/twenty-front/src/modules/ui/layout/table/hooks/useSortedArray.ts b/packages/twenty-front/src/modules/ui/layout/table/hooks/useSortedArray.ts index bc582345ff3..101270e972f 100644 --- a/packages/twenty-front/src/modules/ui/layout/table/hooks/useSortedArray.ts +++ b/packages/twenty-front/src/modules/ui/layout/table/hooks/useSortedArray.ts @@ -2,7 +2,7 @@ import { sortedFieldByTableFamilyState } from '@/ui/layout/table/states/sortedFi import { TableMetadata } from '@/ui/layout/table/types/TableMetadata'; import { useMemo } from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useSortedArray = ( arrayToSort: T[], diff --git a/packages/twenty-front/src/modules/ui/navigation/bread-crumb/components/EditableBreadcrumbItem.tsx b/packages/twenty-front/src/modules/ui/navigation/bread-crumb/components/EditableBreadcrumbItem.tsx index d7d3e87022b..61d3bb423ab 100644 --- a/packages/twenty-front/src/modules/ui/navigation/bread-crumb/components/EditableBreadcrumbItem.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/bread-crumb/components/EditableBreadcrumbItem.tsx @@ -8,7 +8,7 @@ import styled from '@emotion/styled'; import { useRef, useState } from 'react'; import { useRecoilState } from 'recoil'; import { Key } from 'ts-key-enum'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useHotkeyScopeOnMount } from '~/hooks/useHotkeyScopeOnMount'; type EditableBreadcrumbItemProps = { diff --git a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx index 5a7231242bd..5f55f2707e1 100644 --- a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerInput.tsx @@ -4,7 +4,8 @@ import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useLis import styled from '@emotion/styled'; import { FocusEvent, useRef } from 'react'; import { Key } from 'ts-key-enum'; -import { IconComponent, TablerIconsProps, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconComponent, TablerIconsProps } from 'twenty-ui'; import { useHotkeyScopeOnMount } from '~/hooks/useHotkeyScopeOnMount'; type NavigationDrawerInputProps = { diff --git a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx index 4f61530b72b..4c91048073d 100644 --- a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerItem.tsx @@ -11,7 +11,7 @@ import styled from '@emotion/styled'; import { ReactNode } from 'react'; import { Link } from 'react-router-dom'; import { useRecoilState } from 'recoil'; -import { capitalize } from 'twenty-shared'; +import { capitalize, isDefined } from 'twenty-shared'; import { IconComponent, Label, @@ -19,7 +19,6 @@ import { Pill, TablerIconsProps, } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; const DEFAULT_INDENTATION_LEVEL = 1; diff --git a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerSectionTitle.tsx b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerSectionTitle.tsx index 0711b54b876..72c7215fcf9 100644 --- a/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerSectionTitle.tsx +++ b/packages/twenty-front/src/modules/ui/navigation/navigation-drawer/components/NavigationDrawerSectionTitle.tsx @@ -7,7 +7,7 @@ import { useIsMobile } from '@/ui/utilities/responsive/hooks/useIsMobile'; import styled from '@emotion/styled'; import React from 'react'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const StyledTitle = styled.div` align-items: center; diff --git a/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts b/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts index 45e0fd414ee..3947d83deb6 100644 --- a/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts +++ b/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useScopedHotkeys.ts @@ -4,7 +4,7 @@ import { useRecoilState } from 'recoil'; import { pendingHotkeyState } from '../states/internal/pendingHotkeysState'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { useScopedHotkeyCallback } from './useScopedHotkeyCallback'; type UseHotkeysOptionsWithoutBuggyOptions = Omit; diff --git a/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts b/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts index 1ab3fe8e04f..6b1432616f7 100644 --- a/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts +++ b/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSequenceScopedHotkeys.ts @@ -2,7 +2,7 @@ import { Options, useHotkeys } from 'react-hotkeys-hook'; import { Keys } from 'react-hotkeys-hook/dist/types'; import { useRecoilState } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { pendingHotkeyState } from '../states/internal/pendingHotkeysState'; diff --git a/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts b/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts index f4b82434a3f..247c10c7948 100644 --- a/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts +++ b/packages/twenty-front/src/modules/ui/utilities/hotkey/hooks/useSetHotkeyScope.ts @@ -1,7 +1,7 @@ import { useRecoilCallback } from 'recoil'; import { DEBUG_HOTKEY_SCOPE } from '@/ui/utilities/hotkey/hooks/useScopedHotkeyCallback'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { logDebug } from '~/utils/logDebug'; import { DEFAULT_HOTKEYS_SCOPE_CUSTOM_SCOPES } from '../constants/DefaultHotkeysScopeCustomScopes'; diff --git a/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutside.test.tsx b/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutside.test.tsx index 9d0a26347be..e06ef21a077 100644 --- a/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutside.test.tsx +++ b/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/__tests__/useListenClickOutside.test.tsx @@ -7,7 +7,7 @@ import { ClickOutsideMode, useListenClickOutside, } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const containerRef = React.createRef(); const nullRef = React.createRef(); diff --git a/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useClickOutsideListener.ts b/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useClickOutsideListener.ts index 819c9a29401..ca07c9d6add 100644 --- a/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useClickOutsideListener.ts +++ b/packages/twenty-front/src/modules/ui/utilities/pointer-event/hooks/useClickOutsideListener.ts @@ -4,8 +4,8 @@ import { useRecoilCallback } from 'recoil'; import { useClickOustideListenerStates } from '@/ui/utilities/pointer-event/hooks/useClickOustideListenerStates'; import { ClickOutsideListenerCallback } from '@/ui/utilities/pointer-event/types/ClickOutsideListenerCallback'; +import { isDefined } from 'twenty-shared'; import { toSpliced } from '~/utils/array/toSpliced'; -import { isDefined } from '~/utils/isDefined'; export const useClickOutsideListener = (componentId: string) => { const { diff --git a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilySelectorV2.ts b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilySelectorV2.ts index 33010ba9f38..50892106278 100644 --- a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilySelectorV2.ts +++ b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilySelectorV2.ts @@ -9,7 +9,7 @@ import { ComponentInstanceStateContext } from '@/ui/utilities/state/component-st import { globalComponentInstanceContextMap } from '@/ui/utilities/state/component-state/utils/globalComponentInstanceContextMap'; import { SelectorGetter } from '@/ui/utilities/state/types/SelectorGetter'; import { SelectorSetter } from '@/ui/utilities/state/types/SelectorSetter'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export function createComponentFamilySelectorV2< ValueType, diff --git a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilyStateV2.ts b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilyStateV2.ts index a19fbd6ee8b..c150e005061 100644 --- a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilyStateV2.ts +++ b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentFamilyStateV2.ts @@ -11,7 +11,7 @@ import { WrappedValue, } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; type CreateComponentFamilyStateArgs< ValueType, diff --git a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentSelectorV2.ts b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentSelectorV2.ts index d3a45dbfbe0..2eac2163281 100644 --- a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentSelectorV2.ts +++ b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentSelectorV2.ts @@ -9,7 +9,7 @@ import { ComponentStateKeyV2 } from '@/ui/utilities/state/component-state/types/ import { globalComponentInstanceContextMap } from '@/ui/utilities/state/component-state/utils/globalComponentInstanceContextMap'; import { SelectorGetter } from '@/ui/utilities/state/types/SelectorGetter'; import { SelectorSetter } from '@/ui/utilities/state/types/SelectorSetter'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export function createComponentSelectorV2(options: { key: string; diff --git a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2.ts b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2.ts index dc87cbf0cfa..3c4a9ceb914 100644 --- a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2.ts +++ b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2.ts @@ -4,7 +4,7 @@ import { ComponentStateV2 } from '@/ui/utilities/state/component-state/types/Com import { globalComponentInstanceContextMap } from '@/ui/utilities/state/component-state/utils/globalComponentInstanceContextMap'; import { AtomEffect, atomFamily } from 'recoil'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type CreateComponentInstanceStateArgs = { key: string; diff --git a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2Alpha.ts b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2Alpha.ts index 2533b054278..cbb412b4b41 100644 --- a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2Alpha.ts +++ b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/createComponentStateV2Alpha.ts @@ -4,7 +4,7 @@ import { ScopeInternalContext } from '@/ui/utilities/recoil-scope/scopes-interna import { RecoilComponentState } from '@/ui/utilities/state/component-state/types/RecoilComponentState'; import { RecoilComponentStateKey } from '@/ui/utilities/state/component-state/types/RecoilComponentStateKey'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type CreateComponentStateV2Type = { key: string; diff --git a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/globalComponentInstanceContextMap.ts b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/globalComponentInstanceContextMap.ts index 3dd5ce612f0..3b4a31a9f04 100644 --- a/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/globalComponentInstanceContextMap.ts +++ b/packages/twenty-front/src/modules/ui/utilities/state/component-state/utils/globalComponentInstanceContextMap.ts @@ -1,5 +1,5 @@ import { ComponentInstanceStateContext } from '@/ui/utilities/state/component-state/types/ComponentInstanceStateContext'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; class ComponentInstanceContextMap { constructor() { diff --git a/packages/twenty-front/src/modules/users/components/UserProviderEffect.tsx b/packages/twenty-front/src/modules/users/components/UserProviderEffect.tsx index 9fe65415bd7..94f1b45696b 100644 --- a/packages/twenty-front/src/modules/users/components/UserProviderEffect.tsx +++ b/packages/twenty-front/src/modules/users/components/UserProviderEffect.tsx @@ -16,10 +16,10 @@ import { detectTimeZone } from '@/localization/utils/detectTimeZone'; import { getDateFormatFromWorkspaceDateFormat } from '@/localization/utils/getDateFormatFromWorkspaceDateFormat'; import { getTimeFormatFromWorkspaceTimeFormat } from '@/localization/utils/getTimeFormatFromWorkspaceTimeFormat'; import { ColorScheme } from '@/workspace-member/types/WorkspaceMember'; +import { isDefined } from 'twenty-shared'; import { WorkspaceMember } from '~/generated-metadata/graphql'; import { useGetCurrentUserQuery } from '~/generated/graphql'; import { dynamicActivate } from '~/utils/i18n/dynamicActivate'; -import { isDefined } from '~/utils/isDefined'; export const UserProviderEffect = () => { const [isLoading, setIsLoading] = useState(true); diff --git a/packages/twenty-front/src/modules/views/components/AdvancedFilterDropdownButton.tsx b/packages/twenty-front/src/modules/views/components/AdvancedFilterDropdownButton.tsx index 351f3c3d1c0..560dc866ac3 100644 --- a/packages/twenty-front/src/modules/views/components/AdvancedFilterDropdownButton.tsx +++ b/packages/twenty-front/src/modules/views/components/AdvancedFilterDropdownButton.tsx @@ -8,7 +8,7 @@ import { AdvancedFilterChip } from '@/views/components/AdvancedFilterChip'; import { ADVANCED_FILTER_DROPDOWN_ID } from '@/views/constants/AdvancedFilterDropdownId'; import { useDeleteCombinedViewFilters } from '@/views/hooks/useDeleteCombinedViewFilters'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const AdvancedFilterDropdownButton = () => { const { deleteCombinedViewFilter } = useDeleteCombinedViewFilters(); diff --git a/packages/twenty-front/src/modules/views/components/EditableFilterDropdownButton.tsx b/packages/twenty-front/src/modules/views/components/EditableFilterDropdownButton.tsx index e663f7e2f60..146bcc41a35 100644 --- a/packages/twenty-front/src/modules/views/components/EditableFilterDropdownButton.tsx +++ b/packages/twenty-front/src/modules/views/components/EditableFilterDropdownButton.tsx @@ -17,7 +17,7 @@ import { RecordFilterOperand } from '@/object-record/record-filter/types/RecordF import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2'; import { useDeleteCombinedViewFilters } from '@/views/hooks/useDeleteCombinedViewFilters'; import { availableFilterDefinitionsComponentState } from '@/views/states/availableFilterDefinitionsComponentState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type EditableFilterDropdownButtonProps = { viewFilterDropdownId: string; diff --git a/packages/twenty-front/src/modules/views/components/QueryParamsViewIdEffect.tsx b/packages/twenty-front/src/modules/views/components/QueryParamsViewIdEffect.tsx index ced095e33ad..d0ea6e34403 100644 --- a/packages/twenty-front/src/modules/views/components/QueryParamsViewIdEffect.tsx +++ b/packages/twenty-front/src/modules/views/components/QueryParamsViewIdEffect.tsx @@ -9,8 +9,8 @@ import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState'; import { isUndefined } from '@sniptt/guards'; import { useEffect } from 'react'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; export const QueryParamsViewIdEffect = () => { const { getFiltersFromQueryParams, viewIdQueryParam } = diff --git a/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx b/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx index 1a915825e08..21e9ac7822d 100644 --- a/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx +++ b/packages/twenty-front/src/modules/views/components/ViewBarDetails.tsx @@ -22,7 +22,7 @@ import { useResetUnsavedViewStates } from '@/views/hooks/useResetUnsavedViewStat import { availableSortDefinitionsComponentState } from '@/views/states/availableSortDefinitionsComponentState'; import { isViewBarExpandedComponentState } from '@/views/states/isViewBarExpandedComponentState'; import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { VariantFilterChip } from './VariantFilterChip'; export type ViewBarDetailsProps = { diff --git a/packages/twenty-front/src/modules/views/components/ViewBarFilterEffect.tsx b/packages/twenty-front/src/modules/views/components/ViewBarFilterEffect.tsx index 61f69af4961..4fc803b86a9 100644 --- a/packages/twenty-front/src/modules/views/components/ViewBarFilterEffect.tsx +++ b/packages/twenty-front/src/modules/views/components/ViewBarFilterEffect.tsx @@ -11,7 +11,7 @@ import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { availableFilterDefinitionsComponentState } from '@/views/states/availableFilterDefinitionsComponentState'; import { jsonRelationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/jsonRelationFilterValueSchema'; import { simpleRelationFilterValueSchema } from '@/views/view-filter-value/validation-schemas/simpleRelationFilterValueSchema'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type ViewBarFilterEffectProps = { filterDropdownId: string; diff --git a/packages/twenty-front/src/modules/views/components/ViewBarRecordFilterEffect.tsx b/packages/twenty-front/src/modules/views/components/ViewBarRecordFilterEffect.tsx index e5b78143207..344fd075356 100644 --- a/packages/twenty-front/src/modules/views/components/ViewBarRecordFilterEffect.tsx +++ b/packages/twenty-front/src/modules/views/components/ViewBarRecordFilterEffect.tsx @@ -8,7 +8,7 @@ import { currentViewIdComponentState } from '@/views/states/currentViewIdCompone import { View } from '@/views/types/View'; import { mapViewFiltersToFilters } from '@/views/utils/mapViewFiltersToFilters'; import { useEffect } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const ViewBarRecordFilterEffect = () => { const { records: views, isDataPrefetched } = usePrefetchedData( diff --git a/packages/twenty-front/src/modules/views/components/ViewBarSortEffect.tsx b/packages/twenty-front/src/modules/views/components/ViewBarSortEffect.tsx index c45dc2ddded..5e13f2d1752 100644 --- a/packages/twenty-front/src/modules/views/components/ViewBarSortEffect.tsx +++ b/packages/twenty-front/src/modules/views/components/ViewBarSortEffect.tsx @@ -6,7 +6,7 @@ import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/ import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2'; import { useUpsertCombinedViewSorts } from '@/views/hooks/useUpsertCombinedViewSorts'; import { availableSortDefinitionsComponentState } from '@/views/states/availableSortDefinitionsComponentState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const ViewBarSortEffect = () => { const { upsertCombinedViewSort } = useUpsertCombinedViewSorts(); diff --git a/packages/twenty-front/src/modules/views/components/ViewFieldsVisibilityDropdownSection.tsx b/packages/twenty-front/src/modules/views/components/ViewFieldsVisibilityDropdownSection.tsx index 90d1375dff6..6ace2939c38 100644 --- a/packages/twenty-front/src/modules/views/components/ViewFieldsVisibilityDropdownSection.tsx +++ b/packages/twenty-front/src/modules/views/components/ViewFieldsVisibilityDropdownSection.tsx @@ -20,8 +20,8 @@ import { DraggableItem } from '@/ui/layout/draggable-list/components/DraggableIt import { DraggableList } from '@/ui/layout/draggable-list/components/DraggableList'; import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; import { StyledDropdownMenuSubheader } from '@/ui/layout/dropdown/components/StyledDropdownMenuSubheader'; +import { isDefined } from 'twenty-shared'; import { groupArrayItemsBy } from '~/utils/array/groupArrayItemsBy'; -import { isDefined } from '~/utils/isDefined'; type ViewFieldsVisibilityDropdownSectionProps = { fields: Omit, 'size'>[]; diff --git a/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterGroupRecords.ts b/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterGroupRecords.ts index 0987942da0c..edad40cfffb 100644 --- a/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterGroupRecords.ts +++ b/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterGroupRecords.ts @@ -13,7 +13,7 @@ import { useDestroyOneRecordMutation } from '@/object-record/hooks/useDestroyOne import { useUpdateOneRecordMutation } from '@/object-record/hooks/useUpdateOneRecordMutation'; import { GraphQLView } from '@/views/types/GraphQLView'; import { ViewFilterGroup } from '@/views/types/ViewFilterGroup'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const usePersistViewFilterGroupRecords = () => { const { objectMetadataItem } = useObjectMetadataItem({ diff --git a/packages/twenty-front/src/modules/views/hooks/internal/useViewFromQueryParams.ts b/packages/twenty-front/src/modules/views/hooks/internal/useViewFromQueryParams.ts index 983e3c602c3..faac1135801 100644 --- a/packages/twenty-front/src/modules/views/hooks/internal/useViewFromQueryParams.ts +++ b/packages/twenty-front/src/modules/views/hooks/internal/useViewFromQueryParams.ts @@ -17,7 +17,7 @@ import { generateFindManyRecordsQuery } from '@/object-record/utils/generateFind import { ViewFilter } from '@/views/types/ViewFilter'; import { ViewFilterOperand } from '@/views/types/ViewFilterOperand'; import { relationFilterValueSchemaObject } from '@/views/view-filter-value/validation-schemas/jsonRelationFilterValueSchema'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; const filterQueryParamsSchema = z.object({ diff --git a/packages/twenty-front/src/modules/views/hooks/useApplyCurrentViewFiltersToCurrentRecordFilters.ts b/packages/twenty-front/src/modules/views/hooks/useApplyCurrentViewFiltersToCurrentRecordFilters.ts index 1bbb5e3660e..c1ad5920f34 100644 --- a/packages/twenty-front/src/modules/views/hooks/useApplyCurrentViewFiltersToCurrentRecordFilters.ts +++ b/packages/twenty-front/src/modules/views/hooks/useApplyCurrentViewFiltersToCurrentRecordFilters.ts @@ -8,7 +8,7 @@ import { currentViewIdComponentState } from '@/views/states/currentViewIdCompone import { View } from '@/views/types/View'; import { mapViewFiltersToFilters } from '@/views/utils/mapViewFiltersToFilters'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useApplyCurrentViewFiltersToCurrentRecordFilters = () => { const { records: views } = usePrefetchedData(PrefetchKey.AllViews); diff --git a/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts b/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts index 5d8e87d1f6a..440fb8e6c1f 100644 --- a/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts +++ b/packages/twenty-front/src/modules/views/hooks/useCreateViewFromCurrentView.ts @@ -19,7 +19,7 @@ import { View } from '@/views/types/View'; import { ViewGroup } from '@/views/types/ViewGroup'; import { ViewType } from '@/views/types/ViewType'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { v4 } from 'uuid'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; diff --git a/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewFilters.ts b/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewFilters.ts index af6ef7cba2e..1bdf6aec322 100644 --- a/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewFilters.ts +++ b/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewFilters.ts @@ -6,7 +6,7 @@ import { useGetViewFromCache } from '@/views/hooks/useGetViewFromCache'; import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState'; import { unsavedToDeleteViewFilterIdsComponentFamilyState } from '@/views/states/unsavedToDeleteViewFilterIdsComponentFamilyState'; import { unsavedToUpsertViewFiltersComponentFamilyState } from '@/views/states/unsavedToUpsertViewFiltersComponentFamilyState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useDeleteCombinedViewFilters = (viewBarComponentId?: string) => { const unsavedToUpsertViewFiltersCallbackState = diff --git a/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewSorts.ts b/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewSorts.ts index 4ff252cab65..048b06dce0c 100644 --- a/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewSorts.ts +++ b/packages/twenty-front/src/modules/views/hooks/useDeleteCombinedViewSorts.ts @@ -6,7 +6,7 @@ import { useGetViewFromCache } from '@/views/hooks/useGetViewFromCache'; import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState'; import { unsavedToDeleteViewSortIdsComponentFamilyState } from '@/views/states/unsavedToDeleteViewSortIdsComponentFamilyState'; import { unsavedToUpsertViewSortsComponentFamilyState } from '@/views/states/unsavedToUpsertViewSortsComponentFamilyState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useDeleteCombinedViewSorts = (viewBarComponentId?: string) => { const currentViewIdCallbackState = useRecoilComponentCallbackStateV2( diff --git a/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilterGroups.ts b/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilterGroups.ts index e235fd79d04..c1300f2b829 100644 --- a/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilterGroups.ts +++ b/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilterGroups.ts @@ -8,7 +8,7 @@ import { unsavedToDeleteViewFilterGroupIdsComponentFamilyState } from '@/views/s import { unsavedToUpsertViewFilterGroupsComponentFamilyState } from '@/views/states/unsavedToUpsertViewFilterGroupsComponentFamilyState'; import { View } from '@/views/types/View'; import { getCombinedViewFilterGroups } from '@/views/utils/getCombinedViewFilterGroups'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useGetViewFilterGroupsCombined = (viewBarComponentId?: string) => { const { records: views } = usePrefetchedData(PrefetchKey.AllViews); diff --git a/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilters.ts b/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilters.ts index 20673087ed0..1a72e335390 100644 --- a/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilters.ts +++ b/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewFilters.ts @@ -8,7 +8,7 @@ import { unsavedToDeleteViewFilterIdsComponentFamilyState } from '@/views/states import { unsavedToUpsertViewFiltersComponentFamilyState } from '@/views/states/unsavedToUpsertViewFiltersComponentFamilyState'; import { View } from '@/views/types/View'; import { getCombinedViewFilters } from '@/views/utils/getCombinedViewFilters'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useGetViewFiltersCombined = (viewBarComponentId?: string) => { const { records: views } = usePrefetchedData(PrefetchKey.AllViews); diff --git a/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewSorts.ts b/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewSorts.ts index f275b6dc0e0..7b3131da668 100644 --- a/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewSorts.ts +++ b/packages/twenty-front/src/modules/views/hooks/useGetCombinedViewSorts.ts @@ -8,7 +8,7 @@ import { unsavedToDeleteViewSortIdsComponentFamilyState } from '@/views/states/u import { unsavedToUpsertViewSortsComponentFamilyState } from '@/views/states/unsavedToUpsertViewSortsComponentFamilyState'; import { View } from '@/views/types/View'; import { getCombinedViewSorts } from '@/views/utils/getCombinedViewSorts'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; // TODO: fix naming export const useGetViewSortsCombined = (viewBarComponentId?: string) => { diff --git a/packages/twenty-front/src/modules/views/hooks/useGetCurrentView.ts b/packages/twenty-front/src/modules/views/hooks/useGetCurrentView.ts index 80d1d4c7b84..9c25b8722ec 100644 --- a/packages/twenty-front/src/modules/views/hooks/useGetCurrentView.ts +++ b/packages/twenty-front/src/modules/views/hooks/useGetCurrentView.ts @@ -21,7 +21,7 @@ import { getCombinedViewFilterGroups } from '@/views/utils/getCombinedViewFilter import { getCombinedViewFilters } from '@/views/utils/getCombinedViewFilters'; import { getCombinedViewSorts } from '@/views/utils/getCombinedViewSorts'; import { getObjectMetadataItemViews } from '@/views/utils/getObjectMetadataItemViews'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useGetCurrentView = (viewBarInstanceId?: string) => { const instanceId = useAvailableComponentInstanceIdOrThrow( diff --git a/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFields.ts b/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFields.ts index 7d614988140..832999fb885 100644 --- a/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFields.ts +++ b/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFields.ts @@ -6,8 +6,8 @@ import { useGetViewFromCache } from '@/views/hooks/useGetViewFromCache'; import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState'; import { isPersistingViewFieldsComponentState } from '@/views/states/isPersistingViewFieldsComponentState'; import { ViewField } from '@/views/types/ViewField'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export const useSaveCurrentViewFields = (viewBarComponentId?: string) => { diff --git a/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFiltersAndSorts.ts b/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFiltersAndSorts.ts index aa04c55338d..d74d8528be9 100644 --- a/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFiltersAndSorts.ts +++ b/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewFiltersAndSorts.ts @@ -12,7 +12,7 @@ import { unsavedToDeleteViewFilterGroupIdsComponentFamilyState } from '@/views/s import { unsavedToDeleteViewSortIdsComponentFamilyState } from '@/views/states/unsavedToDeleteViewSortIdsComponentFamilyState'; import { unsavedToUpsertViewFilterGroupsComponentFamilyState } from '@/views/states/unsavedToUpsertViewFilterGroupsComponentFamilyState'; import { unsavedToUpsertViewSortsComponentFamilyState } from '@/views/states/unsavedToUpsertViewSortsComponentFamilyState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export const useSaveCurrentViewFiltersAndSorts = ( diff --git a/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewGroups.ts b/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewGroups.ts index 246c03f03f0..317527d48f2 100644 --- a/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewGroups.ts +++ b/packages/twenty-front/src/modules/views/hooks/useSaveCurrentViewGroups.ts @@ -5,8 +5,8 @@ import { usePersistViewGroupRecords } from '@/views/hooks/internal/usePersistVie import { useGetViewFromCache } from '@/views/hooks/useGetViewFromCache'; import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState'; import { ViewGroup } from '@/views/types/ViewGroup'; +import { isDefined } from 'twenty-shared'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; export const useSaveCurrentViewGroups = (viewBarComponentId?: string) => { diff --git a/packages/twenty-front/src/modules/views/hooks/useSaveRecordFiltersToViewFilters.ts b/packages/twenty-front/src/modules/views/hooks/useSaveRecordFiltersToViewFilters.ts index 3a3e8b90388..ae00c8ee9fc 100644 --- a/packages/twenty-front/src/modules/views/hooks/useSaveRecordFiltersToViewFilters.ts +++ b/packages/twenty-front/src/modules/views/hooks/useSaveRecordFiltersToViewFilters.ts @@ -8,7 +8,7 @@ import { getViewFiltersToDelete } from '@/views/utils/getViewFiltersToDelete'; import { getViewFiltersToUpdate } from '@/views/utils/getViewFiltersToUpdate'; import { mapRecordFilterToViewFilter } from '@/views/utils/mapRecordFilterToViewFilter'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useSaveRecordFiltersToViewFilters = () => { const { diff --git a/packages/twenty-front/src/modules/views/hooks/useUpdateCurrentView.ts b/packages/twenty-front/src/modules/views/hooks/useUpdateCurrentView.ts index 910548d7380..8f3e151302c 100644 --- a/packages/twenty-front/src/modules/views/hooks/useUpdateCurrentView.ts +++ b/packages/twenty-front/src/modules/views/hooks/useUpdateCurrentView.ts @@ -5,7 +5,7 @@ import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; import { useRecoilComponentCallbackStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentCallbackStateV2'; import { currentViewIdComponentState } from '@/views/states/currentViewIdComponentState'; import { GraphQLView } from '@/views/types/GraphQLView'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useUpdateCurrentView = (viewBarComponentId?: string) => { const currentViewIdCallbackState = useRecoilComponentCallbackStateV2( diff --git a/packages/twenty-front/src/modules/views/hooks/useUpdateView.ts b/packages/twenty-front/src/modules/views/hooks/useUpdateView.ts index d00201e5fd0..fe85b71690d 100644 --- a/packages/twenty-front/src/modules/views/hooks/useUpdateView.ts +++ b/packages/twenty-front/src/modules/views/hooks/useUpdateView.ts @@ -2,7 +2,7 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; import { GraphQLView } from '@/views/types/GraphQLView'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useUpdateView = () => { const { updateOneRecord } = useUpdateOneRecord({ diff --git a/packages/twenty-front/src/modules/views/hooks/useUpdateViewField.ts b/packages/twenty-front/src/modules/views/hooks/useUpdateViewField.ts index 2f73b062ca1..6756c0cc9c4 100644 --- a/packages/twenty-front/src/modules/views/hooks/useUpdateViewField.ts +++ b/packages/twenty-front/src/modules/views/hooks/useUpdateViewField.ts @@ -2,7 +2,7 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; import { ViewField } from '@/views/types/ViewField'; import { useRecoilCallback } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useUpdateViewField = () => { const { updateOneRecord } = useUpdateOneRecord({ diff --git a/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewFilters.ts b/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewFilters.ts index 2417f29c6ef..0457919fd41 100644 --- a/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewFilters.ts +++ b/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewFilters.ts @@ -9,7 +9,7 @@ import { unsavedToDeleteViewFilterIdsComponentFamilyState } from '@/views/states import { unsavedToUpsertViewFiltersComponentFamilyState } from '@/views/states/unsavedToUpsertViewFiltersComponentFamilyState'; import { ViewFilter } from '@/views/types/ViewFilter'; import { shouldReplaceFilter } from '@/views/utils/shouldReplaceFilter'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useUpsertCombinedViewFilters = (viewBarComponentId?: string) => { const unsavedToUpsertViewFiltersCallbackState = diff --git a/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewSorts.ts b/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewSorts.ts index d455c6f6307..1983a1ea6bd 100644 --- a/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewSorts.ts +++ b/packages/twenty-front/src/modules/views/hooks/useUpsertCombinedViewSorts.ts @@ -9,7 +9,7 @@ import { currentViewIdComponentState } from '@/views/states/currentViewIdCompone import { unsavedToDeleteViewSortIdsComponentFamilyState } from '@/views/states/unsavedToDeleteViewSortIdsComponentFamilyState'; import { unsavedToUpsertViewSortsComponentFamilyState } from '@/views/states/unsavedToUpsertViewSortsComponentFamilyState'; import { ViewSort } from '@/views/types/ViewSort'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const useUpsertCombinedViewSorts = (viewBarComponentId?: string) => { const currentViewIdCallbackState = useRecoilComponentCallbackStateV2( diff --git a/packages/twenty-front/src/modules/views/utils/getQueryVariablesFromView.ts b/packages/twenty-front/src/modules/views/utils/getQueryVariablesFromView.ts index 2f3773df95d..b7c9ec05212 100644 --- a/packages/twenty-front/src/modules/views/utils/getQueryVariablesFromView.ts +++ b/packages/twenty-front/src/modules/views/utils/getQueryVariablesFromView.ts @@ -9,7 +9,7 @@ import { computeViewRecordGqlOperationFilter } from '@/object-record/record-filt import { View } from '@/views/types/View'; import { mapViewFiltersToFilters } from '@/views/utils/mapViewFiltersToFilters'; import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getQueryVariablesFromView = ({ view, diff --git a/packages/twenty-front/src/modules/views/utils/getViewFiltersToCreate.ts b/packages/twenty-front/src/modules/views/utils/getViewFiltersToCreate.ts index a222a1daf51..aff45654a80 100644 --- a/packages/twenty-front/src/modules/views/utils/getViewFiltersToCreate.ts +++ b/packages/twenty-front/src/modules/views/utils/getViewFiltersToCreate.ts @@ -1,5 +1,5 @@ import { ViewFilter } from '@/views/types/ViewFilter'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const getViewFiltersToCreate = ( currentViewFilters: ViewFilter[], diff --git a/packages/twenty-front/src/modules/views/utils/getViewFiltersToUpdate.ts b/packages/twenty-front/src/modules/views/utils/getViewFiltersToUpdate.ts index d30ee10b264..b0776841e5f 100644 --- a/packages/twenty-front/src/modules/views/utils/getViewFiltersToUpdate.ts +++ b/packages/twenty-front/src/modules/views/utils/getViewFiltersToUpdate.ts @@ -1,6 +1,6 @@ import { ViewFilter } from '@/views/types/ViewFilter'; import { areViewFiltersEqual } from '@/views/utils/areViewFiltersEqual'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const getViewFiltersToUpdate = ( currentViewFilters: ViewFilter[], diff --git a/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts b/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts index 4019e361964..dd431c6c29a 100644 --- a/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts +++ b/packages/twenty-front/src/modules/views/utils/mapViewFieldsToColumnDefinitions.ts @@ -1,8 +1,8 @@ import { FieldMetadata } from '@/object-record/record-field/types/FieldMetadata'; import { ColumnDefinition } from '@/object-record/record-table/types/ColumnDefinition'; +import { isDefined } from 'twenty-shared'; import { mapArrayToObject } from '~/utils/array/mapArrayToObject'; import { moveArrayItem } from '~/utils/array/moveArrayItem'; -import { isDefined } from '~/utils/isDefined'; import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull'; import { ViewField } from '../types/ViewField'; diff --git a/packages/twenty-front/src/modules/views/utils/mapViewFiltersToFilters.ts b/packages/twenty-front/src/modules/views/utils/mapViewFiltersToFilters.ts index feff9e41d64..b4da197ea98 100644 --- a/packages/twenty-front/src/modules/views/utils/mapViewFiltersToFilters.ts +++ b/packages/twenty-front/src/modules/views/utils/mapViewFiltersToFilters.ts @@ -1,5 +1,5 @@ import { RecordFilter } from '@/object-record/record-filter/types/RecordFilter'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { RecordFilterDefinition } from '@/object-record/record-filter/types/RecordFilterDefinition'; import { ViewFilter } from '../types/ViewFilter'; diff --git a/packages/twenty-front/src/modules/views/utils/mapViewGroupsToRecordGroupDefinitions.ts b/packages/twenty-front/src/modules/views/utils/mapViewGroupsToRecordGroupDefinitions.ts index 4bd759ba5e6..3b7ad89f7fd 100644 --- a/packages/twenty-front/src/modules/views/utils/mapViewGroupsToRecordGroupDefinitions.ts +++ b/packages/twenty-front/src/modules/views/utils/mapViewGroupsToRecordGroupDefinitions.ts @@ -1,4 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { diff --git a/packages/twenty-front/src/modules/views/utils/mapViewSortsToSorts.ts b/packages/twenty-front/src/modules/views/utils/mapViewSortsToSorts.ts index 34e8c2f07c4..7e414196672 100644 --- a/packages/twenty-front/src/modules/views/utils/mapViewSortsToSorts.ts +++ b/packages/twenty-front/src/modules/views/utils/mapViewSortsToSorts.ts @@ -1,6 +1,6 @@ import { Sort } from '@/object-record/object-sort-dropdown/types/Sort'; import { SortDefinition } from '@/object-record/object-sort-dropdown/types/SortDefinition'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { ViewSort } from '../types/ViewSort'; diff --git a/packages/twenty-front/src/modules/views/utils/shouldReplaceFilter.ts b/packages/twenty-front/src/modules/views/utils/shouldReplaceFilter.ts index 2e4d0f1c8dc..a90ef228f0d 100644 --- a/packages/twenty-front/src/modules/views/utils/shouldReplaceFilter.ts +++ b/packages/twenty-front/src/modules/views/utils/shouldReplaceFilter.ts @@ -1,5 +1,5 @@ import { RecordFilter } from '@/object-record/record-filter/types/RecordFilter'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const shouldReplaceFilter = ( oldFilter: Pick, diff --git a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerContentEffect.tsx b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerContentEffect.tsx index 767f3cf6871..eaacac4173c 100644 --- a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerContentEffect.tsx +++ b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerContentEffect.tsx @@ -14,7 +14,7 @@ import { viewPickerKanbanFieldMetadataIdComponentState } from '@/views/view-pick import { viewPickerReferenceViewIdComponentState } from '@/views/view-picker/states/viewPickerReferenceViewIdComponentState'; import { viewPickerSelectedIconComponentState } from '@/views/view-picker/states/viewPickerSelectedIconComponentState'; import { viewPickerTypeComponentState } from '@/views/view-picker/states/viewPickerTypeComponentState'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const ViewPickerContentEffect = () => { const setViewPickerSelectedIcon = useSetRecoilComponentStateV2( diff --git a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerDropdown.tsx b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerDropdown.tsx index 59709a48f14..1c0c08143d7 100644 --- a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerDropdown.tsx +++ b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerDropdown.tsx @@ -22,7 +22,7 @@ import { ViewPickerListContent } from '@/views/view-picker/components/ViewPicker import { VIEW_PICKER_DROPDOWN_ID } from '@/views/view-picker/constants/ViewPickerDropdownId'; import { useUpdateViewFromCurrentState } from '@/views/view-picker/hooks/useUpdateViewFromCurrentState'; import { useViewPickerMode } from '@/views/view-picker/hooks/useViewPickerMode'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; const StyledDropdownLabelAdornments = styled.span` align-items: center; diff --git a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx index 0d6155d2e3c..ecc9b599e9f 100644 --- a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx +++ b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx @@ -14,8 +14,8 @@ import { useUpdateView } from '@/views/hooks/useUpdateView'; import { ViewPickerOptionDropdown } from '@/views/view-picker/components/ViewPickerOptionDropdown'; import { useViewPickerMode } from '@/views/view-picker/hooks/useViewPickerMode'; import { viewPickerReferenceViewIdComponentState } from '@/views/view-picker/states/viewPickerReferenceViewIdComponentState'; +import { isDefined } from 'twenty-shared'; import { moveArrayItem } from '~/utils/array/moveArrayItem'; -import { isDefined } from '~/utils/isDefined'; const StyledBoldDropdownMenuItemsContainer = styled(DropdownMenuItemsContainer)` font-weight: ${({ theme }) => theme.font.weight.regular}; diff --git a/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts b/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts index c5ab5bb2e66..5d73ebe8107 100644 --- a/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts +++ b/packages/twenty-front/src/modules/views/view-picker/hooks/useGetAvailableFieldsForKanban.ts @@ -7,9 +7,9 @@ import { SettingsPath } from '@/types/SettingsPath'; import { navigationMemorizedUrlState } from '@/ui/navigation/states/navigationMemorizedUrlState'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { viewObjectMetadataIdComponentState } from '@/views/states/viewObjectMetadataIdComponentState'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; -import { isDefined } from '~/utils/isDefined'; export const useGetAvailableFieldsForKanban = () => { const viewObjectMetadataId = useRecoilComponentValueV2( diff --git a/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowHeader.tsx b/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowHeader.tsx index 0127d7b7206..fb10a84bf60 100644 --- a/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowHeader.tsx +++ b/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowHeader.tsx @@ -8,6 +8,7 @@ import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithC import { useTheme } from '@emotion/react'; import { useLingui } from '@lingui/react/macro'; +import { isDefined } from 'twenty-shared'; import { Button, IconPlayerPlay, @@ -15,7 +16,6 @@ import { IconPower, IconSettingsAutomation, IconTrash, - isDefined, } from 'twenty-ui'; import { assertWorkflowWithCurrentVersionIsDefined } from '../utils/assertWorkflowWithCurrentVersionIsDefined'; diff --git a/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowVersionHeader.tsx b/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowVersionHeader.tsx index 95ef0c28ccd..8b4771f9401 100644 --- a/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowVersionHeader.tsx +++ b/packages/twenty-front/src/modules/workflow/components/RecordShowPageWorkflowVersionHeader.tsx @@ -10,13 +10,9 @@ import { useWorkflowVersion } from '@/workflow/hooks/useWorkflowVersion'; import { openOverrideWorkflowDraftConfirmationModalState } from '@/workflow/states/openOverrideWorkflowDraftConfirmationModalState'; import { Workflow, WorkflowVersion } from '@/workflow/types/Workflow'; import { useSetRecoilState } from 'recoil'; -import { - Button, - IconPencil, - IconPlayerStop, - IconPower, - isDefined, -} from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { Button, IconPencil, IconPlayerStop, IconPower } from 'twenty-ui'; + import { useNavigateApp } from '~/hooks/useNavigateApp'; export const RecordShowPageWorkflowVersionHeader = ({ diff --git a/packages/twenty-front/src/modules/workflow/components/WorkflowRunOutputVisualizer.tsx b/packages/twenty-front/src/modules/workflow/components/WorkflowRunOutputVisualizer.tsx index 08d7703a062..836d3bea16c 100644 --- a/packages/twenty-front/src/modules/workflow/components/WorkflowRunOutputVisualizer.tsx +++ b/packages/twenty-front/src/modules/workflow/components/WorkflowRunOutputVisualizer.tsx @@ -1,6 +1,7 @@ import { useWorkflowRun } from '@/workflow/hooks/useWorkflowRun'; import styled from '@emotion/styled'; -import { CodeEditor, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { CodeEditor } from 'twenty-ui'; const StyledSourceCodeContainer = styled.div` margin: ${({ theme }) => theme.spacing(4)}; diff --git a/packages/twenty-front/src/modules/workflow/components/WorkflowRunVersionVisualizer.tsx b/packages/twenty-front/src/modules/workflow/components/WorkflowRunVersionVisualizer.tsx index 71ea331d478..dd6ac30f452 100644 --- a/packages/twenty-front/src/modules/workflow/components/WorkflowRunVersionVisualizer.tsx +++ b/packages/twenty-front/src/modules/workflow/components/WorkflowRunVersionVisualizer.tsx @@ -1,7 +1,7 @@ import { useWorkflowRun } from '@/workflow/hooks/useWorkflowRun'; import { WorkflowVersionVisualizer } from '@/workflow/workflow-diagram/components/WorkflowVersionVisualizer'; import { WorkflowVersionVisualizerEffect } from '@/workflow/workflow-diagram/components/WorkflowVersionVisualizerEffect'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const WorkflowRunVersionVisualizer = ({ workflowRunId, diff --git a/packages/twenty-front/src/modules/workflow/hooks/useAllActiveWorkflowVersions.ts b/packages/twenty-front/src/modules/workflow/hooks/useAllActiveWorkflowVersions.ts index 916634b248a..37425e23243 100644 --- a/packages/twenty-front/src/modules/workflow/hooks/useAllActiveWorkflowVersions.ts +++ b/packages/twenty-front/src/modules/workflow/hooks/useAllActiveWorkflowVersions.ts @@ -8,7 +8,7 @@ import { WorkflowTriggerType, WorkflowVersion, } from '@/workflow/types/Workflow'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useAllActiveWorkflowVersions = ({ objectMetadataItem, diff --git a/packages/twenty-front/src/modules/workflow/hooks/useDeleteWorkflowVersionStep.ts b/packages/twenty-front/src/modules/workflow/hooks/useDeleteWorkflowVersionStep.ts index 75a0717939b..8ec72a7f670 100644 --- a/packages/twenty-front/src/modules/workflow/hooks/useDeleteWorkflowVersionStep.ts +++ b/packages/twenty-front/src/modules/workflow/hooks/useDeleteWorkflowVersionStep.ts @@ -1,18 +1,18 @@ +import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; +import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; +import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache'; +import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache'; +import { DELETE_WORKFLOW_VERSION_STEP } from '@/workflow/graphql/mutations/deleteWorkflowVersionStep'; +import { WorkflowVersion } from '@/workflow/types/Workflow'; import { useApolloClient, useMutation } from '@apollo/client'; +import { isDefined } from 'twenty-shared'; import { + DeleteWorkflowVersionStepInput, DeleteWorkflowVersionStepMutation, DeleteWorkflowVersionStepMutationVariables, - DeleteWorkflowVersionStepInput, WorkflowAction, } from '~/generated/graphql'; -import { DELETE_WORKFLOW_VERSION_STEP } from '@/workflow/graphql/mutations/deleteWorkflowVersionStep'; -import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; -import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; -import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; -import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache'; -import { isDefined } from 'twenty-ui'; -import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache'; -import { WorkflowVersion } from '@/workflow/types/Workflow'; export const useDeleteWorkflowVersionStep = () => { const apolloClient = useApolloClient(); diff --git a/packages/twenty-front/src/modules/workflow/hooks/useWorkflowWithCurrentVersion.ts b/packages/twenty-front/src/modules/workflow/hooks/useWorkflowWithCurrentVersion.ts index b67e8f87407..859a0a9855c 100644 --- a/packages/twenty-front/src/modules/workflow/hooks/useWorkflowWithCurrentVersion.ts +++ b/packages/twenty-front/src/modules/workflow/hooks/useWorkflowWithCurrentVersion.ts @@ -5,7 +5,7 @@ import { WorkflowWithCurrentVersion, } from '@/workflow/types/Workflow'; import { useMemo } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useWorkflowWithCurrentVersion = ( workflowId: string | undefined, diff --git a/packages/twenty-front/src/modules/workflow/utils/assertWorkflowWithCurrentVersionIsDefined.ts b/packages/twenty-front/src/modules/workflow/utils/assertWorkflowWithCurrentVersionIsDefined.ts index c7849dd6cbd..dafcaa15708 100644 --- a/packages/twenty-front/src/modules/workflow/utils/assertWorkflowWithCurrentVersionIsDefined.ts +++ b/packages/twenty-front/src/modules/workflow/utils/assertWorkflowWithCurrentVersionIsDefined.ts @@ -3,7 +3,7 @@ import { WorkflowVersion, WorkflowWithCurrentVersion, } from '@/workflow/types/Workflow'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; // eslint-disable-next-line prefer-arrow/prefer-arrow-functions export function assertWorkflowWithCurrentVersionIsDefined( diff --git a/packages/twenty-front/src/modules/workflow/utils/findStepPosition.ts b/packages/twenty-front/src/modules/workflow/utils/findStepPosition.ts index d609c3931be..306c70b16d9 100644 --- a/packages/twenty-front/src/modules/workflow/utils/findStepPosition.ts +++ b/packages/twenty-front/src/modules/workflow/utils/findStepPosition.ts @@ -1,6 +1,6 @@ import { WorkflowStep } from '@/workflow/types/Workflow'; import { TRIGGER_STEP_ID } from '@/workflow/workflow-trigger/constants/TriggerStepId'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; /** * This function returns the reference of the array where the step should be positioned diff --git a/packages/twenty-front/src/modules/workflow/utils/getStepDefinitionOrThrow.ts b/packages/twenty-front/src/modules/workflow/utils/getStepDefinitionOrThrow.ts index e134cfb8e5a..74fe0bbea00 100644 --- a/packages/twenty-front/src/modules/workflow/utils/getStepDefinitionOrThrow.ts +++ b/packages/twenty-front/src/modules/workflow/utils/getStepDefinitionOrThrow.ts @@ -1,7 +1,7 @@ import { WorkflowVersion } from '@/workflow/types/Workflow'; import { findStepPosition } from '@/workflow/utils/findStepPosition'; import { TRIGGER_STEP_ID } from '@/workflow/workflow-trigger/constants/TriggerStepId'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const getStepDefinitionOrThrow = ({ stepId, diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramBaseStepNode.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramBaseStepNode.tsx index 42ed618674c..7d5b510a479 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramBaseStepNode.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramBaseStepNode.tsx @@ -7,8 +7,8 @@ import { WorkflowDiagramStepNodeData } from '@/workflow/workflow-diagram/types/W import styled from '@emotion/styled'; import { Handle, Position } from '@xyflow/react'; import React from 'react'; -import { capitalize } from 'twenty-shared'; -import { isDefined, Label, OverflowingTextWithTooltip } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; +import { Label, OverflowingTextWithTooltip } from 'twenty-ui'; type Variant = 'placeholder'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasBase.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasBase.tsx index 0594b3e4eb9..79854ba9ec5 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasBase.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasBase.tsx @@ -29,7 +29,8 @@ import { import '@xyflow/react/dist/style.css'; import React, { useEffect, useMemo, useRef } from 'react'; import { useRecoilValue, useSetRecoilState } from 'recoil'; -import { THEME_COMMON, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { THEME_COMMON } from 'twenty-ui'; const StyledResetReactflowStyles = styled.div` height: 100%; diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasEditableEffect.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasEditableEffect.tsx index 539e53deed2..4855c93b6ef 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasEditableEffect.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasEditableEffect.tsx @@ -17,7 +17,8 @@ import { useLingui } from '@lingui/react/macro'; import { OnSelectionChangeParams, useOnSelectionChange } from '@xyflow/react'; import { useCallback } from 'react'; import { useSetRecoilState } from 'recoil'; -import { IconBolt, isDefined, useIcons } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconBolt, useIcons } from 'twenty-ui'; export const WorkflowDiagramCanvasEditableEffect = () => { const { t } = useLingui(); diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasReadonlyEffect.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasReadonlyEffect.tsx index 2dfeeaa5eee..59c19f4f026 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasReadonlyEffect.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramCanvasReadonlyEffect.tsx @@ -14,7 +14,8 @@ import { getWorkflowNodeIconKey } from '@/workflow/workflow-diagram/utils/getWor import { OnSelectionChangeParams, useOnSelectionChange } from '@xyflow/react'; import { useCallback } from 'react'; import { useSetRecoilState } from 'recoil'; -import { isDefined, useIcons } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { useIcons } from 'twenty-ui'; export const WorkflowDiagramCanvasReadonlyEffect = () => { const { getIcon } = useIcons(); diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramEffect.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramEffect.tsx index bfee6650ce2..4dfbd4ad7d7 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramEffect.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowDiagramEffect.tsx @@ -11,7 +11,7 @@ import { getWorkflowVersionDiagram } from '@/workflow/workflow-diagram/utils/get import { mergeWorkflowDiagrams } from '@/workflow/workflow-diagram/utils/mergeWorkflowDiagrams'; import { useEffect } from 'react'; import { useRecoilCallback, useSetRecoilState } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const WorkflowDiagramEffect = ({ workflowWithCurrentVersion, diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizer.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizer.tsx index e34bf67390e..c62c8a2351c 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizer.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizer.tsx @@ -1,7 +1,7 @@ import { useWorkflowVersion } from '@/workflow/hooks/useWorkflowVersion'; import { WorkflowDiagramCanvasReadonly } from '@/workflow/workflow-diagram/components/WorkflowDiagramCanvasReadonly'; import '@xyflow/react/dist/style.css'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const WorkflowVersionVisualizer = ({ workflowVersionId, diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizerEffect.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizerEffect.tsx index 1df237c3d05..95da1b18703 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizerEffect.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVersionVisualizerEffect.tsx @@ -4,7 +4,7 @@ import { workflowDiagramState } from '@/workflow/workflow-diagram/states/workflo import { getWorkflowVersionDiagram } from '@/workflow/workflow-diagram/utils/getWorkflowVersionDiagram'; import { useEffect } from 'react'; import { useSetRecoilState } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const WorkflowVersionVisualizerEffect = ({ workflowVersionId, diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVisualizer.tsx b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVisualizer.tsx index b717fb4b275..5cb00f94fa5 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVisualizer.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/components/WorkflowVisualizer.tsx @@ -3,7 +3,7 @@ import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithC import { WorkflowDiagramCanvasEditable } from '@/workflow/workflow-diagram/components/WorkflowDiagramCanvasEditable'; import { WorkflowDiagramEffect } from '@/workflow/workflow-diagram/components/WorkflowDiagramEffect'; import '@xyflow/react/dist/style.css'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const WorkflowVisualizer = ({ targetableObject, diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/hooks/useTriggerNodeSelection.ts b/packages/twenty-front/src/modules/workflow/workflow-diagram/hooks/useTriggerNodeSelection.ts index 6168eec8e36..d1d6de80462 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/hooks/useTriggerNodeSelection.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/hooks/useTriggerNodeSelection.ts @@ -6,7 +6,7 @@ import { import { useReactFlow } from '@xyflow/react'; import { useEffect } from 'react'; import { useRecoilState } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useTriggerNodeSelection = () => { const reactflow = useReactFlow(); diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/generateWorkflowDiagram.ts b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/generateWorkflowDiagram.ts index 364b511eac2..c60eeb9f3b4 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/generateWorkflowDiagram.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/generateWorkflowDiagram.ts @@ -11,7 +11,7 @@ import { DATABASE_TRIGGER_TYPES } from '@/workflow/workflow-trigger/constants/Da import { TRIGGER_STEP_ID } from '@/workflow/workflow-trigger/constants/TriggerStepId'; import { getTriggerIcon } from '@/workflow/workflow-trigger/utils/getTriggerIcon'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { v4 } from 'uuid'; export const generateWorkflowDiagram = ({ diff --git a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/getWorkflowVersionDiagram.ts b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/getWorkflowVersionDiagram.ts index 579c7891def..31e4cd981b4 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/getWorkflowVersionDiagram.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-diagram/utils/getWorkflowVersionDiagram.ts @@ -1,7 +1,7 @@ import { WorkflowVersion } from '@/workflow/types/Workflow'; import { WorkflowDiagram } from '@/workflow/workflow-diagram/types/WorkflowDiagram'; import { generateWorkflowDiagram } from '@/workflow/workflow-diagram/utils/generateWorkflowDiagram'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const EMPTY_DIAGRAM: WorkflowDiagram = { nodes: [], diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStep.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStep.tsx index 4e71b7dd123..f64d4342c14 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStep.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStep.tsx @@ -2,7 +2,7 @@ import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithC import { workflowIdState } from '@/workflow/states/workflowIdState'; import { RightDrawerWorkflowEditStepContent } from '@/workflow/workflow-steps/components/RightDrawerWorkflowEditStepContent'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RightDrawerWorkflowEditStep = () => { const workflowId = useRecoilValue(workflowIdState); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStepContent.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStepContent.tsx index 0dbda05395d..37aadc98d51 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStepContent.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowEditStepContent.tsx @@ -4,7 +4,7 @@ import { WorkflowStepDetail } from '@/workflow/workflow-steps/components/Workflo import { useUpdateStep } from '@/workflow/workflow-steps/hooks/useUpdateStep'; import { useUpdateWorkflowVersionTrigger } from '@/workflow/workflow-trigger/hooks/useUpdateWorkflowVersionTrigger'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RightDrawerWorkflowEditStepContent = ({ workflow, diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStep.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStep.tsx index 896c071172f..c1f6540cb9c 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStep.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStep.tsx @@ -2,7 +2,7 @@ import { useWorkflowVersion } from '@/workflow/hooks/useWorkflowVersion'; import { workflowVersionIdState } from '@/workflow/states/workflowVersionIdState'; import { RightDrawerWorkflowViewStepContent } from '@/workflow/workflow-steps/components/RightDrawerWorkflowViewStepContent'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RightDrawerWorkflowViewStep = () => { const workflowVersionId = useRecoilValue(workflowVersionIdState); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStepContent.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStepContent.tsx index 1e54e35f6ae..c7a63566453 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStepContent.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStepContent.tsx @@ -2,7 +2,7 @@ import { WorkflowVersion } from '@/workflow/types/Workflow'; import { workflowSelectedNodeState } from '@/workflow/workflow-diagram/states/workflowSelectedNodeState'; import { WorkflowStepDetail } from '@/workflow/workflow-steps/components/WorkflowStepDetail'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RightDrawerWorkflowViewStepContent = ({ workflowVersion, diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx index 04ef74d3100..eee236a821c 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx @@ -12,7 +12,7 @@ import { WorkflowEditActionFormUpdateRecord } from '@/workflow/workflow-steps/wo import { WorkflowEditTriggerDatabaseEventForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerDatabaseEventForm'; import { WorkflowEditTriggerManualForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm'; import { Suspense, lazy } from 'react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { RightDrawerSkeletonLoader } from '~/loading/components/RightDrawerSkeletonLoader'; const WorkflowEditActionFormServerlessFunction = lazy(() => diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateStep.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateStep.ts index f65967bb2fe..2da43ab34c7 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateStep.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateStep.ts @@ -11,7 +11,8 @@ import { getWorkflowNodeIconKey } from '@/workflow/workflow-diagram/utils/getWor import { useCreateWorkflowVersionStep } from '@/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep'; import { workflowCreateStepFromParentStepIdState } from '@/workflow/workflow-steps/states/workflowCreateStepFromParentStepIdState'; import { useRecoilValue, useSetRecoilState } from 'recoil'; -import { isDefined, useIcons } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { useIcons } from 'twenty-ui'; export const useCreateStep = ({ workflow, diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts index 0662c192ead..ffa71ff8cac 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts @@ -1,17 +1,17 @@ +import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; +import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; +import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache'; +import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache'; +import { CREATE_WORKFLOW_VERSION_STEP } from '@/workflow/graphql/mutations/createWorkflowVersionStep'; +import { WorkflowVersion } from '@/workflow/types/Workflow'; import { useApolloClient, useMutation } from '@apollo/client'; +import { isDefined } from 'twenty-shared'; import { + CreateWorkflowVersionStepInput, CreateWorkflowVersionStepMutation, CreateWorkflowVersionStepMutationVariables, - CreateWorkflowVersionStepInput, } from '~/generated/graphql'; -import { CREATE_WORKFLOW_VERSION_STEP } from '@/workflow/graphql/mutations/createWorkflowVersionStep'; -import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; -import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; -import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; -import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache'; -import { isDefined } from 'twenty-ui'; -import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache'; -import { WorkflowVersion } from '@/workflow/types/Workflow'; export const useCreateWorkflowVersionStep = () => { const apolloClient = useApolloClient(); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateStep.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateStep.ts index b24d7e24622..c81888a6f43 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateStep.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateStep.ts @@ -4,7 +4,7 @@ import { WorkflowWithCurrentVersion, } from '@/workflow/types/Workflow'; import { useUpdateWorkflowVersionStep } from '@/workflow/workflow-steps/hooks/useUpdateWorkflowVersionStep'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const useUpdateStep = ({ workflow, diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionStep.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionStep.ts index 543d99f8617..4a2e48dc92d 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionStep.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionStep.ts @@ -1,18 +1,18 @@ +import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; +import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; +import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; +import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache'; +import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache'; +import { UPDATE_WORKFLOW_VERSION_STEP } from '@/workflow/graphql/mutations/updateWorkflowVersionStep'; +import { WorkflowVersion } from '@/workflow/types/Workflow'; import { useApolloClient, useMutation } from '@apollo/client'; +import { isDefined } from 'twenty-shared'; import { UpdateWorkflowVersionStepInput, UpdateWorkflowVersionStepMutation, UpdateWorkflowVersionStepMutationVariables, WorkflowAction, } from '~/generated/graphql'; -import { UPDATE_WORKFLOW_VERSION_STEP } from '@/workflow/graphql/mutations/updateWorkflowVersionStep'; -import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache'; -import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems'; -import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; -import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; -import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache'; -import { isDefined } from 'twenty-ui'; -import { WorkflowVersion } from '@/workflow/types/Workflow'; export const useUpdateWorkflowVersionStep = () => { const apolloClient = useApolloClient(); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/RightDrawerWorkflowSelectAction.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/RightDrawerWorkflowSelectAction.tsx index 39c009d826e..fe750afc085 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/RightDrawerWorkflowSelectAction.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/RightDrawerWorkflowSelectAction.tsx @@ -2,7 +2,7 @@ import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithC import { workflowIdState } from '@/workflow/states/workflowIdState'; import { RightDrawerWorkflowSelectActionContent } from '@/workflow/workflow-steps/workflow-actions/components/RightDrawerWorkflowSelectActionContent'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RightDrawerWorkflowSelectAction = () => { const workflowId = useRecoilValue(workflowIdState); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormCreateRecord.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormCreateRecord.tsx index cb47cb32217..768f6f8b9e9 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormCreateRecord.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormCreateRecord.tsx @@ -11,7 +11,8 @@ import { getActionIcon } from '@/workflow/workflow-steps/workflow-actions/utils/ import { WorkflowVariablePicker } from '@/workflow/workflow-variables/components/WorkflowVariablePicker'; import { useTheme } from '@emotion/react'; import { useEffect, useState } from 'react'; -import { HorizontalSeparator, isDefined, useIcons } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { HorizontalSeparator, useIcons } from 'twenty-ui'; import { JsonValue } from 'type-fest'; import { useDebouncedCallback } from 'use-debounce'; import { FieldMetadataType } from '~/generated/graphql'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormDeleteRecord.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormDeleteRecord.tsx index 2820dfbee6e..5f2a8cdd95d 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormDeleteRecord.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormDeleteRecord.tsx @@ -5,10 +5,11 @@ import { WorkflowStepHeader } from '@/workflow/workflow-steps/components/Workflo import { WorkflowSingleRecordPicker } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowSingleRecordPicker'; import { useTheme } from '@emotion/react'; import { useEffect, useState } from 'react'; -import { HorizontalSeparator, isDefined, useIcons } from 'twenty-ui'; import { WorkflowStepBody } from '@/workflow/workflow-steps/components/WorkflowStepBody'; import { getActionIcon } from '@/workflow/workflow-steps/workflow-actions/utils/getActionIcon'; +import { isDefined } from 'twenty-shared'; +import { HorizontalSeparator, useIcons } from 'twenty-ui'; import { JsonValue } from 'type-fest'; import { useDebouncedCallback } from 'use-debounce'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormSendEmail.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormSendEmail.tsx index 4788885db17..e8854714563 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormSendEmail.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormSendEmail.tsx @@ -14,7 +14,8 @@ import { WorkflowVariablePicker } from '@/workflow/workflow-variables/components import { useTheme } from '@emotion/react'; import { useEffect, useState } from 'react'; import { useRecoilValue } from 'recoil'; -import { IconPlus, isDefined, useIcons } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconPlus, useIcons } from 'twenty-ui'; import { JsonValue } from 'type-fest'; import { useDebouncedCallback } from 'use-debounce'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormServerlessFunction.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormServerlessFunction.tsx index 642e3e86eef..d3fa8495d57 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormServerlessFunction.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormServerlessFunction.tsx @@ -33,13 +33,8 @@ import { editor } from 'monaco-editor'; import { AutoTypings } from 'monaco-editor-auto-typings'; import { useEffect, useState } from 'react'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { - CodeEditor, - IconCode, - IconPlayerPlay, - isDefined, - useIcons, -} from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { CodeEditor, IconCode, IconPlayerPlay, useIcons } from 'twenty-ui'; import { useDebouncedCallback } from 'use-debounce'; const StyledContainer = styled.div` diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormUpdateRecord.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormUpdateRecord.tsx index 5ef1f57654c..422f6bdfafc 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormUpdateRecord.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFormUpdateRecord.tsx @@ -3,7 +3,6 @@ import { Select, SelectOption } from '@/ui/input/components/Select'; import { WorkflowUpdateRecordAction } from '@/workflow/types/Workflow'; import { useTheme } from '@emotion/react'; import { useEffect, useState } from 'react'; -import { HorizontalSeparator, isDefined, useIcons } from 'twenty-ui'; import { formatFieldMetadataItemAsFieldDefinition } from '@/object-metadata/utils/formatFieldMetadataItemAsFieldDefinition'; import { FormFieldInput } from '@/object-record/record-field/components/FormFieldInput'; @@ -13,6 +12,8 @@ import { WorkflowStepHeader } from '@/workflow/workflow-steps/components/Workflo import { WorkflowSingleRecordPicker } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowSingleRecordPicker'; import { getActionIcon } from '@/workflow/workflow-steps/workflow-actions/utils/getActionIcon'; import { WorkflowVariablePicker } from '@/workflow/workflow-variables/components/WorkflowVariablePicker'; +import { isDefined } from 'twenty-shared'; +import { HorizontalSeparator, useIcons } from 'twenty-ui'; import { JsonValue } from 'type-fest'; import { useDebouncedCallback } from 'use-debounce'; import { FieldMetadataType } from '~/generated-metadata/graphql'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowSingleRecordPicker.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowSingleRecordPicker.tsx index 57c7bec9e96..e6da767088f 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowSingleRecordPicker.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowSingleRecordPicker.tsx @@ -1,10 +1,3 @@ -import { - IconChevronDown, - IconForbid, - isDefined, - LightIconButton, -} from 'twenty-ui'; - import { useFindOneRecord } from '@/object-record/hooks/useFindOneRecord'; import { FormFieldInputContainer } from '@/object-record/record-field/form-types/components/FormFieldInputContainer'; import { FormFieldInputInputContainer } from '@/object-record/record-field/form-types/components/FormFieldInputInputContainer'; @@ -23,6 +16,8 @@ import { WorkflowVariablesDropdown } from '@/workflow/workflow-variables/compone import { css } from '@emotion/react'; import styled from '@emotion/styled'; import { useCallback } from 'react'; +import { isDefined } from 'twenty-shared'; +import { IconChevronDown, IconForbid, LightIconButton } from 'twenty-ui'; import { isValidUuid } from '~/utils/isValidUuid'; const StyledFormSelectContainer = styled(FormFieldInputInputContainer)` diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers.ts index 525914104fe..dbedb096b6f 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers.ts @@ -1,4 +1,4 @@ -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const getSubstringCoordinate = ( text: string, diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/RightDrawerWorkflowSelectTriggerType.tsx b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/RightDrawerWorkflowSelectTriggerType.tsx index 305d7f23077..5c2f8a8f88f 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/RightDrawerWorkflowSelectTriggerType.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/RightDrawerWorkflowSelectTriggerType.tsx @@ -2,7 +2,7 @@ import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithC import { workflowIdState } from '@/workflow/states/workflowIdState'; import { RightDrawerWorkflowSelectTriggerTypeContent } from '@/workflow/workflow-trigger/components/RightDrawerWorkflowSelectTriggerTypeContent'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RightDrawerWorkflowSelectTriggerType = () => { const workflowId = useRecoilValue(workflowIdState); diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerDatabaseEventForm.tsx b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerDatabaseEventForm.tsx index c0016dadad5..cc70c4a5b1e 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerDatabaseEventForm.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerDatabaseEventForm.tsx @@ -7,7 +7,8 @@ import { WorkflowStepHeader } from '@/workflow/workflow-steps/components/Workflo import { getTriggerIcon } from '@/workflow/workflow-trigger/utils/getTriggerIcon'; import { getTriggerDefaultLabel } from '@/workflow/workflow-trigger/utils/getTriggerLabel'; import { useTheme } from '@emotion/react'; -import { isDefined, useIcons } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { useIcons } from 'twenty-ui'; type WorkflowEditTriggerDatabaseEventFormProps = { trigger: WorkflowDatabaseEventTrigger; diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx index 291b230aff9..da449909447 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm.tsx @@ -10,7 +10,8 @@ import { MANUAL_TRIGGER_AVAILABILITY_OPTIONS } from '@/workflow/workflow-trigger import { getManualTriggerDefaultSettings } from '@/workflow/workflow-trigger/utils/getManualTriggerDefaultSettings'; import { getTriggerIcon } from '@/workflow/workflow-trigger/utils/getTriggerIcon'; import { useTheme } from '@emotion/react'; -import { isDefined, useIcons } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { useIcons } from 'twenty-ui'; type WorkflowEditTriggerManualFormProps = { trigger: WorkflowManualTrigger; diff --git a/packages/twenty-front/src/modules/workflow/workflow-trigger/hooks/useUpdateWorkflowVersionTrigger.ts b/packages/twenty-front/src/modules/workflow/workflow-trigger/hooks/useUpdateWorkflowVersionTrigger.ts index 783bad350b5..15ffb01de81 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-trigger/hooks/useUpdateWorkflowVersionTrigger.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-trigger/hooks/useUpdateWorkflowVersionTrigger.ts @@ -1,13 +1,13 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useUpdateOneRecord } from '@/object-record/hooks/useUpdateOneRecord'; +import { useComputeStepOutputSchema } from '@/workflow/hooks/useComputeStepOutputSchema'; +import { useGetUpdatableWorkflowVersion } from '@/workflow/hooks/useGetUpdatableWorkflowVersion'; import { WorkflowTrigger, WorkflowVersion, WorkflowWithCurrentVersion, } from '@/workflow/types/Workflow'; -import { isDefined } from 'twenty-ui'; -import { useComputeStepOutputSchema } from '@/workflow/hooks/useComputeStepOutputSchema'; -import { useGetUpdatableWorkflowVersion } from '@/workflow/hooks/useGetUpdatableWorkflowVersion'; +import { isDefined } from 'twenty-shared'; export const useUpdateWorkflowVersionTrigger = ({ workflow, diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdown.tsx b/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdown.tsx index 300da804092..425e7d171c5 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdown.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/components/WorkflowVariablesDropdown.tsx @@ -11,7 +11,8 @@ import { StepOutputSchema } from '@/workflow/workflow-variables/types/StepOutput import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { useState } from 'react'; -import { IconVariablePlus, isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; +import { IconVariablePlus } from 'twenty-ui'; const StyledDropdownVariableButtonContainer = styled( StyledDropdownButtonContainer, 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 8026fdf62ff..5e0e92383c3 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 @@ -19,9 +19,9 @@ import { getStepHeaderLabel } from '@/workflow/workflow-variables/utils/getStepH import { isLinkOutputSchema } from '@/workflow/workflow-variables/utils/isLinkOutputSchema'; import { useState } from 'react'; import { useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { IconChevronLeft, - isDefined, MenuItemSelect, OverflowingTextWithTooltip, useIcons, diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/hooks/useAvailableVariablesInWorkflowStep.ts b/packages/twenty-front/src/modules/workflow/workflow-variables/hooks/useAvailableVariablesInWorkflowStep.ts index bdd870f7a0b..233cfa25c53 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/hooks/useAvailableVariablesInWorkflowStep.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/hooks/useAvailableVariablesInWorkflowStep.ts @@ -13,7 +13,7 @@ import { filterOutputSchema } from '@/workflow/workflow-variables/utils/filterOu import { getTriggerStepName } from '@/workflow/workflow-variables/utils/getTriggerStepName'; import isEmpty from 'lodash.isempty'; import { useRecoilValue } from 'recoil'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { isEmptyObject } from '~/utils/isEmptyObject'; export const useAvailableVariablesInWorkflowStep = ({ diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/extractVariableLabel.ts b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/extractVariableLabel.ts index 4aff2c15344..1944a823672 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/extractVariableLabel.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/extractVariableLabel.ts @@ -1,4 +1,4 @@ -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const CAPTURE_ALL_VARIABLE_TAG_INNER_REGEX = /{{([^{}]+)}}/g; diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/filterOutputSchema.ts b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/filterOutputSchema.ts index 9b3849a8c3d..4a9687725eb 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/filterOutputSchema.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/filterOutputSchema.ts @@ -6,7 +6,7 @@ import { import { isBaseOutputSchema } from '@/workflow/workflow-variables/utils/isBaseOutputSchema'; import { isLinkOutputSchema } from '@/workflow/workflow-variables/utils/isLinkOutputSchema'; import { isRecordOutputSchema } from '@/workflow/workflow-variables/utils/isRecordOutputSchema'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; const isValidRecordOutputSchema = ( outputSchema: RecordOutputSchema, diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getStepHeaderLabel.ts b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getStepHeaderLabel.ts index 3b734eaab3c..23f55f5af9f 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getStepHeaderLabel.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getStepHeaderLabel.ts @@ -2,7 +2,7 @@ import { StepOutputSchema } from '@/workflow/workflow-variables/types/StepOutput import { getCurrentSubStepFromPath } from '@/workflow/workflow-variables/utils/getCurrentSubStepFromPath'; import { isBaseOutputSchema } from '@/workflow/workflow-variables/utils/isBaseOutputSchema'; import { isRecordOutputSchema } from '@/workflow/workflow-variables/utils/isRecordOutputSchema'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const getStepHeaderLabel = ( step: StepOutputSchema, diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getTriggerStepName.ts b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getTriggerStepName.ts index 27ac9f86a96..192c9c6be16 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getTriggerStepName.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/getTriggerStepName.ts @@ -4,8 +4,7 @@ import { } from '@/workflow/types/Workflow'; import { assertUnreachable } from '@/workflow/utils/assertUnreachable'; import { getTriggerDefaultLabel } from '@/workflow/workflow-trigger/utils/getTriggerLabel'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; export const getTriggerStepName = (trigger: WorkflowTrigger): string => { switch (trigger.type) { diff --git a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/parseEditorContent.ts b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/parseEditorContent.ts index c27e655d002..804fc1c15b0 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-variables/utils/parseEditorContent.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-variables/utils/parseEditorContent.ts @@ -1,5 +1,5 @@ import { JSONContent } from '@tiptap/react'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const parseEditorContent = (json: JSONContent): string => { const parseNode = (node: JSONContent): string => { diff --git a/packages/twenty-front/src/modules/workspace/components/WorkspaceInviteTeam.tsx b/packages/twenty-front/src/modules/workspace/components/WorkspaceInviteTeam.tsx index 761458006f3..67253747c5e 100644 --- a/packages/twenty-front/src/modules/workspace/components/WorkspaceInviteTeam.tsx +++ b/packages/twenty-front/src/modules/workspace/components/WorkspaceInviteTeam.tsx @@ -9,7 +9,7 @@ import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/Snac import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { TextInput } from '@/ui/input/components/TextInput'; import { sanitizeEmailList } from '@/workspace/utils/sanitizeEmailList'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { useCreateWorkspaceInvitation } from '../../workspace-invitation/hooks/useCreateWorkspaceInvitation'; const StyledContainer = styled.div` diff --git a/packages/twenty-front/src/modules/workspace/components/WorkspaceProviderEffect.tsx b/packages/twenty-front/src/modules/workspace/components/WorkspaceProviderEffect.tsx index 25baa6facda..6630050a578 100644 --- a/packages/twenty-front/src/modules/workspace/components/WorkspaceProviderEffect.tsx +++ b/packages/twenty-front/src/modules/workspace/components/WorkspaceProviderEffect.tsx @@ -5,7 +5,7 @@ import { useReadWorkspaceSubdomainFromCurrentLocation } from '@/domain-manager/h import { useRedirectToWorkspaceDomain } from '@/domain-manager/hooks/useRedirectToWorkspaceDomain'; import { lastAuthenticatedWorkspaceDomainState } from '@/domain-manager/states/lastAuthenticatedWorkspaceDomainState'; import { useEffect } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { useGetPublicWorkspaceDataBySubdomain } from '@/domain-manager/hooks/useGetPublicWorkspaceDataBySubdomain'; import { useIsCurrentLocationOnDefaultDomain } from '@/domain-manager/hooks/useIsCurrentLocationOnDefaultDomain'; diff --git a/packages/twenty-front/src/pages/auth/Authorize.tsx b/packages/twenty-front/src/pages/auth/Authorize.tsx index c88677308ce..6b841f3039b 100644 --- a/packages/twenty-front/src/pages/auth/Authorize.tsx +++ b/packages/twenty-front/src/pages/auth/Authorize.tsx @@ -5,10 +5,10 @@ import { useSearchParams } from 'react-router-dom'; import { useRedirect } from '@/domain-manager/hooks/useRedirect'; import { useLingui } from '@lingui/react/macro'; +import { isDefined } from 'twenty-shared'; import { MainButton, UndecoratedLink } from 'twenty-ui'; import { useAuthorizeAppMutation } from '~/generated/graphql'; import { useNavigateApp } from '~/hooks/useNavigateApp'; -import { isDefined } from '~/utils/isDefined'; type App = { id: string; name: string; logo: string }; diff --git a/packages/twenty-front/src/pages/auth/SignInUp.tsx b/packages/twenty-front/src/pages/auth/SignInUp.tsx index ce52288ea93..41cf129710a 100644 --- a/packages/twenty-front/src/pages/auth/SignInUp.tsx +++ b/packages/twenty-front/src/pages/auth/SignInUp.tsx @@ -18,8 +18,8 @@ import { useIsCurrentLocationOnAWorkspaceSubdomain } from '@/domain-manager/hook import { useIsCurrentLocationOnDefaultDomain } from '@/domain-manager/hooks/useIsCurrentLocationOnDefaultDomain'; import { DEFAULT_WORKSPACE_NAME } from '@/ui/navigation/navigation-drawer/constants/DefaultWorkspaceName'; import { useMemo } from 'react'; +import { isDefined } from 'twenty-shared'; import { AnimatedEaseIn } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { useSearchParams } from 'react-router-dom'; import { PublicWorkspaceDataOutput } from '~/generated-metadata/graphql'; diff --git a/packages/twenty-front/src/pages/object-record/RecordIndexPage.tsx b/packages/twenty-front/src/pages/object-record/RecordIndexPage.tsx index 36bb2df80f1..57aeb8b5637 100644 --- a/packages/twenty-front/src/pages/object-record/RecordIndexPage.tsx +++ b/packages/twenty-front/src/pages/object-record/RecordIndexPage.tsx @@ -22,8 +22,7 @@ import { PageTitle } from '@/ui/utilities/page-title/components/PageTitle'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { ViewComponentInstanceContext } from '@/views/states/contexts/ViewComponentInstanceContext'; import { useRecoilCallback } from 'recoil'; -import { capitalize } from 'twenty-shared'; -import { isDefined } from 'twenty-ui'; +import { capitalize, isDefined } from 'twenty-shared'; const StyledIndexContainer = styled.div` display: flex; diff --git a/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx b/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx index e168b5e1b08..e1ed9373332 100644 --- a/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx +++ b/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx @@ -10,11 +10,11 @@ import { billingState } from '@/client-config/states/billingState'; import styled from '@emotion/styled'; import { Trans, useLingui } from '@lingui/react/macro'; import { useRecoilState, useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { ActionLink, CAL_LINK, CardPicker, - isDefined, Loader, MainButton, } from 'twenty-ui'; diff --git a/packages/twenty-front/src/pages/onboarding/CreateProfile.tsx b/packages/twenty-front/src/pages/onboarding/CreateProfile.tsx index 08c3b337842..fb1dd66b8c2 100644 --- a/packages/twenty-front/src/pages/onboarding/CreateProfile.tsx +++ b/packages/twenty-front/src/pages/onboarding/CreateProfile.tsx @@ -21,8 +21,8 @@ import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { TextInputV2 } from '@/ui/input/components/TextInputV2'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { WorkspaceMember } from '@/workspace-member/types/WorkspaceMember'; +import { isDefined } from 'twenty-shared'; import { OnboardingStatus } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; const StyledContentContainer = styled.div` width: 100%; diff --git a/packages/twenty-front/src/pages/onboarding/CreateWorkspace.tsx b/packages/twenty-front/src/pages/onboarding/CreateWorkspace.tsx index c881250e88c..2d031a8e808 100644 --- a/packages/twenty-front/src/pages/onboarding/CreateWorkspace.tsx +++ b/packages/twenty-front/src/pages/onboarding/CreateWorkspace.tsx @@ -15,11 +15,11 @@ import { WorkspaceLogoUploader } from '@/settings/workspace/components/Workspace import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar'; import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { TextInputV2 } from '@/ui/input/components/TextInputV2'; +import { isDefined } from 'twenty-shared'; import { OnboardingStatus, useActivateWorkspaceMutation, } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; const StyledContentContainer = styled.div` width: 100%; diff --git a/packages/twenty-front/src/pages/onboarding/InviteTeam.tsx b/packages/twenty-front/src/pages/onboarding/InviteTeam.tsx index 947984526e3..eade4a3069f 100644 --- a/packages/twenty-front/src/pages/onboarding/InviteTeam.tsx +++ b/packages/twenty-front/src/pages/onboarding/InviteTeam.tsx @@ -30,8 +30,8 @@ import { } from 'twenty-ui'; import { z } from 'zod'; +import { isDefined } from 'twenty-shared'; import { OnboardingStatus } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { useCreateWorkspaceInvitation } from '../../modules/workspace-invitation/hooks/useCreateWorkspaceInvitation'; const StyledAnimatedContainer = styled.div` diff --git a/packages/twenty-front/src/pages/onboarding/PaymentSuccess.tsx b/packages/twenty-front/src/pages/onboarding/PaymentSuccess.tsx index 5cf3759f604..d7689b2b75b 100644 --- a/packages/twenty-front/src/pages/onboarding/PaymentSuccess.tsx +++ b/packages/twenty-front/src/pages/onboarding/PaymentSuccess.tsx @@ -1,20 +1,14 @@ -import { useTheme } from '@emotion/react'; -import styled from '@emotion/styled'; -import { useSetRecoilState } from 'recoil'; -import { - AnimatedEaseIn, - IconCheck, - isDefined, - MainButton, - RGBA, -} from 'twenty-ui'; - import { SubTitle } from '@/auth/components/SubTitle'; import { Title } from '@/auth/components/Title'; import { currentUserState } from '@/auth/states/currentUserState'; import { useOnboardingStatus } from '@/onboarding/hooks/useOnboardingStatus'; import { AppPath } from '@/types/AppPath'; import { useSubscriptionStatus } from '@/workspace/hooks/useSubscriptionStatus'; +import { useTheme } from '@emotion/react'; +import styled from '@emotion/styled'; +import { useSetRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; +import { AnimatedEaseIn, IconCheck, MainButton, RGBA } from 'twenty-ui'; import { OnboardingStatus, useGetCurrentUserLazyQuery, diff --git a/packages/twenty-front/src/pages/settings/SettingsBilling.tsx b/packages/twenty-front/src/pages/settings/SettingsBilling.tsx index bdc719ac1b7..0bf8c0e6501 100644 --- a/packages/twenty-front/src/pages/settings/SettingsBilling.tsx +++ b/packages/twenty-front/src/pages/settings/SettingsBilling.tsx @@ -12,6 +12,7 @@ import { import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; import { SettingsBillingCoverImage } from '@/billing/components/SettingsBillingCoverImage'; +import { useRedirect } from '@/domain-manager/hooks/useRedirect'; import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer'; import { SettingsPath } from '@/types/SettingsPath'; import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar'; @@ -19,15 +20,14 @@ import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { ConfirmationModal } from '@/ui/layout/modal/components/ConfirmationModal'; import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer'; import { useSubscriptionStatus } from '@/workspace/hooks/useSubscriptionStatus'; +import { isDefined } from 'twenty-shared'; import { SubscriptionInterval, SubscriptionStatus, useBillingPortalSessionQuery, useUpdateBillingSubscriptionMutation, } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; -import { useRedirect } from '@/domain-manager/hooks/useRedirect'; type SwitchInfo = { newInterval: SubscriptionInterval; diff --git a/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx b/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx index 629723f6b11..9726d9aa0dc 100644 --- a/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx +++ b/packages/twenty-front/src/pages/settings/SettingsWorkspaceMembers.tsx @@ -34,8 +34,8 @@ import { WorkspaceMember } from '@/workspace-member/types/WorkspaceMember'; import { WorkspaceInviteLink } from '@/workspace/components/WorkspaceInviteLink'; import { WorkspaceInviteTeam } from '@/workspace/components/WorkspaceInviteTeam'; import { formatDistanceToNow } from 'date-fns'; +import { isDefined } from 'twenty-shared'; import { useGetWorkspaceInvitationsQuery } from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; import { TableCell } from '../../modules/ui/layout/table/components/TableCell'; import { TableRow } from '../../modules/ui/layout/table/components/TableRow'; diff --git a/packages/twenty-front/src/pages/settings/data-model/SettingsObjectDetailPage.tsx b/packages/twenty-front/src/pages/settings/data-model/SettingsObjectDetailPage.tsx index 1d14cc6a9af..eccc0bf4178 100644 --- a/packages/twenty-front/src/pages/settings/data-model/SettingsObjectDetailPage.tsx +++ b/packages/twenty-front/src/pages/settings/data-model/SettingsObjectDetailPage.tsx @@ -18,6 +18,8 @@ import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import styled from '@emotion/styled'; import { t } from '@lingui/core/macro'; import { useRecoilState, useRecoilValue } from 'recoil'; + +import { isDefined } from 'twenty-shared'; import { Button, H3Title, @@ -28,7 +30,6 @@ import { IconSettings, MAIN_COLORS, UndecoratedLink, - isDefined, } from 'twenty-ui'; import { FeatureFlagKey } from '~/generated/graphql'; import { useNavigateApp } from '~/hooks/useNavigateApp'; diff --git a/packages/twenty-front/src/pages/settings/data-model/SettingsObjectFieldEdit.tsx b/packages/twenty-front/src/pages/settings/data-model/SettingsObjectFieldEdit.tsx index 7ada32c61d2..ed8c194f770 100644 --- a/packages/twenty-front/src/pages/settings/data-model/SettingsObjectFieldEdit.tsx +++ b/packages/twenty-front/src/pages/settings/data-model/SettingsObjectFieldEdit.tsx @@ -34,10 +34,10 @@ import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/Snac import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar'; import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer'; import { useLingui } from '@lingui/react/macro'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { useNavigateApp } from '~/hooks/useNavigateApp'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; -import { isDefined } from '~/utils/isDefined'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; //TODO: fix this type diff --git a/packages/twenty-front/src/pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldSelect.tsx b/packages/twenty-front/src/pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldSelect.tsx index 141eaf412ac..73012617a7a 100644 --- a/packages/twenty-front/src/pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldSelect.tsx +++ b/packages/twenty-front/src/pages/settings/data-model/SettingsObjectNewField/SettingsObjectNewFieldSelect.tsx @@ -12,7 +12,7 @@ import { zodResolver } from '@hookform/resolvers/zod'; import { useEffect } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; import { useParams } from 'react-router-dom'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; import { z } from 'zod'; import { FieldMetadataType } from '~/generated-metadata/graphql'; import { useNavigateApp } from '~/hooks/useNavigateApp'; diff --git a/packages/twenty-front/src/pages/settings/data-model/utils/getSettingsObjectFieldType.ts b/packages/twenty-front/src/pages/settings/data-model/utils/getSettingsObjectFieldType.ts index 1386d810bd1..b73e5d5309e 100644 --- a/packages/twenty-front/src/pages/settings/data-model/utils/getSettingsObjectFieldType.ts +++ b/packages/twenty-front/src/pages/settings/data-model/utils/getSettingsObjectFieldType.ts @@ -1,7 +1,7 @@ import { FieldMetadataItem } from '@/object-metadata/types/FieldMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; import { getFieldIdentifierType } from '@/settings/data-model/utils/getFieldIdentifierType'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const getSettingsObjectFieldType = ( objectMetadataItem: ObjectMetadataItem, diff --git a/packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx b/packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx index b9de4a5ca30..cee2a148b1c 100644 --- a/packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx +++ b/packages/twenty-front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx @@ -16,9 +16,9 @@ import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBa import { useLingui } from '@lingui/react/macro'; import { useRecoilCallback } from 'recoil'; import { Key } from 'ts-key-enum'; +import { isDefined } from 'twenty-shared'; import { useGenerateApiKeyTokenMutation } from '~/generated/graphql'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; -import { isDefined } from '~/utils/isDefined'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; export const SettingsDevelopersApiKeysNew = () => { diff --git a/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx b/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx index cc5a4286b57..48970590824 100644 --- a/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx +++ b/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhookDetail.tsx @@ -11,7 +11,6 @@ import { IconPlus, IconRefresh, IconTrash, - isDefined, Section, useIcons, } from 'twenty-ui'; @@ -37,6 +36,7 @@ import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBa import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { Trans, useLingui } from '@lingui/react/macro'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { FeatureFlagKey } from '~/generated/graphql'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; import { WEBHOOK_EMPTY_OPERATION } from '~/pages/settings/developers/webhooks/constants/WebhookEmptyOperation'; diff --git a/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhooksNew.tsx b/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhooksNew.tsx index 8c70d3648e8..aa39310764e 100644 --- a/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhooksNew.tsx +++ b/packages/twenty-front/src/pages/settings/developers/webhooks/components/SettingsDevelopersWebhooksNew.tsx @@ -1,5 +1,4 @@ import { useState } from 'react'; -import { H2Title, isDefined, Section } from 'twenty-ui'; import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular'; import { useCreateOneRecord } from '@/object-record/hooks/useCreateOneRecord'; @@ -10,6 +9,8 @@ import { SettingsPath } from '@/types/SettingsPath'; import { TextInput } from '@/ui/input/components/TextInput'; import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer'; import { useLingui } from '@lingui/react/macro'; +import { isDefined } from 'twenty-shared'; +import { H2Title, Section } from 'twenty-ui'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; import { isValidUrl } from '~/utils/url/isValidUrl'; diff --git a/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettings.tsx b/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettings.tsx index 221083ea0c2..75e4f406e9d 100644 --- a/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettings.tsx +++ b/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettings.tsx @@ -13,6 +13,7 @@ import { detectTimeFormat } from '@/localization/utils/detectTimeFormat'; import { detectTimeZone } from '@/localization/utils/detectTimeZone'; import { getWorkspaceDateFormatFromDateFormat } from '@/localization/utils/getWorkspaceDateFormatFromDateFormat'; import { getWorkspaceTimeFormatFromTimeFormat } from '@/localization/utils/getWorkspaceTimeFormatFromTimeFormat'; +import { isDefined } from 'twenty-shared'; import { WorkspaceMemberDateFormatEnum, WorkspaceMemberTimeFormatEnum, @@ -20,7 +21,6 @@ import { import { DateTimeSettingsDateFormatSelect } from '~/pages/settings/profile/appearance/components/DateTimeSettingsDateFormatSelect'; import { DateTimeSettingsTimeFormatSelect } from '~/pages/settings/profile/appearance/components/DateTimeSettingsTimeFormatSelect'; import { DateTimeSettingsTimeZoneSelect } from '~/pages/settings/profile/appearance/components/DateTimeSettingsTimeZoneSelect'; -import { isDefined } from '~/utils/isDefined'; import { isEmptyObject } from '~/utils/isEmptyObject'; import { logError } from '~/utils/logError'; diff --git a/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettingsTimeZoneSelect.tsx b/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettingsTimeZoneSelect.tsx index 3f83e595683..433246f8bf9 100644 --- a/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettingsTimeZoneSelect.tsx +++ b/packages/twenty-front/src/pages/settings/profile/appearance/components/DateTimeSettingsTimeZoneSelect.tsx @@ -2,7 +2,7 @@ import { detectTimeZone } from '@/localization/utils/detectTimeZone'; import { findAvailableTimeZoneOption } from '@/localization/utils/findAvailableTimeZoneOption'; import { AVAILABLE_TIMEZONE_OPTIONS } from '@/settings/accounts/constants/AvailableTimezoneOptions'; import { Select } from '@/ui/input/components/Select'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; type DateTimeSettingsTimeZoneSelectProps = { value?: string; diff --git a/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx b/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx index 07df7bfc81d..81a2a6499fe 100644 --- a/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx +++ b/packages/twenty-front/src/pages/settings/profile/appearance/components/LocalePicker.tsx @@ -10,9 +10,8 @@ import { Select } from '@/ui/input/components/Select'; import { useRefreshObjectMetadataItems } from '@/object-metadata/hooks/useRefreshObjectMetadataItem'; import { i18n } from '@lingui/core'; import { useLingui } from '@lingui/react/macro'; -import { APP_LOCALES } from 'twenty-shared'; +import { APP_LOCALES, isDefined } from 'twenty-shared'; import { dynamicActivate } from '~/utils/i18n/dynamicActivate'; -import { isDefined } from '~/utils/isDefined'; import { logError } from '~/utils/logError'; const StyledContainer = styled.div` diff --git a/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionDetail.tsx b/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionDetail.tsx index 775034d111e..69ef70eedcc 100644 --- a/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionDetail.tsx +++ b/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionDetail.tsx @@ -19,11 +19,11 @@ import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled'; import { useState } from 'react'; import { useParams } from 'react-router-dom'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { IconCode, IconGauge, IconSettings, IconTestPipe } from 'twenty-ui'; import { useDebouncedCallback } from 'use-debounce'; import { FeatureFlagKey } from '~/generated/graphql'; import { isDeeplyEqual } from '~/utils/isDeeplyEqual'; -import { isDefined } from '~/utils/isDefined'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; const TAB_LIST_COMPONENT_ID = 'serverless-function-detail'; diff --git a/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionsNew.tsx b/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionsNew.tsx index a41f9ebe427..3a5313f6d63 100644 --- a/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionsNew.tsx +++ b/packages/twenty-front/src/pages/settings/serverless-functions/SettingsServerlessFunctionsNew.tsx @@ -10,9 +10,9 @@ import { SettingsPath } from '@/types/SettingsPath'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useState } from 'react'; import { Key } from 'ts-key-enum'; +import { isDefined } from 'twenty-shared'; import { useHotkeyScopeOnMount } from '~/hooks/useHotkeyScopeOnMount'; import { useNavigateSettings } from '~/hooks/useNavigateSettings'; -import { isDefined } from '~/utils/isDefined'; import { getSettingsPath } from '~/utils/navigation/getSettingsPath'; export const SettingsServerlessFunctionsNew = () => { diff --git a/packages/twenty-front/src/pages/settings/workspace/SettingsHostname.tsx b/packages/twenty-front/src/pages/settings/workspace/SettingsHostname.tsx index 54799534e23..300ffad6e42 100644 --- a/packages/twenty-front/src/pages/settings/workspace/SettingsHostname.tsx +++ b/packages/twenty-front/src/pages/settings/workspace/SettingsHostname.tsx @@ -1,18 +1,18 @@ -import { zodResolver } from '@hookform/resolvers/zod'; -import { Button, H2Title, Section } from 'twenty-ui'; -import { TextInputV2 } from '@/ui/input/components/TextInputV2'; -import { Controller, useForm } from 'react-hook-form'; -import { z } from 'zod'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; -import { useRecoilState } from 'recoil'; -import styled from '@emotion/styled'; -import { - useUpdateWorkspaceMutation, - useGetHostnameDetailsQuery, -} from '~/generated/graphql'; -import { isDefined } from '~/utils/isDefined'; import { useRedirectToWorkspaceDomain } from '@/domain-manager/hooks/useRedirectToWorkspaceDomain'; +import { TextInputV2 } from '@/ui/input/components/TextInputV2'; +import styled from '@emotion/styled'; +import { zodResolver } from '@hookform/resolvers/zod'; import { useLingui } from '@lingui/react/macro'; +import { Controller, useForm } from 'react-hook-form'; +import { useRecoilState } from 'recoil'; +import { isDefined } from 'twenty-shared'; +import { Button, H2Title, Section } from 'twenty-ui'; +import { z } from 'zod'; +import { + useGetHostnameDetailsQuery, + useUpdateWorkspaceMutation, +} from '~/generated/graphql'; const validationSchema = z .object({ diff --git a/packages/twenty-front/src/pages/settings/workspace/SettingsHostnameEffect.tsx b/packages/twenty-front/src/pages/settings/workspace/SettingsHostnameEffect.tsx index 099ccdab4fb..23dac27bb6c 100644 --- a/packages/twenty-front/src/pages/settings/workspace/SettingsHostnameEffect.tsx +++ b/packages/twenty-front/src/pages/settings/workspace/SettingsHostnameEffect.tsx @@ -1,7 +1,7 @@ -import { isDefined } from '~/utils/isDefined'; -import { useEffect } from 'react'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; +import { useEffect } from 'react'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { useGetHostnameDetailsQuery } from '~/generated/graphql'; export const SettingsHostnameEffect = () => { diff --git a/packages/twenty-front/src/pages/settings/workspace/SettingsSubdomain.tsx b/packages/twenty-front/src/pages/settings/workspace/SettingsSubdomain.tsx index 3b96e295cb1..fd2b4a48c9b 100644 --- a/packages/twenty-front/src/pages/settings/workspace/SettingsSubdomain.tsx +++ b/packages/twenty-front/src/pages/settings/workspace/SettingsSubdomain.tsx @@ -1,12 +1,12 @@ -import { H2Title, Section } from 'twenty-ui'; import { TextInputV2 } from '@/ui/input/components/TextInputV2'; -import { Controller, useFormContext } from 'react-hook-form'; import styled from '@emotion/styled'; import { useLingui } from '@lingui/react/macro'; +import { Controller, useFormContext } from 'react-hook-form'; +import { H2Title, Section } from 'twenty-ui'; -import { isDefined } from '~/utils/isDefined'; import { domainConfigurationState } from '@/domain-manager/states/domainConfigurationState'; import { useRecoilValue } from 'recoil'; +import { isDefined } from 'twenty-shared'; const StyledDomainFormWrapper = styled.div` align-items: center; diff --git a/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx b/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx index c634c91ecbb..83527154323 100644 --- a/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx +++ b/packages/twenty-front/src/testing/decorators/RecordTableDecorator.tsx @@ -5,7 +5,7 @@ import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadat import { RecordIndexContextProvider } from '@/object-record/record-index/contexts/RecordIndexContext'; import { RecordTableBodyContextProvider } from '@/object-record/record-table/contexts/RecordTableBodyContext'; import { RecordTableContextProvider } from '@/object-record/record-table/contexts/RecordTableContext'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const RecordTableDecorator: Decorator = (Story) => { const objectMetadataItems = useRecoilValue(objectMetadataItemsState); diff --git a/packages/twenty-front/src/testing/decorators/getFieldDecorator.tsx b/packages/twenty-front/src/testing/decorators/getFieldDecorator.tsx index ee2906b3ba1..84df810b2c1 100644 --- a/packages/twenty-front/src/testing/decorators/getFieldDecorator.tsx +++ b/packages/twenty-front/src/testing/decorators/getFieldDecorator.tsx @@ -11,11 +11,11 @@ import { } from '@/object-record/record-store/contexts/RecordFieldValueSelectorContext'; import { recordStoreFamilyState } from '@/object-record/record-store/states/recordStoreFamilyState'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; +import { isDefined } from 'twenty-shared'; import { getCompaniesMock } from '~/testing/mock-data/companies'; import { generatedMockObjectMetadataItems } from '~/testing/mock-data/generatedMockObjectMetadataItems'; import { getPeopleMock } from '~/testing/mock-data/people'; import { mockedTasks } from '~/testing/mock-data/tasks'; -import { isDefined } from '~/utils/isDefined'; const RecordMockSetterEffect = ({ companies, diff --git a/packages/twenty-front/src/testing/mock-data/index.ts b/packages/twenty-front/src/testing/mock-data/index.ts index 0d8eb19d10b..4fab4e61bcb 100644 --- a/packages/twenty-front/src/testing/mock-data/index.ts +++ b/packages/twenty-front/src/testing/mock-data/index.ts @@ -6,8 +6,7 @@ import { isString, } from '@sniptt/guards'; import { GraphQLVariables } from 'msw'; - -import { isDefined } from '../../utils/isDefined'; +import { isDefined } from 'twenty-shared'; type StringFilter = { equals?: string; diff --git a/packages/twenty-front/src/testing/profiling/components/ProfilerWrapper.tsx b/packages/twenty-front/src/testing/profiling/components/ProfilerWrapper.tsx index 7fba31d21ef..c8d5ec57b42 100644 --- a/packages/twenty-front/src/testing/profiling/components/ProfilerWrapper.tsx +++ b/packages/twenty-front/src/testing/profiling/components/ProfilerWrapper.tsx @@ -1,12 +1,12 @@ import { Profiler, ProfilerOnRenderCallback } from 'react'; import { useRecoilCallback } from 'recoil'; +import { isDefined } from 'twenty-shared'; import { profilingQueueState } from '~/testing/profiling/states/profilingQueueState'; import { profilingSessionDataPointsState } from '~/testing/profiling/states/profilingSessionDataPointsState'; import { profilingSessionState } from '~/testing/profiling/states/profilingSessionState'; import { ProfilingDataPoint } from '~/testing/profiling/types/ProfilingDataPoint'; import { getProfilingQueueIdentifier } from '~/testing/profiling/utils/getProfilingQueueIdentifier'; -import { isDefined } from '~/utils/isDefined'; export const ProfilerWrapper = ({ profilingId, diff --git a/packages/twenty-front/src/testing/profiling/utils/getProfilingReportFromDocument.ts b/packages/twenty-front/src/testing/profiling/utils/getProfilingReportFromDocument.ts index f2571af5605..f3631730ef7 100644 --- a/packages/twenty-front/src/testing/profiling/utils/getProfilingReportFromDocument.ts +++ b/packages/twenty-front/src/testing/profiling/utils/getProfilingReportFromDocument.ts @@ -1,9 +1,9 @@ import { isNonEmptyString } from '@sniptt/guards'; +import { isDefined } from 'twenty-shared'; import { PROFILING_REPORTER_DIV_ID } from '~/testing/profiling/constants/ProfilingReporterDivId'; import { ProfilingReport } from '~/testing/profiling/types/ProfilingReportByRun'; import { parseProfilingReportString } from '~/testing/profiling/utils/parseProfilingReportString'; -import { isDefined } from '~/utils/isDefined'; export const getProfilingReportFromDocument = ( documentElement: Element, diff --git a/packages/twenty-front/src/testing/profiling/utils/getProfilingStory.ts b/packages/twenty-front/src/testing/profiling/utils/getProfilingStory.ts index 38df0ecb2e6..989c0da20ac 100644 --- a/packages/twenty-front/src/testing/profiling/utils/getProfilingStory.ts +++ b/packages/twenty-front/src/testing/profiling/utils/getProfilingStory.ts @@ -1,9 +1,9 @@ import { StoryObj } from '@storybook/react'; import { expect, findByTestId } from '@storybook/test'; +import { isDefined } from 'twenty-shared'; import { ProfilerDecorator } from '~/testing/decorators/ProfilerDecorator'; import { getProfilingReportFromDocument } from '~/testing/profiling/utils/getProfilingReportFromDocument'; -import { isDefined } from '~/utils/isDefined'; export const getProfilingStory = ({ componentName, diff --git a/packages/twenty-front/src/utils/combineRefs.ts b/packages/twenty-front/src/utils/combineRefs.ts index 5ba8dd16d4c..cf75362ae42 100644 --- a/packages/twenty-front/src/utils/combineRefs.ts +++ b/packages/twenty-front/src/utils/combineRefs.ts @@ -1,6 +1,6 @@ import { isFunction } from '@sniptt/guards'; import { MutableRefObject, Ref } from 'react'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; export const combineRefs = (...refs: (Ref | undefined)[]) => { return (node: T) => { diff --git a/packages/twenty-front/src/utils/date-utils.ts b/packages/twenty-front/src/utils/date-utils.ts index a43a2d4f57d..5e138f7b4d6 100644 --- a/packages/twenty-front/src/utils/date-utils.ts +++ b/packages/twenty-front/src/utils/date-utils.ts @@ -4,7 +4,7 @@ import { differenceInCalendarDays, formatDistanceToNow } from 'date-fns'; import { DateTime } from 'luxon'; import moize from 'moize'; -import { isDefined } from '~/utils/isDefined'; +import { isDefined } from 'twenty-shared'; import { logError } from './logError'; diff --git a/packages/twenty-front/src/utils/getDisplayValueByUrlType.ts b/packages/twenty-front/src/utils/getDisplayValueByUrlType.ts index cc1accb5685..783790538a6 100644 --- a/packages/twenty-front/src/utils/getDisplayValueByUrlType.ts +++ b/packages/twenty-front/src/utils/getDisplayValueByUrlType.ts @@ -1,5 +1,5 @@ +import { isDefined } from 'twenty-shared'; import { LinkType } from 'twenty-ui'; -import { isDefined } from './isDefined'; type getUrlDisplayValueByUrlTypeProps = { type: LinkType; diff --git a/packages/twenty-front/src/utils/is-domain.ts b/packages/twenty-front/src/utils/is-domain.ts index 7db9720748b..94f0f3539bd 100644 --- a/packages/twenty-front/src/utils/is-domain.ts +++ b/packages/twenty-front/src/utils/is-domain.ts @@ -1,4 +1,4 @@ -import { isDefined } from './isDefined'; +import { isDefined } from 'twenty-shared'; export const isDomain = (url: string | undefined | null) => isDefined(url) && diff --git a/packages/twenty-front/src/utils/isDefined.ts b/packages/twenty-front/src/utils/isDefined.ts deleted file mode 100644 index 81eb67203a0..00000000000 --- a/packages/twenty-front/src/utils/isDefined.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { isNull, isUndefined } from '@sniptt/guards'; - -export const isDefined = (value: T | null | undefined): value is T => - !isUndefined(value) && !isNull(value); diff --git a/packages/twenty-front/src/utils/navigation/getAppPath.ts b/packages/twenty-front/src/utils/navigation/getAppPath.ts index f9925c7e91e..5804b3c82d1 100644 --- a/packages/twenty-front/src/utils/navigation/getAppPath.ts +++ b/packages/twenty-front/src/utils/navigation/getAppPath.ts @@ -1,7 +1,7 @@ import { AppPath } from '@/types/AppPath'; import qs from 'qs'; import { generatePath, PathParam } from 'react-router-dom'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const getAppPath = ( to: T, diff --git a/packages/twenty-front/src/utils/navigation/getSettingsPath.ts b/packages/twenty-front/src/utils/navigation/getSettingsPath.ts index 6c40b209396..570c3b0b0e8 100644 --- a/packages/twenty-front/src/utils/navigation/getSettingsPath.ts +++ b/packages/twenty-front/src/utils/navigation/getSettingsPath.ts @@ -2,7 +2,7 @@ import { AppPath } from '@/types/AppPath'; import { SettingsPath } from '@/types/SettingsPath'; import qs from 'qs'; import { generatePath, PathParam } from 'react-router-dom'; -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const getSettingsPath = ( to: T, diff --git a/packages/twenty-front/src/utils/parseJson.ts b/packages/twenty-front/src/utils/parseJson.ts index 45ee92a9ed5..a233a511575 100644 --- a/packages/twenty-front/src/utils/parseJson.ts +++ b/packages/twenty-front/src/utils/parseJson.ts @@ -1,4 +1,4 @@ -import { isDefined } from 'twenty-ui'; +import { isDefined } from 'twenty-shared'; export const parseJson = (json: string | undefined | null) => { if (!isDefined(json)) { diff --git a/packages/twenty-front/src/utils/recoil-effects.ts b/packages/twenty-front/src/utils/recoil-effects.ts index 5c409e7dc95..a926347ed06 100644 --- a/packages/twenty-front/src/utils/recoil-effects.ts +++ b/packages/twenty-front/src/utils/recoil-effects.ts @@ -1,11 +1,10 @@ -import { AtomEffect } from 'recoil'; import omit from 'lodash.omit'; +import { AtomEffect } from 'recoil'; import { z } from 'zod'; +import { isDefined } from 'twenty-shared'; import { cookieStorage } from '~/utils/cookie-storage'; -import { isDefined } from './isDefined'; - export const localStorageEffect = (key?: string): AtomEffect => ({ setSelf, onSet, node }) => { diff --git a/packages/twenty-server/src/database/commands/upgrade-version/0-40/0-40-migrate-aggregate-operations-options.command.ts b/packages/twenty-server/src/database/commands/upgrade-version/0-40/0-40-migrate-aggregate-operations-options.command.ts index 26bdf699de4..279393c1293 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version/0-40/0-40-migrate-aggregate-operations-options.command.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version/0-40/0-40-migrate-aggregate-operations-options.command.ts @@ -4,6 +4,7 @@ import chalk from 'chalk'; import { Command } from 'nest-commander'; import { Repository } from 'typeorm'; import { v4 } from 'uuid'; +import { isDefined } from 'twenty-shared'; import { ActiveWorkspacesCommandOptions, @@ -30,7 +31,6 @@ import { VIEW_STANDARD_FIELD_IDS, } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids'; -import { isDefined } from 'src/utils/is-defined'; @Command({ name: 'upgrade-0.40:migrate-aggregate-operation-options', diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts index bcf2a5fef4f..93cf0238613 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper.ts @@ -1,4 +1,4 @@ -import { FieldMetadataType } from 'twenty-shared'; +import { FieldMetadataType, isDefined } from 'twenty-shared'; import { ObjectRecord, @@ -24,7 +24,6 @@ import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-met import { getObjectMetadataMapItemByNameSingular } from 'src/engine/metadata-modules/utils/get-object-metadata-map-item-by-name-singular.util'; import { CompositeFieldMetadataType } from 'src/engine/metadata-modules/workspace-migration/factories/composite-column-action.factory'; import { isRelationFieldMetadataType } from 'src/engine/utils/is-relation-field-metadata-type.util'; -import { isDefined } from 'src/utils/is-defined'; import { isPlainObject } from 'src/utils/is-plain-object'; export class ObjectRecordsToGraphqlConnectionHelper { diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts index c5fad015fa4..6911040dcc4 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/helpers/process-aggregate.helper.ts @@ -1,11 +1,11 @@ import { Injectable } from '@nestjs/common'; import { SelectQueryBuilder } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { AGGREGATE_OPERATIONS } from 'src/engine/api/graphql/graphql-query-runner/constants/aggregate-operations.constant'; import { AggregationField } from 'src/engine/api/graphql/workspace-schema-builder/utils/get-available-aggregations-from-object-fields.util'; import { formatColumnNamesFromCompositeFieldAndSubfields } from 'src/engine/twenty-orm/utils/format-column-names-from-composite-field-and-subfield.util'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class ProcessAggregateHelper { diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts index 9f81c733d63..c379e61a015 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service.ts @@ -1,5 +1,7 @@ import { Injectable } from '@nestjs/common'; +import { isDefined } from 'twenty-shared'; + import { GraphqlQueryBaseResolverService, GraphqlQueryResolverExecutionArgs, @@ -27,7 +29,6 @@ import { getPaginationInfo, } from 'src/engine/api/graphql/graphql-query-runner/utils/cursors.util'; import { formatResult } from 'src/engine/twenty-orm/utils/format-result.util'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class GraphqlQueryFindManyResolverService extends GraphqlQueryBaseResolverService< diff --git a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-search-resolver.service.ts b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-search-resolver.service.ts index 0957978f067..1ab52158c75 100644 --- a/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-search-resolver.service.ts +++ b/packages/twenty-server/src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-search-resolver.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; import { Brackets } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { GraphqlQueryBaseResolverService, @@ -19,7 +20,6 @@ import { QUERY_MAX_RECORDS } from 'src/engine/api/graphql/graphql-query-runner/c import { ObjectRecordsToGraphqlConnectionHelper } from 'src/engine/api/graphql/graphql-query-runner/helpers/object-records-to-graphql-connection.helper'; import { SEARCH_VECTOR_FIELD } from 'src/engine/metadata-modules/constants/search-vector-field.constants'; import { formatResult } from 'src/engine/twenty-orm/utils/format-result.util'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class GraphqlQuerySearchResolverService extends GraphqlQueryBaseResolverService< diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts index 1be177ba441..4af65cb52f7 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory.ts @@ -1,5 +1,7 @@ import { Injectable, Logger } from '@nestjs/common'; +import { isDefined } from 'twenty-shared'; + import { ObjectRecord } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface'; import { QueryResultFieldValue } from 'src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/interfaces/query-result-field-value'; import { QueryResultGetterHandlerInterface } from 'src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/interfaces/query-result-getter-handler.interface'; @@ -21,7 +23,6 @@ import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/service import { FileService } from 'src/engine/core-modules/file/services/file.service'; import { ObjectMetadataMaps } from 'src/engine/metadata-modules/types/object-metadata-maps'; import { isRelationFieldMetadata } from 'src/engine/utils/is-relation-field-metadata.util'; -import { isDefined } from 'src/utils/is-defined'; // TODO: find a way to prevent conflict between handlers executing logic on object relations // And this factory that is also executing logic on object relations diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/with-soft-deleted.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/with-soft-deleted.util.ts index 0ed2d739182..5eab6be3b23 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/with-soft-deleted.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/with-soft-deleted.util.ts @@ -1,6 +1,6 @@ -import { ObjectRecordFilter } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface'; +import { isDefined } from 'twenty-shared'; -import { isDefined } from 'src/utils/is-defined'; +import { ObjectRecordFilter } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface'; export const withSoftDeleted = ( filter: T | undefined | null, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts index 4a201a82c1c..cd0002d43c2 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts @@ -1,4 +1,5 @@ import { QueryFailedError } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { WorkspaceQueryRunnerOptions } from 'src/engine/api/graphql/workspace-query-runner/interfaces/query-runner-option.interface'; @@ -17,7 +18,6 @@ import { TimeoutError, UserInputError, } from 'src/engine/core-modules/graphql/utils/graphql-errors.util'; -import { isDefined } from 'src/utils/is-defined'; export const workspaceQueryRunnerGraphqlApiExceptionHandler = ( error: Error, diff --git a/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/filter-utils/format-field-values.utils.ts b/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/filter-utils/format-field-values.utils.ts index 33052ef834c..13b53e9eace 100644 --- a/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/filter-utils/format-field-values.utils.ts +++ b/packages/twenty-server/src/engine/api/rest/core/query-builder/utils/filter-utils/format-field-values.utils.ts @@ -1,9 +1,8 @@ import { BadRequestException } from '@nestjs/common'; -import { FieldMetadataType } from 'twenty-shared'; +import { FieldMetadataType, isDefined } from 'twenty-shared'; import { FieldValue } from 'src/engine/api/rest/core/types/field-value.type'; -import { isDefined } from 'src/utils/is-defined'; export const formatFieldValue = ( value: string, diff --git a/packages/twenty-server/src/engine/core-modules/domain-manager/services/domain-manager.service.ts b/packages/twenty-server/src/engine/core-modules/domain-manager/services/domain-manager.service.ts index f0577cff23f..6f51204f0c5 100644 --- a/packages/twenty-server/src/engine/core-modules/domain-manager/services/domain-manager.service.ts +++ b/packages/twenty-server/src/engine/core-modules/domain-manager/services/domain-manager.service.ts @@ -1,21 +1,21 @@ import { Injectable, Logger } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { Repository } from 'typeorm'; import Cloudflare from 'cloudflare'; +import { Repository } from 'typeorm'; +import { isDefined } from 'twenty-shared'; -import { EnvironmentService } from 'src/engine/core-modules/environment/environment.service'; -import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; -import { isDefined } from 'src/utils/is-defined'; -import { domainManagerValidator } from 'src/engine/core-modules/domain-manager/validator/cloudflare.validate'; import { DomainManagerException, DomainManagerExceptionCode, } from 'src/engine/core-modules/domain-manager/domain-manager.exception'; -import { generateRandomSubdomain } from 'src/engine/core-modules/domain-manager/utils/generate-random-subdomain'; -import { getSubdomainNameFromDisplayName } from 'src/engine/core-modules/domain-manager/utils/get-subdomain-name-from-display-name'; -import { getSubdomainFromEmail } from 'src/engine/core-modules/domain-manager/utils/get-subdomain-from-email'; import { CustomHostnameDetails } from 'src/engine/core-modules/domain-manager/dtos/custom-hostname-details'; +import { generateRandomSubdomain } from 'src/engine/core-modules/domain-manager/utils/generate-random-subdomain'; +import { getSubdomainFromEmail } from 'src/engine/core-modules/domain-manager/utils/get-subdomain-from-email'; +import { getSubdomainNameFromDisplayName } from 'src/engine/core-modules/domain-manager/utils/get-subdomain-name-from-display-name'; +import { domainManagerValidator } from 'src/engine/core-modules/domain-manager/validator/cloudflare.validate'; +import { EnvironmentService } from 'src/engine/core-modules/environment/environment.service'; +import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; @Injectable() export class DomainManagerService { diff --git a/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-from-email.ts b/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-from-email.ts index 9e5a3ea1118..0f6232ab81e 100644 --- a/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-from-email.ts +++ b/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-from-email.ts @@ -1,6 +1,7 @@ -import { isDefined } from 'src/utils/is-defined'; -import { isWorkEmail } from 'src/utils/is-work-email'; +import { isDefined } from 'twenty-shared'; + import { getDomainNameByEmail } from 'src/utils/get-domain-name-by-email'; +import { isWorkEmail } from 'src/utils/is-work-email'; export const getSubdomainFromEmail = (email?: string) => { if (!isDefined(email) || !isWorkEmail(email)) return; diff --git a/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-name-from-display-name.ts b/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-name-from-display-name.ts index e53b20eac8b..dbe6f71d7c8 100644 --- a/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-name-from-display-name.ts +++ b/packages/twenty-server/src/engine/core-modules/domain-manager/utils/get-subdomain-name-from-display-name.ts @@ -1,4 +1,4 @@ -import { isDefined } from 'src/utils/is-defined'; +import { isDefined } from 'twenty-shared'; export const getSubdomainNameFromDisplayName = (displayName?: string) => { if (!isDefined(displayName)) return; diff --git a/packages/twenty-server/src/engine/core-modules/feature-flag/validates/feature-flag.validate.ts b/packages/twenty-server/src/engine/core-modules/feature-flag/validates/feature-flag.validate.ts index 9022ccea33f..93d8867191f 100644 --- a/packages/twenty-server/src/engine/core-modules/feature-flag/validates/feature-flag.validate.ts +++ b/packages/twenty-server/src/engine/core-modules/feature-flag/validates/feature-flag.validate.ts @@ -1,6 +1,7 @@ +import { isDefined } from 'twenty-shared'; + import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; import { CustomException } from 'src/utils/custom-exception'; -import { isDefined } from 'src/utils/is-defined'; const assertIsFeatureFlagKey = ( featureFlagKey: string, diff --git a/packages/twenty-server/src/engine/core-modules/file-storage/drivers/s3.driver.ts b/packages/twenty-server/src/engine/core-modules/file-storage/drivers/s3.driver.ts index 766be0b13b8..2f2d34952c7 100644 --- a/packages/twenty-server/src/engine/core-modules/file-storage/drivers/s3.driver.ts +++ b/packages/twenty-server/src/engine/core-modules/file-storage/drivers/s3.driver.ts @@ -1,7 +1,7 @@ -import { Readable } from 'stream'; import fs from 'fs'; import { mkdir } from 'fs/promises'; import { join } from 'path'; +import { Readable } from 'stream'; import { pipeline } from 'stream/promises'; import { @@ -18,14 +18,13 @@ import { S3, S3ClientConfig, } from '@aws-sdk/client-s3'; +import { isDefined } from 'twenty-shared'; +import { StorageDriver } from 'src/engine/core-modules/file-storage/drivers/interfaces/storage-driver.interface'; import { FileStorageException, FileStorageExceptionCode, } from 'src/engine/core-modules/file-storage/interfaces/file-storage-exception'; -import { StorageDriver } from 'src/engine/core-modules/file-storage/drivers/interfaces/storage-driver.interface'; - -import { isDefined } from 'src/utils/is-defined'; export interface S3DriverOptions extends S3ClientConfig { bucketName: string; diff --git a/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts b/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts index f3237e79416..51ec81933ad 100644 --- a/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts +++ b/packages/twenty-server/src/engine/core-modules/jwt/services/jwt-wrapper.service.ts @@ -4,13 +4,13 @@ import { JwtService, JwtSignOptions, JwtVerifyOptions } from '@nestjs/jwt'; import { createHash } from 'crypto'; import * as jwt from 'jsonwebtoken'; +import { isDefined } from 'twenty-shared'; import { AuthException, AuthExceptionCode, } from 'src/engine/core-modules/auth/auth.exception'; import { EnvironmentService } from 'src/engine/core-modules/environment/environment.service'; -import { isDefined } from 'src/utils/is-defined'; export type WorkspaceTokenType = | 'ACCESS' diff --git a/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts b/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts index 2b96e934889..742c8614fe3 100644 --- a/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts +++ b/packages/twenty-server/src/engine/core-modules/serverless/drivers/lambda.driver.ts @@ -1,7 +1,6 @@ import * as fs from 'fs/promises'; import { join } from 'path'; -import dotenv from 'dotenv'; import { CreateFunctionCommand, DeleteFunctionCommand, @@ -10,49 +9,50 @@ import { InvokeCommandInput, Lambda, LambdaClientConfig, + ListLayerVersionsCommand, + ListLayerVersionsCommandInput, PublishLayerVersionCommand, PublishLayerVersionCommandInput, PublishVersionCommand, PublishVersionCommandInput, ResourceNotFoundException, UpdateFunctionCodeCommand, - waitUntilFunctionUpdatedV2, - ListLayerVersionsCommandInput, - ListLayerVersionsCommand, UpdateFunctionConfigurationCommand, UpdateFunctionConfigurationCommandInput, + waitUntilFunctionUpdatedV2, } from '@aws-sdk/client-lambda'; import { CreateFunctionCommandInput } from '@aws-sdk/client-lambda/dist-types/commands/CreateFunctionCommand'; import { UpdateFunctionCodeCommandInput } from '@aws-sdk/client-lambda/dist-types/commands/UpdateFunctionCodeCommand'; +import dotenv from 'dotenv'; +import { isDefined } from 'twenty-shared'; import { ServerlessDriver, ServerlessExecuteResult, } from 'src/engine/core-modules/serverless/drivers/interfaces/serverless-driver.interface'; +import { FileStorageService } from 'src/engine/core-modules/file-storage/file-storage.service'; +import { COMMON_LAYER_NAME } from 'src/engine/core-modules/serverless/drivers/constants/common-layer-name'; +import { ENV_FILE_NAME } from 'src/engine/core-modules/serverless/drivers/constants/env-file-name'; +import { OUTDIR_FOLDER } from 'src/engine/core-modules/serverless/drivers/constants/outdir-folder'; +import { SERVERLESS_TMPDIR_FOLDER } from 'src/engine/core-modules/serverless/drivers/constants/serverless-tmpdir-folder'; +import { compileTypescript } from 'src/engine/core-modules/serverless/drivers/utils/compile-typescript'; +import { copyAndBuildDependencies } from 'src/engine/core-modules/serverless/drivers/utils/copy-and-build-dependencies'; +import { createZipFile } from 'src/engine/core-modules/serverless/drivers/utils/create-zip-file'; +import { + LambdaBuildDirectoryManager, + NODE_LAYER_SUBFOLDER, +} from 'src/engine/core-modules/serverless/drivers/utils/lambda-build-directory-manager'; +import { getServerlessFolder } from 'src/engine/core-modules/serverless/utils/serverless-get-folder.utils'; +import { ServerlessFunctionExecutionStatus } from 'src/engine/metadata-modules/serverless-function/dtos/serverless-function-execution-result.dto'; import { ServerlessFunctionEntity, ServerlessFunctionRuntime, } from 'src/engine/metadata-modules/serverless-function/serverless-function.entity'; -import { - LambdaBuildDirectoryManager, - NODE_LAYER_SUBFOLDER, -} from 'src/engine/core-modules/serverless/drivers/utils/lambda-build-directory-manager'; -import { FileStorageService } from 'src/engine/core-modules/file-storage/file-storage.service'; -import { createZipFile } from 'src/engine/core-modules/serverless/drivers/utils/create-zip-file'; -import { ServerlessFunctionExecutionStatus } from 'src/engine/metadata-modules/serverless-function/dtos/serverless-function-execution-result.dto'; import { ServerlessFunctionException, ServerlessFunctionExceptionCode, } from 'src/engine/metadata-modules/serverless-function/serverless-function.exception'; -import { isDefined } from 'src/utils/is-defined'; -import { COMMON_LAYER_NAME } from 'src/engine/core-modules/serverless/drivers/constants/common-layer-name'; -import { copyAndBuildDependencies } from 'src/engine/core-modules/serverless/drivers/utils/copy-and-build-dependencies'; -import { getServerlessFolder } from 'src/engine/core-modules/serverless/utils/serverless-get-folder.utils'; -import { SERVERLESS_TMPDIR_FOLDER } from 'src/engine/core-modules/serverless/drivers/constants/serverless-tmpdir-folder'; -import { compileTypescript } from 'src/engine/core-modules/serverless/drivers/utils/compile-typescript'; -import { ENV_FILE_NAME } from 'src/engine/core-modules/serverless/drivers/constants/env-file-name'; -import { OUTDIR_FOLDER } from 'src/engine/core-modules/serverless/drivers/constants/outdir-folder'; const UPDATE_FUNCTION_DURATION_TIMEOUT_IN_SECONDS = 60; diff --git a/packages/twenty-server/src/engine/core-modules/user/user.validate.ts b/packages/twenty-server/src/engine/core-modules/user/user.validate.ts index cda34420009..9a0e40d9f69 100644 --- a/packages/twenty-server/src/engine/core-modules/user/user.validate.ts +++ b/packages/twenty-server/src/engine/core-modules/user/user.validate.ts @@ -1,10 +1,11 @@ +import { isDefined } from 'twenty-shared'; + import { User } from 'src/engine/core-modules/user/user.entity'; -import { CustomException } from 'src/utils/custom-exception'; -import { isDefined } from 'src/utils/is-defined'; import { UserException, UserExceptionCode, } from 'src/engine/core-modules/user/user.exception'; +import { CustomException } from 'src/utils/custom-exception'; const assertIsDefinedOrThrow = ( user: User | undefined | null, diff --git a/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts b/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts index ed724900e9c..ea20e8b9823 100644 --- a/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts +++ b/packages/twenty-server/src/engine/core-modules/workspace/services/workspace.service.ts @@ -4,11 +4,12 @@ import { InjectRepository } from '@nestjs/typeorm'; import assert from 'assert'; import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; -import { WorkspaceActivationStatus } from 'twenty-shared'; +import { WorkspaceActivationStatus, isDefined } from 'twenty-shared'; import { Repository } from 'typeorm'; import { BillingSubscriptionService } from 'src/engine/core-modules/billing/services/billing-subscription.service'; import { BillingService } from 'src/engine/core-modules/billing/services/billing.service'; +import { DomainManagerService } from 'src/engine/core-modules/domain-manager/services/domain-manager.service'; import { EnvironmentService } from 'src/engine/core-modules/environment/environment.service'; import { FeatureFlagService } from 'src/engine/core-modules/feature-flag/services/feature-flag.service'; import { UserWorkspace } from 'src/engine/core-modules/user-workspace/user-workspace.entity'; @@ -23,8 +24,6 @@ import { import { workspaceValidator } from 'src/engine/core-modules/workspace/workspace.validate'; import { WorkspaceManagerService } from 'src/engine/workspace-manager/workspace-manager.service'; import { DEFAULT_FEATURE_FLAGS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/default-feature-flags'; -import { isDefined } from 'src/utils/is-defined'; -import { DomainManagerService } from 'src/engine/core-modules/domain-manager/services/domain-manager.service'; @Injectable() // eslint-disable-next-line @nx/workspace-inject-workspace-repository diff --git a/packages/twenty-server/src/engine/core-modules/workspace/utils/get-auth-providers-by-workspace.util.ts b/packages/twenty-server/src/engine/core-modules/workspace/utils/get-auth-providers-by-workspace.util.ts index 72e4253b6d5..2f1dcd73397 100644 --- a/packages/twenty-server/src/engine/core-modules/workspace/utils/get-auth-providers-by-workspace.util.ts +++ b/packages/twenty-server/src/engine/core-modules/workspace/utils/get-auth-providers-by-workspace.util.ts @@ -1,7 +1,8 @@ +import { isDefined } from 'twenty-shared'; + import { SSOIdentityProviderStatus } from 'src/engine/core-modules/sso/workspace-sso-identity-provider.entity'; import { AuthProviders } from 'src/engine/core-modules/workspace/dtos/public-workspace-data-output'; import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; -import { isDefined } from 'src/utils/is-defined'; export const getAuthProvidersByWorkspace = ({ workspace, diff --git a/packages/twenty-server/src/engine/core-modules/workspace/workspace.resolver.ts b/packages/twenty-server/src/engine/core-modules/workspace/workspace.resolver.ts index ba92894bec6..526f49cf198 100644 --- a/packages/twenty-server/src/engine/core-modules/workspace/workspace.resolver.ts +++ b/packages/twenty-server/src/engine/core-modules/workspace/workspace.resolver.ts @@ -11,11 +11,13 @@ import { InjectRepository } from '@nestjs/typeorm'; import { FileUpload, GraphQLUpload } from 'graphql-upload'; import { Repository } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { FileFolder } from 'src/engine/core-modules/file/interfaces/file-folder.interface'; import { BillingSubscription } from 'src/engine/core-modules/billing/entities/billing-subscription.entity'; import { BillingSubscriptionService } from 'src/engine/core-modules/billing/services/billing-subscription.service'; +import { CustomHostnameDetails } from 'src/engine/core-modules/domain-manager/dtos/custom-hostname-details'; import { DomainManagerService } from 'src/engine/core-modules/domain-manager/services/domain-manager.service'; import { EnvironmentService } from 'src/engine/core-modules/environment/environment.service'; import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum'; @@ -42,9 +44,7 @@ import { UserAuthGuard } from 'src/engine/guards/user-auth.guard'; import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard'; import { GraphqlValidationExceptionFilter } from 'src/filters/graphql-validation-exception.filter'; import { assert } from 'src/utils/assert'; -import { isDefined } from 'src/utils/is-defined'; import { streamToBuffer } from 'src/utils/stream-to-buffer'; -import { CustomHostnameDetails } from 'src/engine/core-modules/domain-manager/dtos/custom-hostname-details'; import { Workspace } from './workspace.entity'; diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts index c5ee2eeba20..be24cc14f94 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.service.ts @@ -4,7 +4,7 @@ import { InjectDataSource, InjectRepository } from '@nestjs/typeorm'; import { i18n } from '@lingui/core'; import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; import isEmpty from 'lodash.isempty'; -import { FieldMetadataType } from 'twenty-shared'; +import { FieldMetadataType, isDefined } from 'twenty-shared'; import { DataSource, FindOneOptions, Repository } from 'typeorm'; import { v4 as uuidV4, v4 } from 'uuid'; @@ -61,7 +61,6 @@ import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; import { ViewService } from 'src/modules/view/services/view.service'; import { ViewFieldWorkspaceEntity } from 'src/modules/view/standard-objects/view-field.workspace-entity'; -import { isDefined } from 'src/utils/is-defined'; import { FieldMetadataValidationService } from './field-metadata-validation.service'; import { FieldMetadataEntity } from './field-metadata.entity'; diff --git a/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-metadata.service.ts b/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-metadata.service.ts index c0ab6d4058f..91a69e3e683 100644 --- a/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-metadata.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-metadata.service.ts @@ -3,6 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm'; import isEmpty from 'lodash.isempty'; import { Repository } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { @@ -20,7 +21,6 @@ import { } from 'src/engine/metadata-modules/workspace-migration/workspace-migration.entity'; import { WorkspaceMigrationService } from 'src/engine/metadata-modules/workspace-migration/workspace-migration.service'; import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class IndexMetadataService { diff --git a/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts b/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts index af0746159a8..cbf1734f3e0 100644 --- a/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/permissions/permissions.service.ts @@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { EnvironmentService } from 'src/engine/core-modules/environment/environment.service'; import { UserWorkspace } from 'src/engine/core-modules/user-workspace/user-workspace.entity'; @@ -12,7 +13,6 @@ import { } from 'src/engine/metadata-modules/permissions/permissions.exception'; import { RoleEntity } from 'src/engine/metadata-modules/permissions/role.entity'; import { UserWorkspaceRoleEntity } from 'src/engine/metadata-modules/permissions/user-workspace-role.entity'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class PermissionsService { diff --git a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/relation-metadata.service.ts b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/relation-metadata.service.ts index 27ef8baca58..2a65510f39e 100644 --- a/packages/twenty-server/src/engine/metadata-modules/relation-metadata/relation-metadata.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/relation-metadata/relation-metadata.service.ts @@ -3,7 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm'; import { TypeOrmQueryService } from '@ptc-org/nestjs-query-typeorm'; import camelCase from 'lodash.camelcase'; -import { FieldMetadataType } from 'twenty-shared'; +import { FieldMetadataType, isDefined } from 'twenty-shared'; import { FindOneOptions, In, Repository } from 'typeorm'; import { v4 as uuidV4 } from 'uuid'; @@ -34,7 +34,6 @@ import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target import { WorkspaceCacheStorageService } from 'src/engine/workspace-cache-storage/workspace-cache-storage.service'; import { WorkspaceMigrationRunnerService } from 'src/engine/workspace-manager/workspace-migration-runner/workspace-migration-runner.service'; import { BASE_OBJECT_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids'; -import { isDefined } from 'src/utils/is-defined'; import { RelationMetadataEntity, diff --git a/packages/twenty-server/src/engine/metadata-modules/search/search.service.ts b/packages/twenty-server/src/engine/metadata-modules/search/search.service.ts index 6103bd8c3f6..a8711dd875f 100644 --- a/packages/twenty-server/src/engine/metadata-modules/search/search.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/search/search.service.ts @@ -1,7 +1,7 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { FieldMetadataType } from 'twenty-shared'; +import { FieldMetadataType, isDefined } from 'twenty-shared'; import { Repository } from 'typeorm'; import { FieldMetadataInterface } from 'src/engine/metadata-modules/field-metadata/interfaces/field-metadata.interface'; @@ -28,7 +28,6 @@ import { getTsVectorColumnExpressionFromFields, } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/get-ts-vector-column-expression.util'; import { SearchableFieldType } from 'src/engine/workspace-manager/workspace-sync-metadata/utils/is-searchable-field.util'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class SearchService { diff --git a/packages/twenty-server/src/engine/metadata-modules/serverless-function/serverless-function.service.ts b/packages/twenty-server/src/engine/metadata-modules/serverless-function/serverless-function.service.ts index cd1cde7a38c..c86ab312252 100644 --- a/packages/twenty-server/src/engine/metadata-modules/serverless-function/serverless-function.service.ts +++ b/packages/twenty-server/src/engine/metadata-modules/serverless-function/serverless-function.service.ts @@ -5,6 +5,7 @@ import { basename, dirname, join } from 'path'; import deepEqual from 'deep-equal'; import { IsNull, Not, Repository } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { FileStorageExceptionCode } from 'src/engine/core-modules/file-storage/interfaces/file-storage-exception'; import { ServerlessExecuteResult } from 'src/engine/core-modules/serverless/drivers/interfaces/serverless-driver.interface'; @@ -34,7 +35,6 @@ import { ServerlessFunctionException, ServerlessFunctionExceptionCode, } from 'src/engine/metadata-modules/serverless-function/serverless-function.exception'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class ServerlessFunctionService { diff --git a/packages/twenty-server/src/engine/middlewares/middleware.service.ts b/packages/twenty-server/src/engine/middlewares/middleware.service.ts index 1fa56e476c5..e53cf11d51b 100644 --- a/packages/twenty-server/src/engine/middlewares/middleware.service.ts +++ b/packages/twenty-server/src/engine/middlewares/middleware.service.ts @@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common'; import { Request, Response } from 'express'; import { ExtractJwt } from 'passport-jwt'; +import { isDefined } from 'twenty-shared'; import { AuthExceptionCode } from 'src/engine/core-modules/auth/auth.exception'; import { AccessTokenService } from 'src/engine/core-modules/auth/token/services/access-token.service'; @@ -19,7 +20,6 @@ import { } from 'src/engine/utils/global-exception-handler.util'; import { WorkspaceCacheStorageService } from 'src/engine/workspace-cache-storage/workspace-cache-storage.service'; import { CustomException } from 'src/utils/custom-exception'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class MiddlewareService { diff --git a/packages/twenty-server/src/engine/seeder/seeder.service.ts b/packages/twenty-server/src/engine/seeder/seeder.service.ts index 0f06c7d5580..75cc0aae186 100644 --- a/packages/twenty-server/src/engine/seeder/seeder.service.ts +++ b/packages/twenty-server/src/engine/seeder/seeder.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@nestjs/common'; -import { capitalize, FieldMetadataType } from 'twenty-shared'; +import { capitalize, FieldMetadataType, isDefined } from 'twenty-shared'; import { ObjectMetadataSeed } from 'src/engine/seeder/interfaces/object-metadata-seed'; @@ -12,7 +12,6 @@ import { isCompositeFieldMetadataType } from 'src/engine/metadata-modules/field- import { ObjectMetadataService } from 'src/engine/metadata-modules/object-metadata/object-metadata.service'; import { computeTableName } from 'src/engine/utils/compute-table-name.util'; import { WorkspaceDataSourceService } from 'src/engine/workspace-datasource/workspace-datasource.service'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class SeederService { diff --git a/packages/twenty-server/src/engine/twenty-orm/utils/format-column-names-from-composite-field-and-subfield.util.ts b/packages/twenty-server/src/engine/twenty-orm/utils/format-column-names-from-composite-field-and-subfield.util.ts index f9e95804da0..387449256f2 100644 --- a/packages/twenty-server/src/engine/twenty-orm/utils/format-column-names-from-composite-field-and-subfield.util.ts +++ b/packages/twenty-server/src/engine/twenty-orm/utils/format-column-names-from-composite-field-and-subfield.util.ts @@ -1,6 +1,4 @@ -import { capitalize } from 'twenty-shared'; - -import { isDefined } from 'src/utils/is-defined'; +import { capitalize, isDefined } from 'twenty-shared'; export const formatColumnNamesFromCompositeFieldAndSubfields = ( fieldName: string, diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-message-list.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-message-list.service.ts index ebbb11a42b1..afb5ecb222a 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-message-list.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-message-list.service.ts @@ -1,6 +1,7 @@ import { Injectable } from '@nestjs/common'; import { gmail_v1 as gmailV1 } from 'googleapis'; +import { isDefined } from 'twenty-shared'; import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity'; import { @@ -19,7 +20,6 @@ import { GetPartialMessageListResponse, } from 'src/modules/messaging/message-import-manager/services/messaging-get-message-list.service'; import { assertNotNull } from 'src/utils/assert'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class GmailGetMessageListService { diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts index ce228e3d997..34fe3f1e10d 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service.ts @@ -2,13 +2,13 @@ import { Injectable, Logger } from '@nestjs/common'; import { AxiosResponse } from 'axios'; import { gmail_v1 as gmailV1 } from 'googleapis'; +import { isDefined } from 'twenty-shared'; import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity'; import { GmailFetchByBatchService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-fetch-by-batch.service'; import { GmailHandleErrorService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service'; import { parseAndFormatGmailMessage } from 'src/modules/messaging/message-import-manager/drivers/gmail/utils/parse-and-format-gmail-message.util'; import { MessageWithParticipants } from 'src/modules/messaging/message-import-manager/types/message'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class GmailGetMessagesService { diff --git a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts index 84201dc6279..b9a0bd0efd7 100644 --- a/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts +++ b/packages/twenty-server/src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.service.ts @@ -1,11 +1,12 @@ import { Injectable, Logger } from '@nestjs/common'; +import { isDefined } from 'twenty-shared'; + import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity'; import { computeMessageDirection } from 'src/modules/messaging/message-import-manager/drivers/gmail/utils/compute-message-direction.util'; import { MicrosoftGraphBatchResponse } from 'src/modules/messaging/message-import-manager/drivers/microsoft/services/microsoft-get-messages.interface'; import { MessageWithParticipants } from 'src/modules/messaging/message-import-manager/types/message'; import { formatAddressObjectAsParticipants } from 'src/modules/messaging/message-import-manager/utils/format-address-object-as-participants.util'; -import { isDefined } from 'src/utils/is-defined'; import { MicrosoftFetchByBatchService } from './microsoft-fetch-by-batch.service'; import { MicrosoftHandleErrorService } from './microsoft-handle-error.service'; diff --git a/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-version-step.workspace-service.ts b/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-version-step.workspace-service.ts index 04905675b7e..a685e7844c0 100644 --- a/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-version-step.workspace-service.ts +++ b/packages/twenty-server/src/modules/workflow/common/workspace-services/workflow-version-step.workspace-service.ts @@ -3,6 +3,7 @@ import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { v4 } from 'uuid'; +import { isDefined } from 'twenty-shared'; import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action'; import { BASE_TYPESCRIPT_PROJECT_INPUT_SCHEMA } from 'src/engine/core-modules/serverless/drivers/constants/base-typescript-project-input-schema'; @@ -28,7 +29,6 @@ import { WorkflowAction, WorkflowActionType, } from 'src/modules/workflow/workflow-executor/workflow-actions/types/workflow-action.type'; -import { isDefined } from 'src/utils/is-defined'; const TRIGGER_STEP_ID = 'trigger'; diff --git a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-builder.workspace-service.ts b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-builder.workspace-service.ts index 015f5daa0ac..0afd026ea62 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-builder.workspace-service.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-builder/workflow-builder.workspace-service.ts @@ -2,6 +2,7 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; +import { isDefined } from 'twenty-shared'; import { DatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/enums/database-event-action'; import { checkStringIsDatabaseEventAction } from 'src/engine/api/graphql/graphql-query-runner/utils/check-string-is-database-event-action'; @@ -19,7 +20,6 @@ import { WorkflowTrigger, WorkflowTriggerType, } from 'src/modules/workflow/workflow-trigger/types/workflow-trigger.type'; -import { isDefined } from 'src/utils/is-defined'; @Injectable() export class WorkflowBuilderWorkspaceService { diff --git a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/mail-sender/send-email.workflow-action.ts b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/mail-sender/send-email.workflow-action.ts index 01003b30f49..49464640a92 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/mail-sender/send-email.workflow-action.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-executor/workflow-actions/mail-sender/send-email.workflow-action.ts @@ -3,6 +3,7 @@ import { Injectable, Logger } from '@nestjs/common'; import DOMPurify from 'dompurify'; import { JSDOM } from 'jsdom'; import { z } from 'zod'; +import { isDefined } from 'twenty-shared'; import { WorkflowAction } from 'src/modules/workflow/workflow-executor/interfaces/workflow-action.interface'; @@ -20,7 +21,6 @@ import { } from 'src/modules/workflow/workflow-executor/workflow-actions/mail-sender/exceptions/send-email-action.exception'; import { WorkflowSendEmailActionInput } from 'src/modules/workflow/workflow-executor/workflow-actions/mail-sender/types/workflow-send-email-action-input.type'; import { WorkflowActionResult } from 'src/modules/workflow/workflow-executor/workflow-actions/types/workflow-action-result.type'; -import { isDefined } from 'src/utils/is-defined'; export type WorkflowSendEmailStepOutputSchema = { success: boolean; diff --git a/packages/twenty-server/src/modules/workflow/workflow-status/jobs/workflow-statuses-update.job.ts b/packages/twenty-server/src/modules/workflow/workflow-status/jobs/workflow-statuses-update.job.ts index 467fd090072..9083a8e5e18 100644 --- a/packages/twenty-server/src/modules/workflow/workflow-status/jobs/workflow-statuses-update.job.ts +++ b/packages/twenty-server/src/modules/workflow/workflow-status/jobs/workflow-statuses-update.job.ts @@ -1,24 +1,25 @@ import { Scope } from '@nestjs/common'; +import { isDefined } from 'twenty-shared'; + import { Process } from 'src/engine/core-modules/message-queue/decorators/process.decorator'; import { Processor } from 'src/engine/core-modules/message-queue/decorators/processor.decorator'; import { MessageQueue } from 'src/engine/core-modules/message-queue/message-queue.constants'; +import { ServerlessFunctionService } from 'src/engine/metadata-modules/serverless-function/serverless-function.service'; +import { WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace.repository'; import { TwentyORMManager } from 'src/engine/twenty-orm/twenty-orm.manager'; import { WorkflowVersionStatus, WorkflowVersionWorkspaceEntity, } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity'; import { WorkflowWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow.workspace-entity'; -import { getStatusCombinationFromArray } from 'src/modules/workflow/workflow-status/utils/get-status-combination-from-array.util'; -import { getStatusCombinationFromUpdate } from 'src/modules/workflow/workflow-status/utils/get-status-combination-from-update.util'; -import { getWorkflowStatusesFromCombination } from 'src/modules/workflow/workflow-status/utils/get-statuses-from-combination.util'; -import { ServerlessFunctionService } from 'src/engine/metadata-modules/serverless-function/serverless-function.service'; import { WorkflowAction, WorkflowActionType, } from 'src/modules/workflow/workflow-executor/workflow-actions/types/workflow-action.type'; -import { isDefined } from 'src/utils/is-defined'; -import { WorkspaceRepository } from 'src/engine/twenty-orm/repository/workspace.repository'; +import { getStatusCombinationFromArray } from 'src/modules/workflow/workflow-status/utils/get-status-combination-from-array.util'; +import { getStatusCombinationFromUpdate } from 'src/modules/workflow/workflow-status/utils/get-status-combination-from-update.util'; +import { getWorkflowStatusesFromCombination } from 'src/modules/workflow/workflow-status/utils/get-statuses-from-combination.util'; export enum WorkflowVersionEventType { CREATE = 'CREATE', diff --git a/packages/twenty-server/src/utils/compute-display-name.ts b/packages/twenty-server/src/utils/compute-display-name.ts index 728dcd3a174..b024bd39e99 100644 --- a/packages/twenty-server/src/utils/compute-display-name.ts +++ b/packages/twenty-server/src/utils/compute-display-name.ts @@ -1,5 +1,6 @@ +import { isDefined } from 'twenty-shared'; + import { FullNameMetadata } from 'src/engine/metadata-modules/field-metadata/composite-types/full-name.composite-type'; -import { isDefined } from 'src/utils/is-defined'; export const computeDisplayName = ( name: FullNameMetadata | null | undefined, diff --git a/packages/twenty-server/src/utils/is-defined.ts b/packages/twenty-server/src/utils/is-defined.ts deleted file mode 100644 index 1be478d76dd..00000000000 --- a/packages/twenty-server/src/utils/is-defined.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const isDefined = (value: T | null | undefined): value is T => { - return value !== null && value !== undefined; -}; diff --git a/packages/twenty-shared/src/index.ts b/packages/twenty-shared/src/index.ts index 42da3fc6ae2..579e14d5478 100644 --- a/packages/twenty-shared/src/index.ts +++ b/packages/twenty-shared/src/index.ts @@ -6,6 +6,6 @@ export * from './types/ConnectedAccountProvider'; export * from './types/FieldMetadataType'; export * from './utils/fieldMetadata/isFieldMetadataDateKind'; export * from './utils/image/getImageAbsoluteURI'; +export * from './utils/isDefined'; export * from './utils/strings'; export * from './workspace'; - diff --git a/packages/twenty-front/src/utils/__tests__/isDefined.test.ts b/packages/twenty-shared/src/utils/__tests__/isDefined.test.ts similarity index 87% rename from packages/twenty-front/src/utils/__tests__/isDefined.test.ts rename to packages/twenty-shared/src/utils/__tests__/isDefined.test.ts index d5b0bae7dd1..81d379d6fb3 100644 --- a/packages/twenty-front/src/utils/__tests__/isDefined.test.ts +++ b/packages/twenty-shared/src/utils/__tests__/isDefined.test.ts @@ -1,5 +1,4 @@ -import { isDefined } from '~/utils/isDefined'; - +import { isDefined } from '../isDefined'; describe('isDefined', () => { it('returns true if value is not undefined nor null', () => { expect(isDefined('')).toBe(true); diff --git a/packages/twenty-chrome-extension/src/utils/isDefined.ts b/packages/twenty-shared/src/utils/isDefined.ts similarity index 100% rename from packages/twenty-chrome-extension/src/utils/isDefined.ts rename to packages/twenty-shared/src/utils/isDefined.ts diff --git a/packages/twenty-ui/src/display/chip/components/AvatarChip.tsx b/packages/twenty-ui/src/display/chip/components/AvatarChip.tsx index 4cd7736a456..46d098293fc 100644 --- a/packages/twenty-ui/src/display/chip/components/AvatarChip.tsx +++ b/packages/twenty-ui/src/display/chip/components/AvatarChip.tsx @@ -4,9 +4,9 @@ import { AvatarType } from '@ui/display/avatar/types/AvatarType'; import { Chip, ChipSize, ChipVariant } from '@ui/display/chip/components/Chip'; import { IconComponent } from '@ui/display/icon/types/IconComponent'; import { ThemeContext } from '@ui/theme'; -import { isDefined } from '@ui/utilities/isDefined'; import { Nullable } from '@ui/utilities/types/Nullable'; import { MouseEvent, useContext } from 'react'; +import { isDefined } from 'twenty-shared'; // Import Link from react-router-dom instead of UndecoratedLink import { Link } from 'react-router-dom'; diff --git a/packages/twenty-ui/src/display/tag/components/Tag.tsx b/packages/twenty-ui/src/display/tag/components/Tag.tsx index 0a915677164..dc1cb65fb9f 100644 --- a/packages/twenty-ui/src/display/tag/components/Tag.tsx +++ b/packages/twenty-ui/src/display/tag/components/Tag.tsx @@ -9,7 +9,7 @@ import { ThemeContext, ThemeType, } from '@ui/theme'; -import { isDefined } from '@ui/utilities'; +import { isDefined } from 'twenty-shared'; const spacing5 = THEME_COMMON.spacing(5); const spacing2 = THEME_COMMON.spacing(2); diff --git a/packages/twenty-ui/src/display/tooltip/OverflowingTextWithTooltip.tsx b/packages/twenty-ui/src/display/tooltip/OverflowingTextWithTooltip.tsx index 18977b9a09f..cb1e10c1fd8 100644 --- a/packages/twenty-ui/src/display/tooltip/OverflowingTextWithTooltip.tsx +++ b/packages/twenty-ui/src/display/tooltip/OverflowingTextWithTooltip.tsx @@ -4,7 +4,7 @@ import { createPortal } from 'react-dom'; import { THEME_COMMON } from '@ui/theme'; -import { isDefined } from '@ui/utilities'; +import { isDefined } from 'twenty-shared'; import { AppTooltip, TooltipDelay } from './AppTooltip'; const spacing4 = THEME_COMMON.spacing(4); diff --git a/packages/twenty-ui/src/feedback/progress-bar/hooks/useProgressAnimation.ts b/packages/twenty-ui/src/feedback/progress-bar/hooks/useProgressAnimation.ts index be0ed37770a..c028b7b0c06 100644 --- a/packages/twenty-ui/src/feedback/progress-bar/hooks/useProgressAnimation.ts +++ b/packages/twenty-ui/src/feedback/progress-bar/hooks/useProgressAnimation.ts @@ -1,12 +1,12 @@ -import { useCallback, useEffect, useState } from 'react'; import { millisecondsToSeconds } from 'date-fns'; import { animate, AnimationPlaybackControls, ValueAnimationTransition, } from 'framer-motion'; +import { useCallback, useEffect, useState } from 'react'; -import { isDefined } from '@ui/utilities'; +import { isDefined } from 'twenty-shared'; export const useProgressAnimation = ({ autoPlay = true, diff --git a/packages/twenty-ui/src/input/button/components/ButtonGroup.tsx b/packages/twenty-ui/src/input/button/components/ButtonGroup.tsx index e0a8cff1d01..9735685b39a 100644 --- a/packages/twenty-ui/src/input/button/components/ButtonGroup.tsx +++ b/packages/twenty-ui/src/input/button/components/ButtonGroup.tsx @@ -1,7 +1,7 @@ import styled from '@emotion/styled'; import React, { ReactNode } from 'react'; -import { isDefined } from '@ui/utilities'; +import { isDefined } from 'twenty-shared'; import { ButtonPosition, ButtonProps } from './Button'; diff --git a/packages/twenty-ui/src/input/button/components/FloatingButtonGroup.tsx b/packages/twenty-ui/src/input/button/components/FloatingButtonGroup.tsx index 29edea1254b..dd38576bcd9 100644 --- a/packages/twenty-ui/src/input/button/components/FloatingButtonGroup.tsx +++ b/packages/twenty-ui/src/input/button/components/FloatingButtonGroup.tsx @@ -1,7 +1,7 @@ import styled from '@emotion/styled'; import React from 'react'; -import { isDefined } from '@ui/utilities'; +import { isDefined } from 'twenty-shared'; import { FloatingButtonPosition, FloatingButtonProps } from './FloatingButton'; diff --git a/packages/twenty-ui/src/input/code-editor/components/CodeEditor.tsx b/packages/twenty-ui/src/input/code-editor/components/CodeEditor.tsx index a1102309b05..d97074ec997 100644 --- a/packages/twenty-ui/src/input/code-editor/components/CodeEditor.tsx +++ b/packages/twenty-ui/src/input/code-editor/components/CodeEditor.tsx @@ -1,11 +1,11 @@ -import { Loader } from '@ui/feedback/loader/components/Loader'; -import { useTheme, css } from '@emotion/react'; -import Editor, { EditorProps, Monaco } from '@monaco-editor/react'; -import { codeEditorTheme } from '@ui/input'; -import { isDefined } from '@ui/utilities'; +import { css, useTheme } from '@emotion/react'; import styled from '@emotion/styled'; -import { useState } from 'react'; +import Editor, { EditorProps, Monaco } from '@monaco-editor/react'; +import { Loader } from '@ui/feedback/loader/components/Loader'; +import { codeEditorTheme } from '@ui/input'; import { editor } from 'monaco-editor'; +import { useState } from 'react'; +import { isDefined } from 'twenty-shared'; type CodeEditorProps = Omit & { onChange?: (value: string) => void; diff --git a/packages/twenty-ui/src/layout/animated-expandable-container/components/AnimatedExpandableContainer.tsx b/packages/twenty-ui/src/layout/animated-expandable-container/components/AnimatedExpandableContainer.tsx index e0d73d323c3..38cae182a0e 100644 --- a/packages/twenty-ui/src/layout/animated-expandable-container/components/AnimatedExpandableContainer.tsx +++ b/packages/twenty-ui/src/layout/animated-expandable-container/components/AnimatedExpandableContainer.tsx @@ -6,9 +6,9 @@ import { AnimationDurations } from '@ui/layout/animated-expandable-container/typ import { AnimationMode } from '@ui/layout/animated-expandable-container/types/AnimationMode'; import { AnimationSize } from '@ui/layout/animated-expandable-container/types/AnimationSize'; import { getExpandableAnimationConfig } from '@ui/layout/animated-expandable-container/utils/getExpandableAnimationConfig'; -import { isDefined } from '@ui/utilities'; import { AnimatePresence, motion } from 'framer-motion'; import { ReactNode, useRef, useState } from 'react'; +import { isDefined } from 'twenty-shared'; const StyledMotionContainer = styled(motion.div)<{ containAnimation: boolean; diff --git a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemAvatar.tsx b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemAvatar.tsx index 5e845696d49..e62fb81e2d2 100644 --- a/packages/twenty-ui/src/navigation/menu-item/components/MenuItemAvatar.tsx +++ b/packages/twenty-ui/src/navigation/menu-item/components/MenuItemAvatar.tsx @@ -7,8 +7,8 @@ import { } from '@ui/display'; import { LightIconButtonGroup } from '@ui/input'; import { MenuItemIconButton } from '@ui/navigation/menu-item/components/MenuItem'; -import { isDefined } from '@ui/utilities'; import { MouseEvent } from 'react'; +import { isDefined } from 'twenty-shared'; import { StyledHoverableMenuItemBase, StyledMenuItemLeftContent, diff --git a/packages/twenty-ui/src/testing/utils/getCanvasElementForDropdownTesting.ts b/packages/twenty-ui/src/testing/utils/getCanvasElementForDropdownTesting.ts index 94c85f04637..7fd8f273384 100644 --- a/packages/twenty-ui/src/testing/utils/getCanvasElementForDropdownTesting.ts +++ b/packages/twenty-ui/src/testing/utils/getCanvasElementForDropdownTesting.ts @@ -1,4 +1,4 @@ -import { isDefined } from '@ui/utilities'; +import { isDefined } from 'twenty-shared'; export const getCanvasElementForDropdownTesting = () => { const canvasElement = document.getElementsByClassName( diff --git a/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts b/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts index c949672a668..f1b91d4a7e4 100644 --- a/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts +++ b/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts @@ -1,5 +1,5 @@ import { MAIN_COLOR_NAMES, ThemeColor } from '@ui/theme'; -import { isDefined } from '@ui/utilities'; +import { isDefined } from 'twenty-shared'; export const getNextThemeColor = (currentColor?: ThemeColor): ThemeColor => { if (!isDefined(currentColor)) { diff --git a/packages/twenty-ui/src/utilities/dimensions/components/ComputeNodeDimensions.tsx b/packages/twenty-ui/src/utilities/dimensions/components/ComputeNodeDimensions.tsx index 49e84b79fbc..f7b4d39a2fe 100644 --- a/packages/twenty-ui/src/utilities/dimensions/components/ComputeNodeDimensions.tsx +++ b/packages/twenty-ui/src/utilities/dimensions/components/ComputeNodeDimensions.tsx @@ -1,6 +1,6 @@ import styled from '@emotion/styled'; -import { isDefined } from '@ui/utilities'; import { ReactNode, useLayoutEffect, useRef, useState } from 'react'; +import { isDefined } from 'twenty-shared'; type ComputeNodeDimensionsProps = { children: ( diff --git a/packages/twenty-ui/src/utilities/index.ts b/packages/twenty-ui/src/utilities/index.ts index 7dcaf5d6a8b..189ce4fb5ea 100644 --- a/packages/twenty-ui/src/utilities/index.ts +++ b/packages/twenty-ui/src/utilities/index.ts @@ -10,7 +10,6 @@ export * from './device/getOsControlSymbol'; export * from './device/getOsShortcutSeparator'; export * from './device/getUserDevice'; export * from './dimensions/components/ComputeNodeDimensions'; -export * from './isDefined'; export * from './responsive/hooks/useIsMobile'; export * from './screen-size/hooks/useScreenSize'; export * from './state/utils/createState'; diff --git a/packages/twenty-ui/src/utilities/isDefined.ts b/packages/twenty-ui/src/utilities/isDefined.ts deleted file mode 100644 index 81eb67203a0..00000000000 --- a/packages/twenty-ui/src/utilities/isDefined.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { isNull, isUndefined } from '@sniptt/guards'; - -export const isDefined = (value: T | null | undefined): value is T => - !isUndefined(value) && !isNull(value); diff --git a/packages/twenty-ui/src/utilities/utils/getDisplayValueByUrlType.ts b/packages/twenty-ui/src/utilities/utils/getDisplayValueByUrlType.ts index 577906adafc..c630305a455 100644 --- a/packages/twenty-ui/src/utilities/utils/getDisplayValueByUrlType.ts +++ b/packages/twenty-ui/src/utilities/utils/getDisplayValueByUrlType.ts @@ -1,5 +1,5 @@ import { LinkType } from '@ui/navigation/link'; -import { isDefined } from '../isDefined'; +import { isDefined } from 'twenty-shared'; type getUrlDisplayValueByUrlTypeProps = { type: LinkType;