diff --git a/packages/twenty-chrome-extension/package.json b/packages/twenty-chrome-extension/package.json index a9dffcb33..935a06e8d 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 b892790d4..9288c1b97 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 b68adca35..2a616526a 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 14d65addb..b912158a1 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 eefcfefac..ae0afa87a 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 e5b0216c2..db538b29c 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 e5722355f..351110278 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 087346e57..43f5ba555 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 31424e4cf..d4f2c5e49 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 9bc4c3d77..42a88e807 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 bff265f79..b5bee62ab 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 607233ba9..fd78909d2 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 44fc354b3..8bfb01a9a 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 ba8e79110..aeab5219b 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 e4c959ba0..b9671c030 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 3bea68701..bbdfcc21f 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 7decf1d13..83a75d818 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 058a2a16b..a8d01dfda 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 c647089f6..77d37e10d 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 9ef8354f7..1da2f30c3 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 15f8d0850..4bbd1aa15 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 6b052d60c..df752634b 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 eace0a761..004396900 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 0fbc2ad36..0d96a2759 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 cea62d143..5278bffea 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 80f3b1960..649350ee4 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 00d924365..202a5620e 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 f5a4bc316..e6d6cd561 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 873993ee4..b6709245d 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 d5db87b19..2f7c9e3bb 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 e5d653c88..6198b13a2 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 b5933d9a9..68669ffd2 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 bb2f70f8b..6dd43d603 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 2736ab0f1..662edbf06 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 dc3c0a33b..e014985f6 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 01c6340bd..4546a46ae 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 3f94091f2..156f65987 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 8d8175483..7740a7665 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 a143f9aca..4e0696a09 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 be82a371c..fd766d8c3 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 9a87deb49..03527586a 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 685fdc0c8..b5ad1771e 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 8fabec9d5..11cb67c02 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 751122499..7ecb7c456 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 4dab9fa2f..dfabf9692 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 8f58f0613..6bfa8f123 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 ca1e63ee2..858f1077d 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 1cc6de187..047bc21ba 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 4b8edec3a..63e7c48ba 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 21c5e539b..e203711bb 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 e3295d57e..65e457ef0 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 7fbda840c..b29a2b291 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 76e91ec8b..c87dba580 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 c345d81f4..a58c05a4c 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 6e20cfc4f..61c17503f 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 7114bd427..9f7e9061f 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 4e141de6b..a784fd2f4 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 cd5ce8a73..f26bc8c79 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 368a2ee2a..21f47bccc 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 6b762f221..9854f8af1 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 11b3c03c8..86b2bbe86 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 54af02ea6..9acca6114 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 8ed05ecd0..ba03721ef 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 15878796f..0a762ee34 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 52e88985e..f49859647 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 d74849eec..be977922d 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 5096989f0..656fa509a 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 2786db896..072c482a7 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 174c5c3ba..233c9209a 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 368276052..674ce12a6 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 8de16cddb..c4d41e3ad 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 0101ccbbf..272486459 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 120a71eea..d82b6fd8c 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 0d1fd5d17..7d7bd58b7 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 b3696dde1..96ec29b6c 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 29691cfa7..28453ef00 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 8b4a53ba4..327ca76f6 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 8a600b197..6d3b0239c 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 ef1af97ed..630f19f45 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 e2c7e4b0b..209618eff 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 adc5aceb0..22e2fbbeb 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 f7f98e702..e33142a4b 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 ac34e0a6f..67f48d8c8 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 5981639e8..19ed37ad0 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 eb94ecc42..136494f5f 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 9b39906a1..6667fbe67 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 d5aee4267..dcae344a6 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 e71b4fe30..220b9a15a 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 4a8af1a47..a8c85c3b6 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 c656e82eb..20326eeb1 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 d4f7efc66..f165d9357 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 e74c3f6ed..c526fe2b8 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 884339b46..aaa4386d8 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 0ce4bf68c..74ce46a36 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 4a331e389..1d2f18d55 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 606ae42b4..49d82b311 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 116ba20a0..047cd6469 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 27eb9a9ea..4920f9f63 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 fc053da09..0fb57acf6 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 f97336d14..5944d7766 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 ffa69d783..bd56909d1 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 28263ed5f..43edd1bb0 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 107854221..8ae5b887a 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 8158c742a..55803f785 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 ca2511d8c..91e3a0ec0 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 59e79004d..46d6d32fb 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 9ceb953e2..008263400 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 c180f3123..92da0912c 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 b1cc81abd..244f7fdd6 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 d6d914d83..532178c11 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 cb3168ab8..b3fa4412d 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 fca96e2cb..e95fa2579 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 09f4190de..d0abf01e1 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 efb5c6594..425837536 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 1ad2595e8..6881b6eae 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 1daffe5f9..0960deee4 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 c1827d284..0d5e433cc 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 0a8d3e860..5247be17c 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 1783ea61f..565aca721 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 c407749ab..1a5f1c004 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 ce387eb99..441372a12 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 00243cc5a..69950aea0 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 a408c8dbd..1cdc658cf 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 2c04bfe10..0cbccc42a 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 368cd41f3..9ae2d9fe0 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 35bee6877..614f6ab50 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 1a40a8767..d5730a9ef 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 6c2d25556..2f4d69471 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 abd71f5ac..1c259f466 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 9518cef60..f4bbce267 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 bda3b7a42..85e0d3a78 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 eda1fe1c1..8daba133c 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 6b38e861a..3e08f6ccc 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 b6149454c..c9a7ad93c 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 31fb89655..6435f1e0f 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 cab73ebbd..3529b286e 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 23daf1ec6..c2c9b1bcb 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 66c58312b..f66f4c8e1 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 7870c00cc..fcc768267 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 19262db75..0805c2f3f 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 3333ae281..8c6bb3212 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 17c80b4c1..ddbda5587 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 0988811a6..46d3bfcfe 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 cb3acf657..16a2205d6 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 cbeaf1bce..ca03bd89a 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 58dc741e1..2d3846bd3 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 e26be2c46..b434efa94 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 0edc16412..abdbf7639 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 0ddbde032..34c714aea 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 f0f89bfb2..587d77bc5 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 1bc1c3f5d..b07b66fe5 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 f5bef1f9f..acee58733 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 7c1f90162..1e8dae6bf 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 3cc80ffc0..e1859244d 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 6c7ac9243..fe8295eec 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 3fdec73c5..77b980e6f 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 6d792baa8..891521ee6 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 efcc83ba5..fe0dbd640 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 71b3b356c..b87f88caf 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 8a29a12a9..48bf47878 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 cc888c61d..8b41f8496 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 b63a8817e..dd2299a03 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 5639d82ea..cf61eda46 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 4895bfd76..16eff5a93 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 3bcd47afa..9a67fe069 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 7b8d45ab5..314b49c95 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 4e930fc4f..6f499d75b 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 b38c0bba8..c2946592d 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 63b127408..95994896d 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 35a0dda04..2408a69f8 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 2f4843e68..91e5799bf 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 f156395f3..1561ecc4f 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 0095e1ded..32d9fe4ff 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 29bef2b12..87e5d7569 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 7c4d89988..1501b2d64 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 ad27e0355..fdba7a543 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 95a3e2965..b357c2885 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 a1a9090af..8f0963902 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 0176248f4..f33ac3507 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 a3ea73e77..48df5df53 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 5ba322b34..c97d3eee9 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 cdc01e619..142cc82e7 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 e5d944f7b..68dc4de55 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 90c5aad7e..c6ac040dc 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 7194948b9..3f4e998f7 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 7cca096a5..6d0a96a1e 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 07f615af5..c4456ef83 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 d3125b5f2..5c9b80300 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 446aeed8b..26d4ade28 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 ab2dde8d7..f419651dc 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 568d8ce65..74cb7e6c0 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 74ec57afc..ef0b1cd8f 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 e9b10179e..eceb8c155 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 5a5970587..86c389d0b 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 7267b6701..3ad94bb3c 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 888f59aed..2fe5ef63b 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 7c2754da1..3c8d1630c 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 84810afb7..7415a761c 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 cc192ddbc..fd454d5fc 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 bb5a14c60..f2d1d78b9 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 ec4d6eb99..ebc47f132 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 b9e5db952..74a2e2a68 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 4e5b407f2..ac37b470e 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 e8e3ebe3f..b70f208d4 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 703be51be..a0e043890 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 ba82b14c5..24650021f 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 6a96749f8..c6b30384b 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 1124458b6..9fe27d438 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 3a5d668ad..1278d40ca 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 9110c1cc7..f1b4ece96 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 27b182ed8..0a6d4a7b0 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 93e1f05c7..e7d124118 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 e500f1234..437a40f87 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 897447249..290c566ff 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 ce0e0432e..b5dae8bc1 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 139e3806b..76baff77f 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 0ebff1827..b3cec7e8f 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 229f69b52..614b6e577 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 c209a6b0e..ad4de00f2 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 040d6ae35..851318d33 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 2476ccc05..9dd14c5e5 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 247bdd14c..6a48cf59a 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 bcc7d25be..00c4b2cd3 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 b285fe345..5aefe00ef 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 f3471ea3a..523fd072f 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 ff60d05d0..e105cca85 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 c192de208..6d3a4809e 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 a4588c6d5..4604b54a2 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 2e589db7a..1abdeb8a9 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 4a4600d67..f01084d45 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 37f26cc00..66baa1fb6 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 189e51470..e9b4a5f87 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 c6753a572..a8759cea3 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 46285e38b..1f3f149dd 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 0d7451bd5..5aba61c52 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 77547999e..7f16fd05d 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 3cac0bca2..12573f3dc 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 47ae746da..6175877e1 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 c78a47d1e..68b682cc3 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 60a92cc4c..b85b14257 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 8e2f02364..05b675616 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 189385d73..5d9c5cb0c 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 dc74cff10..f59a39023 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 55af955e5..4054c2825 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 20c8630e6..ae38eabbc 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 fae00fd95..bf1efc24c 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 6e852d10c..cb62db6b6 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 2dfd0aa8d..e1826d763 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 df862c132..7a284b016 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 1949bfbda..0e101cc95 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 4b7884046..5143256f9 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 cf44d0de5..50c225bf6 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 1d192d690..bd5620f33 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 377e75f32..11593254b 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 f5348821c..2a8727d3d 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 ce8d472bd..212b45651 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 f18bdc769..e2f4ded6e 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 77782e550..5217b7a3f 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 1b9e1c378..803210bf5 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 e1ee1ac3d..ea3dd0aa2 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 29482fb1f..cca9e525e 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 ebac778c4..a9087624f 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 07d5e0d9c..6b862a8e2 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 5945af71d..2ab5ae565 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 372109ef6..34c2be761 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 1fb2a3948..dbec589c0 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 b4496199c..fe2e1246c 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 af0a9a0ca..3907ed8f7 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 a553c3f2e..9e6f0dea7 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 cdecc42ad..298239ff9 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 91b689134..68b7ebb3f 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 650a4825d..9bcb8adf5 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 1f5ae2950..bf20cefc4 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 ed07e891c..e466cccff 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 c27f5042f..a71b4ae11 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 effe3c870..38d0e9e54 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 b2a252a3c..c15ca6c50 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 2a6481d29..2c4d1f916 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 e58c35bf9..927ed81cb 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 8ca50d4a4..fd7c662b1 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 8aec5bce2..7375d3ee4 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 ac84b6682..ea3287c2e 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 381d87f66..34bc476a2 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 bf40934e0..2d5537bc8 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 405cf68b9..30cab94cc 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 484932e73..2620ec8a3 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 81378bf76..8005bf21c 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 dd2353410..e4ce97d95 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 e2c47d282..f2f1a7300 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 7efaa57eb..8d82a5584 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 6385b0cda..7f37e0848 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 110591d3e..a4068655e 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 d48e88dfc..903271e2b 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 a71d6ed07..1255bcd95 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 d6fb8cf5a..77aaed765 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 79fa857a1..ecb16ff37 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 36f7134d4..d43a8ddb5 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 a4feec43d..35417309c 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 9401ec6c4..38a183076 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 54233dc35..cbcb69291 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 12c43dfb1..bce4790f2 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 ec2a4fcbf..0aa096723 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 b4298fe51..62a492699 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 635dd129e..5e3cb52dc 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 cc29f7e58..07b62aa5a 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 af6b898cb..1a39b4a2d 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 01561fb2f..d14bfc0ba 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 48a69acc0..553453794 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 9e4eae342..d52f92681 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 1edfc63ce..70b282a17 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 8c575097a..a3b84f4c7 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 12e89fd55..7a28439ac 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 cc2f45072..c5f1516c6 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 14ad0ed11..9226bef30 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 439723164..18db70610 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 50bf976b5..729f476f4 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 2fe623a69..6b2b76be7 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 febaa3f08..4dbdc6295 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 52e01318e..2ca2660b1 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 04684c2ac..1e143eaee 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 992667a83..b9568ffbe 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 a246395b6..eebff913e 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 75089eaf6..f5ae25ed1 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 e2737dadc..7d71c0e78 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 fd03c8c00..16bfd7398 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 78accbd33..7c823d8ec 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 d3bef1342..585ad3949 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 8be2bd420..aa63b01be 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 e4a1b7b74..d5e092950 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 3b3086bb3..a8e83b81b 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 08d75a976..53dc1a871 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 034dca35e..1aaeed14d 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 d94cc00d6..06d101ba9 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 28fc99625..7946af065 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 249692646..94ded0928 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 8e31f5988..666b181ef 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 531608fef..c60bc19ab 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 d54d8a976..bb48bcbeb 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 3bed37543..36fb9ad1b 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 8d8aba0b4..00c05feed 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 a771bcd6e..c0e373b15 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 bfae8a470..7cbb867f2 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 355ba9de7..014d96c1d 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 901b47aad..39127f9f6 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 48b13dc55..b2bd155c8 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 59ae9358b..edd496c51 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 b1d19104e..83e3714f3 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 e6a84470f..374cce311 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 6be49b7a8..89a5de0b5 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 cdfa22e76..ee9af1da5 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 2012d5ba9..a2498d774 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 de47fbf31..a2d5dbcc1 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 12efb1b61..1816b60dc 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 41a85a10a..6609820d6 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 114d196dd..502956eff 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 bc582345f..101270e97 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 d7d3e8702..61d3bb423 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 5a7231242..5f55f2707 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 4f61530b7..4c9104807 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 0711b54b8..72c7215fc 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 45e0fd414..3947d83de 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 1ab3fe8e0..6b1432616 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 f4b82434a..247c10c79 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 9d0a26347..e06ef21a0 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 819c9a294..ca07c9d6a 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 33010ba9f..508921062 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 a19fbd6ee..c150e0050 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 d3a45dbfb..2eac21632 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 dc87cbf0c..3c4a9ceb9 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 2533b0542..cbb412b4b 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 3dd5ce612..3b4a31a9f 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 9fe65415b..94f1b4569 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 351f3c3d1..560dc866a 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 e663f7e2f..146bcc41a 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 ced095e33..d0ea6e344 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 1a915825e..21e9ac782 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 61f69af49..4fc803b86 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 e5b781432..344fd0753 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 c45dc2ddd..5e13f2d17 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 90d1375df..6ace2939c 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 0987942da..edad40cff 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 983e3c602..faac11358 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 1bbb5e366..c1ad5920f 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 5d8e87d1f..440fb8e6c 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 af6ef7cba..1bdf6aec3 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 4ff252cab..048b06dce 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 e235fd79d..c1300f2b8 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 20673087e..1a72e3353 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 f275b6dc0..7b3131da6 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 80d1d4c7b..9c25b8722 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 7d6149881..832999fb8 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 aa04c5533..d74d8528b 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 246c03f03..317527d48 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 3a3e8b903..ae00c8ee9 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 910548d73..8f3e15130 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 d00201e5f..fe85b7169 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 2f73b062c..6756c0cc9 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 2417f29c6..0457919fd 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 d455c6f63..1983a1ea6 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 2f3773df9..b7c9ec052 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 a222a1daf..aff45654a 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 d30ee10b2..b0776841e 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 4019e3619..dd431c6c2 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 feff9e41d..b4da197ea 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 4bd759ba5..3b7ad89f7 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 34e8c2f07..7e4141966 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 2e4d0f1c8..a90ef228f 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 767f3cf68..eaacac417 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 59709a48f..1c0c08143 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 0d6155d2e..ecc9b599e 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 c5ab5bb2e..5d73ebe81 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 0127d7b72..fb10a84bf 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 95ef0c28c..8b4771f94 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 08d7703a0..836d3bea1 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 71ea331d4..dd6ac30f4 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 916634b24..37425e232 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 75a071793..8ec72a7f6 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 b67e8f874..859a0a985 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 c7849dd6c..dafcaa157 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 d609c3931..306c70b16 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 e134cfb8e..74fe0bbea 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 42ed61867..7d5b510a4 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 0594b3e4e..79854ba9e 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 539e53dee..4855c93b6 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 2dfeeaa5e..59c19f4f0 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 bfee6650c..4dfbd4ad7 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 e34bf6739..c62c8a235 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 1df237c3d..95da1b187 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 b717fb4b2..5cb00f94f 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 6168eec8e..d1d6de804 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 364b511ea..c60eeb9f3 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 579c7891d..31e4cd981 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 4e71b7dd1..f64d4342c 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 0dbda0539..37aadc98d 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 896c07117..c1f6540cb 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 1e54e35f6..c7a635664 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 04ef74d31..eee236a82 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 f65967bb2..2da43ab34 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 0662c192e..ffa71ff8c 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 b24d7e246..c81888a6f 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 543d99f86..4a2e48dc9 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 39c009d82..fe750afc0 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 cb47cb322..768f6f8b9 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 2820dfbee..5f2a8cdd9 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 4788885db..e88547145 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 642e3e86e..d3fa8495d 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 5ef1f5765..422f6bdfa 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 57c7bec9e..e6da76708 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 525914104..dbedb096b 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 305d7f230..5c2f8a8f8 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 c0016dada..cc70c4a5b 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 291b230af..da4499094 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 783bad350..15ffb01de 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 300da8040..425e7d171 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 8026fdf62..5e0e92383 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 bdd870f7a..233cfa25c 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 4aff2c153..1944a8236 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 9b3849a8c..4a9687725 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 3b734eaab..23f55f5af 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 27ac9f86a..192c9c6be 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 c27e655d0..804fc1c15 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 761458006..67253747c 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 25baa6fac..6630050a5 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 c88677308..6b841f303 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 ce52288ea..41cf12971 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 36bb2df80..57aeb8b56 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 e168b5e1b..e1ed93733 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 08c3b3378..fb1dd66b8 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 c881250e8..2d031a8e8 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 947984526..eade4a306 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 5cf3759f6..d7689b2b7 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 bdc719ac1..0bf8c0e65 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 629723f6b..9726d9aa0 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 1d14cc6a9..eccc0bf41 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 7ada32c61..ed8c194f7 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 141eaf412..73012617a 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 1386d810b..b73e5d530 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 b9de4a5ca..cee2a148b 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 cc5a4286b..489705908 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 8c70d3648..aa3931076 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 221083ea0..75e4f406e 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 3f83e5956..433246f8b 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 07df7bfc8..81a2a6499 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 775034d11..69ef70eed 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 a41f9ebe4..3a5313f6d 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 54799534e..300ffad6e 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 099ccdab4..23dac27bb 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 3b96e295c..fd2b4a48c 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 c634c91ec..835271543 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 ee2906b3b..84df810b2 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 0d8eb19d1..4fab4e61b 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 7fba31d21..c8d5ec57b 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 f2571af56..f3631730e 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 38df0ecb2..989c0da20 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 5ba8dd16d..cf75362ae 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 a43a2d4f5..5e138f7b4 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 cc1accb56..783790538 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 7db972074..94f0f3539 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 81eb67203..000000000 --- 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 f9925c7e9..5804b3c82 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 6c40b2093..570c3b0b0 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 45ee92a9e..a233a5115 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 5c409e7dc..a926347ed 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 26bdf699d..279393c12 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 bcf2a5fef..93cf02386 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 c5fad015f..6911040dc 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 9f81c733d..c379e61a0 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 0957978f0..1ab52158c 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 1be177ba4..4af65cb52 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 0ed2d7391..5eab6be3b 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 4a201a82c..cd0002d43 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 33052ef83..13b53e9ea 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 f0577cff2..6f51204f0 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 9e5a3ea11..0f6232ab8 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 e53b20eac..dbe6f71d7 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 9022ccea3..93d886719 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 766be0b13..2f2d34952 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 f3237e794..51ec81933 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 2b96e9348..742c8614f 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 cda344200..9a0e40d9f 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 ed724900e..ea20e8b98 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 72e4253b6..2f1dcd733 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 ba92894be..526f49cf1 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 c5ee2eeba..be24cc14f 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 c0ab6d405..91a69e3e6 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 af0746159..cbf1734f3 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 27ef8baca..2a65510f3 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 6103bd8c3..a8711dd87 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 cd1cde7a3..c86ab3122 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 1fa56e476..e53cf11d5 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 0f06c7d55..75cc0aae1 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 f9e95804d..387449256 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 ebbb11a42..afb5ecb22 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 ce228e3d9..34fe3f1e1 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 84201dc62..b9a0bd0ef 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 04905675b..a685e7844 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 015f5daa0..0afd026ea 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 01003b30f..49464640a 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 467fd0900..9083a8e5e 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 728dcd3a1..b024bd39e 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 1be478d76..000000000 --- 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 42da3fc6a..579e14d54 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 d5b0bae7d..81d379d6f 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 4cd7736a4..46d098293 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 0a9156771..dc1cb65fb 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 18977b9a0..cb1e10c1f 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 be0ed3777..c028b7b0c 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 e0a8cff1d..9735685b3 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 29edea125..dd38576bc 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 a1102309b..d97074ec9 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 e0d73d323..38cae182a 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 5e845696d..e62fb81e2 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 94c85f046..7fd8f2733 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 c949672a6..f1b91d4a7 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 49e84b79f..f7b4d39a2 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 7dcaf5d6a..189ce4fb5 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 81eb67203..000000000 --- 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 577906ada..c630305a4 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;