e957b1acd6
closes https://github.com/twentyhq/core-team-issues/issues/761 closes https://github.com/twentyhq/core-team-issues/issues/762 --------- Co-authored-by: Félix Malfait <felix@twenty.com>
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
import { useLingui } from '@lingui/react/macro';
|
|
|
|
import { isConfigVariablesInDbEnabledState } from '@/client-config/states/isConfigVariablesInDbEnabledState';
|
|
import { TextInputV2 } from '@/ui/input/components/TextInputV2';
|
|
import styled from '@emotion/styled';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { ConfigVariableValue } from 'twenty-shared/types';
|
|
import { ConfigVariable } from '~/generated/graphql';
|
|
import { ConfigVariableDatabaseInput } from './ConfigVariableDatabaseInput';
|
|
|
|
type ConfigVariableValueInputProps = {
|
|
variable: ConfigVariable;
|
|
value: ConfigVariableValue;
|
|
onChange: (value: string | number | boolean | string[] | null) => void;
|
|
disabled?: boolean;
|
|
};
|
|
|
|
const StyledValueContainer = styled.div`
|
|
width: 100%;
|
|
`;
|
|
|
|
export const ConfigVariableValueInput = ({
|
|
variable,
|
|
value,
|
|
onChange,
|
|
disabled,
|
|
}: ConfigVariableValueInputProps) => {
|
|
const { t } = useLingui();
|
|
const isConfigVariablesInDbEnabled = useRecoilValue(
|
|
isConfigVariablesInDbEnabledState,
|
|
);
|
|
|
|
return (
|
|
<StyledValueContainer>
|
|
{isConfigVariablesInDbEnabled && !variable.isEnvOnly ? (
|
|
<ConfigVariableDatabaseInput
|
|
label={t`Value`}
|
|
value={value}
|
|
onChange={onChange}
|
|
type={variable.type}
|
|
options={variable.options}
|
|
disabled={disabled}
|
|
placeholder={
|
|
disabled ? 'Undefined' : t`Enter a value to store in database`
|
|
}
|
|
/>
|
|
) : (
|
|
<TextInputV2
|
|
value={String(value)}
|
|
disabled
|
|
label={t`Value`}
|
|
fullWidth
|
|
/>
|
|
)}
|
|
</StyledValueContainer>
|
|
);
|
|
};
|