import { FormTextFieldInput } from '@/object-record/record-field/ui/form-types/components/FormTextFieldInput'; import { SettingsDatabaseEventsForm } from '@/settings/components/SettingsDatabaseEventsForm'; import { Table } from '@/ui/layout/table/components/Table'; import { TableHeader } from '@/ui/layout/table/components/TableHeader'; import { TableRow } from '@/ui/layout/table/components/TableRow'; import { styled } from '@linaria/react'; import { useLingui } from '@lingui/react/macro'; import { H2Title, OverflowingTextWithTooltip } from 'twenty-ui/display'; import { Section } from 'twenty-ui/layout'; import { isDefined } from 'twenty-shared/utils'; import { TableCell } from '@/ui/layout/table/components/TableCell'; import { REACT_APP_SERVER_BASE_URL } from '~/config'; import { Tag } from 'twenty-ui/components'; import { type LogicFunction } from '~/generated-metadata/graphql'; import { themeCssVariables } from 'twenty-ui/theme-constants'; const ROUTE_TRIGGER_GRID_TEMPLATE_COLUMNS = '1fr 120px 120px'; const StyledRouteTriggerTableHeaderRowWrapper = styled.div` margin-bottom: ${themeCssVariables.spacing[2]}; `; const StyledEmptyState = styled.div` align-items: center; color: ${themeCssVariables.font.color.tertiary}; display: flex; font-size: ${themeCssVariables.font.size.md}; height: 160px; justify-content: center; text-align: center; `; export const SettingsLogicFunctionTriggersTab = ({ logicFunction, }: { logicFunction: LogicFunction; }) => { const { t } = useLingui(); const cronTrigger = logicFunction.cronTriggerSettings; const routeTrigger = logicFunction.httpRouteTriggerSettings; const databaseEventTriggerSettings = logicFunction.databaseEventTriggerSettings; let databaseEventTrigger = undefined; if (isDefined(databaseEventTriggerSettings)) { const [object, action]: [string, string] = databaseEventTriggerSettings.eventName.split('.'); databaseEventTrigger = { object, action, updatedFields: databaseEventTriggerSettings.updatedFields, }; } const hasNoTriggers = !cronTrigger && !routeTrigger && !databaseEventTrigger; if (hasNoTriggers) { return (
{t`No triggers configured for this function.`}
); } return ( <> {isDefined(databaseEventTrigger) && (
)} {isDefined(cronTrigger) && (
{}} readonly defaultValue={cronTrigger.pattern} />
)} {isDefined(routeTrigger) && (
{t`Path`} {t`Method`} {t`Auth Required`} {routeTrigger.httpMethod}
)} ); };