diff --git a/packages/twenty-front/src/modules/settings/data-model/fields/forms/select/utils/generateNewSelectOption.ts b/packages/twenty-front/src/modules/settings/data-model/fields/forms/select/utils/generateNewSelectOption.ts index 2b8d955dc..d8289070e 100644 --- a/packages/twenty-front/src/modules/settings/data-model/fields/forms/select/utils/generateNewSelectOption.ts +++ b/packages/twenty-front/src/modules/settings/data-model/fields/forms/select/utils/generateNewSelectOption.ts @@ -11,7 +11,7 @@ export const generateNewSelectOption = ( const newOptionLabel = generateNewSelectOptionLabel(options); return { - color: getNextThemeColor(options[options.length - 1].color), + color: getNextThemeColor(options[options.length - 1]?.color), id: v4(), label: newOptionLabel, position: options.length, diff --git a/packages/twenty-ui/src/theme/utils/__tests__/getNextThemeColor.test.ts b/packages/twenty-ui/src/theme/utils/__tests__/getNextThemeColor.test.ts index b87e65b1f..61c4f9316 100644 --- a/packages/twenty-ui/src/theme/utils/__tests__/getNextThemeColor.test.ts +++ b/packages/twenty-ui/src/theme/utils/__tests__/getNextThemeColor.test.ts @@ -20,4 +20,9 @@ describe('getNextThemeColor', () => { expect(getNextThemeColor(currentColor)).toBe(nextColor); }); + it('returns the first color when currentColorIsUndefined', () => { + const firstColor: ThemeColor = MAIN_COLOR_NAMES[0]; + + expect(getNextThemeColor(undefined)).toBe(firstColor); + }); }); diff --git a/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts b/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts index 40af82199..c949672a6 100644 --- a/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts +++ b/packages/twenty-ui/src/theme/utils/getNextThemeColor.ts @@ -1,6 +1,10 @@ import { MAIN_COLOR_NAMES, ThemeColor } from '@ui/theme'; +import { isDefined } from '@ui/utilities'; -export const getNextThemeColor = (currentColor: ThemeColor): ThemeColor => { +export const getNextThemeColor = (currentColor?: ThemeColor): ThemeColor => { + if (!isDefined(currentColor)) { + return MAIN_COLOR_NAMES[0]; + } const currentColorIndex = MAIN_COLOR_NAMES.findIndex( (color) => color === currentColor, );