| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 'use client';
-
- import { BlockButton, Button } from '@/components/ui/button';
- import {
- FormControl,
- FormField,
- FormItem,
- FormMessage,
- } from '@/components/ui/form';
- import { Input } from '@/components/ui/input';
- import { X } from 'lucide-react';
- import { useFieldArray, useFormContext } from 'react-hook-form';
- import { useTranslation } from 'react-i18next';
-
- export function BeginDynamicOptions() {
- const { t } = useTranslation();
- const form = useFormContext();
- const name = 'options';
-
- const { fields, remove, append } = useFieldArray({
- name: name,
- control: form.control,
- });
-
- return (
- <div className="space-y-5">
- {fields.map((field, index) => {
- const typeField = `${name}.${index}.value`;
- return (
- <div key={field.id} className="flex items-center gap-2">
- <FormField
- control={form.control}
- name={typeField}
- render={({ field }) => (
- <FormItem className="flex-1">
- <FormControl>
- <Input
- {...field}
- placeholder={t('common.pleaseInput')}
- ></Input>
- </FormControl>
- <FormMessage />
- </FormItem>
- )}
- />
- <Button variant={'ghost'} onClick={() => remove(index)}>
- <X className="text-text-sub-title-invert " />
- </Button>
- </div>
- );
- })}
- <BlockButton onClick={() => append({ value: '' })} type="button">
- {t('flow.addVariable')}
- </BlockButton>
- </div>
- );
- }
|