build(ui): add enterprise cta

This commit is contained in:
Krrish Dholakia 2024-05-25 21:41:53 -07:00
parent 4e230f0a2e
commit 01adeda2e4
8 changed files with 106 additions and 30 deletions

View file

@ -25,13 +25,18 @@ interface alertingSettingsItem {
field_default_value: any;
field_description: string;
stored_in_db: boolean | null;
premium_field: boolean;
}
interface AlertingSettingsProps {
accessToken: string | null;
premiumUser: boolean;
}
const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken }) => {
const AlertingSettings: React.FC<AlertingSettingsProps> = ({
accessToken,
premiumUser,
}) => {
const [alertingSettings, setAlertingSettings] = useState<
alertingSettingsItem[]
>([]);
@ -116,6 +121,7 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken }) => {
handleInputChange={handleInputChange}
handleResetField={handleResetField}
handleSubmit={handleSubmit}
premiumUser={premiumUser}
/>
);
};

View file

@ -9,6 +9,7 @@ interface AlertingSetting {
field_type: string;
field_value: any;
stored_in_db: boolean | null;
premium_field: boolean;
}
interface DynamicFormProps {
@ -16,6 +17,7 @@ interface DynamicFormProps {
handleInputChange: (fieldName: string, newValue: any) => void;
handleResetField: (fieldName: string, index: number) => void;
handleSubmit: (formValues: Record<string, any>) => void;
premiumUser: boolean;
}
const DynamicForm: React.FC<DynamicFormProps> = ({
@ -23,19 +25,27 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
handleInputChange,
handleResetField,
handleSubmit,
premiumUser,
}) => {
const [form] = Form.useForm();
const onFinish = () => {
const formData = form.getFieldsValue();
handleSubmit(formData);
const isEmpty = Object.values(formData).some(
(value) => value === "" || value === null || value === undefined
);
if (!isEmpty) {
handleSubmit(formData);
} else {
console.log("Some form fields are empty.");
}
};
return (
<Form form={form} onFinish={onFinish} labelAlign="left">
{alertingSettings.map((value, index) => (
<TableRow key={index}>
<TableCell>
<TableCell align="center">
<Text>{value.field_name}</Text>
<p
style={{
@ -48,22 +58,52 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
{value.field_description}
</p>
</TableCell>
<Form.Item name={value.field_name}>
<TableCell>
{value.field_type === "Integer" ? (
<InputNumber
step={1}
value={value.field_value}
onChange={(e) => handleInputChange(value.field_name, e)}
/>
) : (
<Input
value={value.field_value}
onChange={(e) => handleInputChange(value.field_name, e)}
/>
)}
</TableCell>
</Form.Item>
{value.premium_field ? (
premiumUser ? (
<Form.Item name={value.field_name}>
<TableCell>
{value.field_type === "Integer" ? (
<InputNumber
step={1}
value={value.field_value}
onChange={(e) => handleInputChange(value.field_name, e)}
/>
) : (
<Input
value={value.field_value}
onChange={(e) => handleInputChange(value.field_name, e)}
/>
)}
</TableCell>
</Form.Item>
) : (
<TableCell>
<Button className="flex items-center justify-center">
<a href="https://forms.gle/W3U4PZpJGFHWtHyA9" target="_blank">
Enterprise Feature
</a>
</Button>
</TableCell>
)
) : (
<Form.Item name={value.field_name} className="mb-0">
<TableCell>
{value.field_type === "Integer" ? (
<InputNumber
step={1}
value={value.field_value}
onChange={(e) => handleInputChange(value.field_name, e)}
className="p-0"
/>
) : (
<Input
value={value.field_value}
onChange={(e) => handleInputChange(value.field_name, e)}
/>
)}
</TableCell>
</Form.Item>
)}
<TableCell>
{value.stored_in_db == true ? (
<Badge icon={CheckCircleIcon} className="text-white">