Files
twenty_crm/front/src/modules/ui/board/card-field/components/BoardCardEditableFieldText.tsx
Gustavo Félix 59eb10ccc4 fix(#753): add autoComplete attribute for remove suggestion of passwo… (#913)
* fix(#753): add autoComplete attribute for remove suggestion of password managers

* fix(#753): add autoComplete attribute for remove suggestion of password managers

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

* Update front/src/modules/ui/inplace-input/components/InplaceInputDoubleText.tsx

---------

Co-authored-by: Charles Bochet <charlesBochet@users.noreply.github.com>
2023-07-25 11:21:45 -07:00

49 lines
1.4 KiB
TypeScript

import { ChangeEvent, useMemo, useState } from 'react';
import { InplaceInputTextDisplayMode } from '@/ui/display/component/InplaceInputTextDisplayMode';
import { StyledInput } from '@/ui/inplace-input/components/InplaceInputTextEditMode';
import { debounce } from '~/utils/debounce';
import { BoardCardEditableField } from './BoardCardEditableField';
type OwnProps = {
placeholder?: string;
value: string;
onChange: (newValue: string) => void;
editModeHorizontalAlign?: 'left' | 'right';
};
export function BoardCardEditableFieldText({
value,
placeholder,
onChange,
editModeHorizontalAlign,
}: OwnProps) {
const [internalValue, setInternalValue] = useState(value);
const debouncedOnChange = useMemo(() => {
return debounce(onChange, 200);
}, [onChange]);
return (
<BoardCardEditableField
editModeHorizontalAlign={editModeHorizontalAlign}
editModeContent={
<StyledInput
placeholder={placeholder || ''}
autoFocus
value={internalValue}
autoComplete="off"
onChange={(event: ChangeEvent<HTMLInputElement>) => {
setInternalValue(event.target.value);
debouncedOnChange(event.target.value);
}}
/>
}
nonEditModeContent={
<InplaceInputTextDisplayMode>{value}</InplaceInputTextDisplayMode>
}
></BoardCardEditableField>
);
}