From 45a0cc623cc1a044d649a854d794b5782c82ee3f Mon Sep 17 00:00:00 2001 From: Shayne Marc Enzo Ahchoon Date: Thu, 9 May 2024 14:14:53 +0100 Subject: [PATCH 1/5] WSTEAM1-969: Add Checkbox --- .../send/[id]/FormField/Checkbox.tsx | 32 ++++++++++----- .../send/[id]/FormField/EmailInput.tsx | 27 ++++++++----- .../send/[id]/FormField/FieldLabel.tsx | 5 ++- .../[service]/send/[id]/FormField/File.tsx | 29 ++++++++------ .../send/[id]/FormField/Telephone.tsx | 27 ++++++++----- .../send/[id]/FormField/TextArea.tsx | 27 ++++++++----- .../send/[id]/FormField/TextInput.tsx | 27 ++++++++----- .../[service]/send/[id]/FormField/index.tsx | 2 +- .../[service]/send/[id]/FormField/styles.ts | 40 +++++++++++++++++-- .../pages/[service]/send/[id]/types.ts | 1 + 10 files changed, 144 insertions(+), 73 deletions(-) diff --git a/ws-nextjs-app/pages/[service]/send/[id]/FormField/Checkbox.tsx b/ws-nextjs-app/pages/[service]/send/[id]/FormField/Checkbox.tsx index 2abf38d6307..d97326a7961 100644 --- a/ws-nextjs-app/pages/[service]/send/[id]/FormField/Checkbox.tsx +++ b/ws-nextjs-app/pages/[service]/send/[id]/FormField/Checkbox.tsx @@ -1,5 +1,8 @@ -import React from 'react'; +/** @jsx jsx */ +import { jsx } from '@emotion/react'; import { InputProps } from '../types'; +import Label from './FieldLabel'; +import styles from './styles'; export default ({ id, @@ -7,18 +10,25 @@ export default ({ handleChange, inputState, describedBy, + label, }: InputProps) => { const { isValid, value = false, required } = inputState; return ( - handleChange(e.target.name, e.target.checked)} - aria-invalid={!isValid} - aria-required={required} - aria-describedby={describedBy} - /> +
+ handleChange(e.target.name, e.target.checked)} + aria-invalid={!isValid} + aria-required={required} + aria-describedby={describedBy} + /> + +
); }; diff --git a/ws-nextjs-app/pages/[service]/send/[id]/FormField/EmailInput.tsx b/ws-nextjs-app/pages/[service]/send/[id]/FormField/EmailInput.tsx index c1d75dfe47d..4acda5fd14c 100644 --- a/ws-nextjs-app/pages/[service]/send/[id]/FormField/EmailInput.tsx +++ b/ws-nextjs-app/pages/[service]/send/[id]/FormField/EmailInput.tsx @@ -1,6 +1,7 @@ /** @jsx jsx */ import { jsx } from '@emotion/react'; import { InputProps } from '../types'; +import Label from './FieldLabel'; import styles from './styles'; export default ({ @@ -9,19 +10,23 @@ export default ({ handleChange, inputState, describedBy, + label, }: InputProps) => { const { isValid, value = '', required } = inputState; return ( - handleChange(e.target.name, e.target.value)} - aria-invalid={!isValid} - aria-required={required} - aria-describedby={describedBy} - /> + <> + + handleChange(e.target.name, e.target.value)} + aria-invalid={!isValid} + aria-required={required} + aria-describedby={describedBy} + /> + ); }; diff --git a/ws-nextjs-app/pages/[service]/send/[id]/FormField/FieldLabel.tsx b/ws-nextjs-app/pages/[service]/send/[id]/FormField/FieldLabel.tsx index ac5851d22ad..ce145023305 100644 --- a/ws-nextjs-app/pages/[service]/send/[id]/FormField/FieldLabel.tsx +++ b/ws-nextjs-app/pages/[service]/send/[id]/FormField/FieldLabel.tsx @@ -8,8 +8,9 @@ import styles from './styles'; export default ({ id, children, -}: PropsWithChildren<{ id: InputProps['id'] }>) => ( - + className, +}: PropsWithChildren<{ id: InputProps['id']; className?: string }>) => ( + {children} ); diff --git a/ws-nextjs-app/pages/[service]/send/[id]/FormField/File.tsx b/ws-nextjs-app/pages/[service]/send/[id]/FormField/File.tsx index 8d0bd3ddac0..7589b31cfcd 100644 --- a/ws-nextjs-app/pages/[service]/send/[id]/FormField/File.tsx +++ b/ws-nextjs-app/pages/[service]/send/[id]/FormField/File.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { InputProps } from '../types'; +import Label from './FieldLabel'; export default ({ id, @@ -7,20 +8,24 @@ export default ({ handleChange, inputState, describedBy, + label, }: InputProps) => { const { isValid, required } = inputState; return ( - - e.target.files && handleChange(e.target.name, e.target.files) - } - multiple - aria-invalid={!isValid} - aria-required={required} - aria-describedby={describedBy} - /> + <> + + + e.target.files && handleChange(e.target.name, e.target.files) + } + multiple + aria-invalid={!isValid} + aria-required={required} + aria-describedby={describedBy} + /> + ); }; diff --git a/ws-nextjs-app/pages/[service]/send/[id]/FormField/Telephone.tsx b/ws-nextjs-app/pages/[service]/send/[id]/FormField/Telephone.tsx index 7b6a3eacd83..fe68739a956 100644 --- a/ws-nextjs-app/pages/[service]/send/[id]/FormField/Telephone.tsx +++ b/ws-nextjs-app/pages/[service]/send/[id]/FormField/Telephone.tsx @@ -1,6 +1,7 @@ /** @jsx jsx */ import { jsx } from '@emotion/react'; import { InputProps } from '../types'; +import Label from './FieldLabel'; import styles from './styles'; export default ({ @@ -9,19 +10,23 @@ export default ({ handleChange, inputState, describedBy, + label, }: InputProps) => { const { isValid, value = '', required } = inputState; return ( - handleChange(e.target.name, e.target.value)} - aria-invalid={!isValid} - aria-required={required} - aria-describedby={describedBy} - /> + <> + + handleChange(e.target.name, e.target.value)} + aria-invalid={!isValid} + aria-required={required} + aria-describedby={describedBy} + /> + ); }; diff --git a/ws-nextjs-app/pages/[service]/send/[id]/FormField/TextArea.tsx b/ws-nextjs-app/pages/[service]/send/[id]/FormField/TextArea.tsx index 7a39a0da190..b889ca1e885 100644 --- a/ws-nextjs-app/pages/[service]/send/[id]/FormField/TextArea.tsx +++ b/ws-nextjs-app/pages/[service]/send/[id]/FormField/TextArea.tsx @@ -1,6 +1,7 @@ /** @jsx jsx */ import { jsx } from '@emotion/react'; import { InputProps } from '../types'; +import Label from './FieldLabel'; import styles from './styles'; export default ({ @@ -9,20 +10,24 @@ export default ({ handleChange, inputState, describedBy, + label, }: InputProps) => { const { isValid, value = '', required } = inputState; return ( -