import { Key } from 'ts-key-enum'; import { IconChevronLeft } from 'twenty-ui'; import { IconPicker } from '@/ui/input/components/IconPicker'; import { TextInputV2 } from '@/ui/input/components/TextInputV2'; import { DropdownMenuHeader } from '@/ui/layout/dropdown/components/DropdownMenuHeader/DropdownMenuHeader'; import { DropdownMenuHeaderLeftComponent } from '@/ui/layout/dropdown/components/DropdownMenuHeader/internal/DropdownMenuHeaderLeftComponent'; import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; import { DropdownMenuSeparator } from '@/ui/layout/dropdown/components/DropdownMenuSeparator'; import { useScopedHotkeys } from '@/ui/utilities/hotkey/hooks/useScopedHotkeys'; import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope'; import { useRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentStateV2'; import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { useSetRecoilComponentStateV2 } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentStateV2'; import { ViewsHotkeyScope } from '@/views/types/ViewsHotkeyScope'; import { ViewPickerEditButton } from '@/views/view-picker/components/ViewPickerEditButton'; import { ViewPickerIconAndNameContainer } from '@/views/view-picker/components/ViewPickerIconAndNameContainer'; import { ViewPickerSaveButtonContainer } from '@/views/view-picker/components/ViewPickerSaveButtonContainer'; import { useUpdateViewFromCurrentState } from '@/views/view-picker/hooks/useUpdateViewFromCurrentState'; import { useViewPickerMode } from '@/views/view-picker/hooks/useViewPickerMode'; import { viewPickerInputNameComponentState } from '@/views/view-picker/states/viewPickerInputNameComponentState'; import { viewPickerIsDirtyComponentState } from '@/views/view-picker/states/viewPickerIsDirtyComponentState'; import { viewPickerIsPersistingComponentState } from '@/views/view-picker/states/viewPickerIsPersistingComponentState'; import { viewPickerSelectedIconComponentState } from '@/views/view-picker/states/viewPickerSelectedIconComponentState'; export const ViewPickerContentEditMode = () => { const { setViewPickerMode } = useViewPickerMode(); const [viewPickerInputName, setViewPickerInputName] = useRecoilComponentStateV2(viewPickerInputNameComponentState); const [viewPickerSelectedIcon, setViewPickerSelectedIcon] = useRecoilComponentStateV2(viewPickerSelectedIconComponentState); const viewPickerIsPersisting = useRecoilComponentValueV2( viewPickerIsPersistingComponentState, ); const setViewPickerIsDirty = useSetRecoilComponentStateV2( viewPickerIsDirtyComponentState, ); const setHotkeyScope = useSetHotkeyScope(); const { updateViewFromCurrentState } = useUpdateViewFromCurrentState(); useScopedHotkeys( Key.Enter, async () => { if (viewPickerIsPersisting) { return; } await updateViewFromCurrentState(); }, ViewsHotkeyScope.ListDropdown, ); const onIconChange = ({ iconKey }: { iconKey: string }) => { setViewPickerIsDirty(true); setViewPickerSelectedIcon(iconKey); }; const handleClose = async () => { await updateViewFromCurrentState(); setViewPickerMode('list'); }; return ( <> } > Edit view setHotkeyScope(ViewsHotkeyScope.ListDropdown)} /> { setViewPickerIsDirty(true); setViewPickerInputName(value); }} autoFocus /> ); };