import { EnvironmentVariable } from '@/settings/serverless-functions/components/tabs/SettingsServerlessFunctionTabEnvironmentVariablesSection'; import { TextInputV2 } from '@/ui/input/components/TextInputV2'; import { Dropdown } from '@/ui/layout/dropdown/components/Dropdown'; import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown'; import { TableCell } from '@/ui/layout/table/components/TableCell'; import { TableRow } from '@/ui/layout/table/components/TableRow'; import styled from '@emotion/styled'; import { useState } from 'react'; import { IconCheck, IconDotsVertical, IconPencil, IconTrash, IconX, OverflowingTextWithTooltip, } from 'twenty-ui/display'; import { LightIconButton } from 'twenty-ui/input'; import { MenuItem } from 'twenty-ui/navigation'; const StyledEditModeTableRow = styled(TableRow)` grid-template-columns: 180px auto 56px; `; const StyledTableRow = styled(TableRow)` grid-template-columns: 180px 300px 32px; `; export const SettingsServerlessFunctionTabEnvironmentVariableTableRow = ({ envVariable, onChange, onDelete, initialEditMode = false, }: { envVariable: EnvironmentVariable; onChange: (newEnvVariable: EnvironmentVariable) => void; onDelete: () => void; initialEditMode?: boolean; }) => { const [editedEnvVariable, setEditedEnvVariable] = useState(envVariable); const [editMode, setEditMode] = useState(initialEditMode); const dropDownId = `settings-environment-variable-dropdown-${envVariable.id}`; const { closeDropdown } = useDropdown(dropDownId); return editMode ? ( setEditedEnvVariable({ ...editedEnvVariable, key: newKey }) } placeholder="Name" fullWidth /> setEditedEnvVariable({ ...editedEnvVariable, value: newValue }) } placeholder="Value" fullWidth /> { if (envVariable.key === '' && envVariable.value === '') { onDelete(); } setEditedEnvVariable(envVariable); setEditMode(false); }} /> { onChange(editedEnvVariable); setEditMode(false); }} /> ) : ( setEditMode(true)}> } dropdownComponents={ { setEditMode(true); closeDropdown(); }} /> { onDelete(); closeDropdown(); }} /> } dropdownHotkeyScope={{ scope: dropDownId }} /> ); };