From 11a47264a72a95fe2d6bb93f3c8d09cce3444ec8 Mon Sep 17 00:00:00 2001 From: Etienne <45695613+etiennejouan@users.noreply.github.com> Date: Fri, 10 Jan 2025 18:32:52 +0100 Subject: [PATCH] fix: fix regression on multiItem input field when no item (#9543) ### Context Fix on [8904 issue](https://github.com/twentyhq/twenty/issues/8904) ([PR](https://github.com/twentyhq/twenty/pull/9439)) introduces a regression when field has no item. Background should be lighter. Screenshot 2025-01-10 at 16 08 03 ### Solution Conditional styling, displayed only when MultiInput has item Screenshot 2025-01-10 at 16 08 20 Co-authored-by: etiennejouan --- .../input/components/MultiItemBaseInput.tsx | 14 +++++++++++--- .../input/components/MultiItemFieldInput.tsx | 1 + .../input/components/PhonesFieldInput.tsx | 19 +++++++++++++------ .../PhoneCountryPickerDropdownButton.tsx | 2 +- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemBaseInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemBaseInput.tsx index cc4678d2c..4663b3989 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemBaseInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemBaseInput.tsx @@ -9,12 +9,17 @@ import { useCombinedRefs } from '~/hooks/useCombinedRefs'; const StyledInput = styled.input<{ withRightComponent?: boolean; hasError?: boolean; + hasItem: boolean; }>` ${TEXT_INPUT_STYLE} - background-color: ${({ theme }) => theme.background.transparent.lighter}; - border-radius: 4px; - border: 1px solid ${({ theme }) => theme.border.color.medium}; + ${({ hasItem, theme }) => + hasItem && + css` + background-color: ${theme.background.transparent.lighter}; + border-radius: 4px; + border: 1px solid ${theme.border.color.medium}; + `} box-sizing: border-box; font-weight: ${({ theme }) => theme.font.weight.medium}; @@ -70,6 +75,7 @@ export type MultiItemBaseInputProps = HTMLInputProps & { }) => React.ReactNode; error?: string | null; hasError?: boolean; + hasItem: boolean; }; export const MultiItemBaseInput = forwardRef< @@ -93,6 +99,7 @@ export const MultiItemBaseInput = forwardRef< renderInput, error = '', hasError = false, + hasItem, }, ref, ) => { @@ -129,6 +136,7 @@ export const MultiItemBaseInput = forwardRef< onChange={onChange} ref={combinedRef} withRightComponent={!!rightComponent} + hasItem={hasItem} /> )} {!!rightComponent && ( diff --git a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemFieldInput.tsx b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemFieldInput.tsx index 224936435..e0848f415 100644 --- a/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemFieldInput.tsx +++ b/packages/twenty-front/src/modules/object-record/record-field/meta-types/input/components/MultiItemFieldInput.tsx @@ -199,6 +199,7 @@ export const MultiItemFieldInput = ({ ) } onEnter={handleSubmitInput} + hasItem={!!items.length} rightComponent={ items.length ? ( theme.background.transparent.lighter}; - border-radius: 4px; - border: 1px solid ${({ theme }) => theme.border.color.medium}; - height: 30px; +const StyledCustomPhoneInputContainer = styled.div<{ + hasItem: boolean; +}>` + ${({ hasItem, theme }) => + hasItem && + css` + background-color: ${theme.background.transparent.lighter}; + border-radius: 4px; + border: 1px solid ${theme.border.color.medium}; + height: 30px; + `} `; const StyledCustomPhoneInput = styled(ReactPhoneNumberInput)` @@ -130,7 +137,7 @@ export const PhonesFieldInput = ({ )} renderInput={({ value, onChange, autoFocus, placeholder }) => { return ( - + ` cursor: pointer; display: flex; - height: 30px; + height: 32px; padding-left: ${({ theme }) => theme.spacing(2)}; padding-right: ${({ theme }) => theme.spacing(1)};