[CHORE] Avoid isDefined duplicated reference, move it to twenty-shared (#9967)

# Introduction
Avoid having multiple `isDefined` definition across our pacakges
Also avoid importing `isDefined` from `twenty-ui` which exposes a huge
barrel for a such little util function

## In a nutshell
Removed own `isDefined.ts` definition from `twenty-ui` `twenty-front`
and `twenty-server` to move it to `twenty-shared`.
Updated imports for each packages, and added explicit dependencies to
`twenty-shared` if not already in place

Related PR https://github.com/twentyhq/twenty/pull/9941
This commit is contained in:
Paul Rastoin
2025-02-01 12:10:10 +01:00
committed by GitHub
parent d9b86475d3
commit 7fd89678b7
559 changed files with 731 additions and 770 deletions

View File

@ -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;

View File

@ -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<Value extends string | number | boolean | null> = {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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';

View File

@ -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<typeof DateTimePicker> = {

View File

@ -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';

View File

@ -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<HTMLInputElement>(null);