From 8c4d770e46bf31ec836d2d13113fcf1f74beb1a8 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 15 Jan 2023 11:44:14 +0100 Subject: [PATCH] feat(web/input): textarea row --- web/src/features/dialog/InputDialog.tsx | 11 ++++++- .../dialog/components/fields/textarea.tsx | 31 +++++++++++++++++++ web/src/interfaces/dialog.ts | 14 +++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 web/src/features/dialog/components/fields/textarea.tsx diff --git a/web/src/features/dialog/InputDialog.tsx b/web/src/features/dialog/InputDialog.tsx index ba85991..9bcc329 100644 --- a/web/src/features/dialog/InputDialog.tsx +++ b/web/src/features/dialog/InputDialog.tsx @@ -12,6 +12,7 @@ import { IColorInput, OptionValue, IDateInput, + ITextarea, } from '../../interfaces/dialog'; import InputField from './components/fields/input'; import CheckboxField from './components/fields/checkbox'; @@ -21,10 +22,11 @@ import SliderField from './components/fields/slider'; import { useFieldArray, useForm } from 'react-hook-form'; import ColorField from './components/fields/color'; import DateField from './components/fields/date'; +import TextareaField from './components/fields/textarea'; export interface InputProps { heading: string; - rows: Array; + rows: Array; options?: { allowCancel?: boolean; }; @@ -145,6 +147,13 @@ const InputDialog: React.FC = () => { {row.type === 'date' || row.type === 'date-range' ? ( ) : null} + {row.type === 'textarea' && ( + + )} ); })} diff --git a/web/src/features/dialog/components/fields/textarea.tsx b/web/src/features/dialog/components/fields/textarea.tsx new file mode 100644 index 0000000..bc1b12a --- /dev/null +++ b/web/src/features/dialog/components/fields/textarea.tsx @@ -0,0 +1,31 @@ +import { Textarea } from '@mantine/core'; +import { UseFormRegisterReturn } from 'react-hook-form'; +import { ITextarea } from '../../../../interfaces/dialog'; +import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import React from 'react'; + +interface Props { + register: UseFormRegisterReturn; + row: ITextarea; + index: number; +} + +const TextareaField: React.FC = (props) => { + return ( +