From e2ee4ffdfff28eda61bbf544aaf43c83c4bbc437 Mon Sep 17 00:00:00 2001 From: Priyanshu Bartwal Date: Fri, 22 May 2026 02:44:42 +0530 Subject: [PATCH] Fix: Added description below application variable (#20781) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #20757 Before: Screenshot 2026-05-21 at 12 51 25 AM After: Screenshot 2026-05-21 at 12 50 52 AM --------- Co-authored-by: Etienne <45695613+etiennejouan@users.noreply.github.com> --- ...icationDetailEnvironmentVariablesTable.tsx | 103 +++++++++++++----- 1 file changed, 74 insertions(+), 29 deletions(-) diff --git a/packages/twenty-front/src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx b/packages/twenty-front/src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx index 09487ffcde..4a39abe069 100644 --- a/packages/twenty-front/src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx +++ b/packages/twenty-front/src/pages/settings/applications/tabs/SettingsApplicationDetailEnvironmentVariablesTable.tsx @@ -1,12 +1,18 @@ -import { type ApplicationVariable } from '~/generated-metadata/graphql'; -import { t } from '@lingui/core/macro'; -import { H2Title } from 'twenty-ui/display'; -import { Section } from 'twenty-ui/layout'; import { TextInput } from '@/ui/input/components/TextInput'; -import { useDebouncedCallback } from 'use-debounce'; -import { useState } from 'react'; import { styled } from '@linaria/react'; -import { themeCssVariables } from 'twenty-ui/theme-constants'; +import { t } from '@lingui/core/macro'; +import { isNonEmptyString } from '@sniptt/guards'; +import { useContext, useState } from 'react'; +import { + AppTooltip, + H2Title, + IconInfoCircle, + TooltipDelay, +} from 'twenty-ui/display'; +import { Section } from 'twenty-ui/layout'; +import { ThemeContext, themeCssVariables } from 'twenty-ui/theme-constants'; +import { useDebouncedCallback } from 'use-debounce'; +import { type ApplicationVariable } from '~/generated-metadata/graphql'; const StyledContainer = styled.div` display: flex; @@ -14,6 +20,19 @@ const StyledContainer = styled.div` gap: ${themeCssVariables.spacing[4]}; `; +const StyledLabelRow = styled.div` + align-items: center; + display: flex; + gap: ${themeCssVariables.spacing[1]}; + margin-bottom: ${themeCssVariables.spacing[1]}; +`; + +const StyledLabel = styled.span` + color: ${themeCssVariables.font.color.light}; + font-size: 11px; + font-weight: ${themeCssVariables.font.weight.semiBold}; +`; + export const SettingsApplicationDetailEnvironmentVariablesTable = ({ envVariables, onUpdate, @@ -22,6 +41,7 @@ export const SettingsApplicationDetailEnvironmentVariablesTable = ({ onUpdate: (newEnv: Pick) => void; readonly?: boolean; }) => { + const { theme } = useContext(ThemeContext); const [editedEnvVariables, setEditedEnvVariables] = useState(envVariables); const onUpdateDebounced = useDebouncedCallback( (value: Pick) => { @@ -29,34 +49,59 @@ export const SettingsApplicationDetailEnvironmentVariablesTable = ({ }, 250, ); - const description = + const sectionDescription = editedEnvVariables.length > 0 ? t`Set your application configuration variables` : t`No variables to set for this application`; return (
- + - {editedEnvVariables.map((editedEnvVariable) => ( - { - setEditedEnvVariables((prevState) => - prevState.map((val) => { - if (val.key === editedEnvVariable.key) { - return { ...val, value: newValue }; - } - return val; - }), - ); - onUpdateDebounced({ ...editedEnvVariable, value: newValue }); - }} - placeholder={t`Value`} - fullWidth - /> - ))} + {editedEnvVariables.map((editedEnvVariable) => { + const tooltipId = `env-var-desc-${editedEnvVariable.key}`; + return ( +
+ + {editedEnvVariable.key} + {isNonEmptyString(editedEnvVariable.description) && ( + <> + + + + )} + + { + setEditedEnvVariables((prevState) => + prevState.map((val) => { + if (val.key === editedEnvVariable.key) { + return { ...val, value: newValue }; + } + return val; + }), + ); + onUpdateDebounced({ ...editedEnvVariable, value: newValue }); + }} + placeholder={t`Value`} + fullWidth + /> +
+ ); + })}
);