From f792ce8e21d2a9109080dcea85413ef4c7984e24 Mon Sep 17 00:00:00 2001 From: tony-tvu Date: Tue, 7 Jun 2022 11:02:23 -0500 Subject: [PATCH 1/4] convert file to ts --- ...serDialog.js => RotationAddUserDialog.tsx} | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) rename web/src/app/rotations/{RotationAddUserDialog.js => RotationAddUserDialog.tsx} (68%) diff --git a/web/src/app/rotations/RotationAddUserDialog.js b/web/src/app/rotations/RotationAddUserDialog.tsx similarity index 68% rename from web/src/app/rotations/RotationAddUserDialog.js rename to web/src/app/rotations/RotationAddUserDialog.tsx index cba39a79da..c816fb0354 100644 --- a/web/src/app/rotations/RotationAddUserDialog.js +++ b/web/src/app/rotations/RotationAddUserDialog.tsx @@ -1,9 +1,16 @@ import React, { useState } from 'react' -import { gql, useMutation } from '@apollo/client' -import p from 'prop-types' +import { useMutation } from '@apollo/client' +import { gql } from 'urql' import { fieldErrors, nonFieldErrors } from '../util/errutil' import UserForm from './UserForm' import FormDialog from '../dialogs/FormDialog' +import { GenericError } from '../error-pages' + +interface RotationAddUserDialogProps { + rotationID: string + userIDs: string[] + onClose: () => void +} const mutation = gql` mutation ($input: UpdateRotationInput!) { @@ -11,13 +18,15 @@ const mutation = gql` } ` -const RotationAddUserDialog = (props) => { +const RotationAddUserDialog = ( + props: RotationAddUserDialogProps, +): JSX.Element => { const { rotationID, userIDs, onClose } = props const [value, setValue] = useState({ users: [], }) // append to users array from selected users - const users = [] + const users: string[] = [] const uIDs = value.users userIDs.forEach((u) => users.push(u)) uIDs.forEach((u) => users.push(u)) @@ -32,6 +41,10 @@ const RotationAddUserDialog = (props) => { onCompleted: onClose, }) + if (error) { + return + } + return ( { errors={fieldErrors(error)} disabled={loading} value={value} - onChange={(value) => setValue(value)} + onChange={(value: React.SetStateAction<{ users: never[] }>) => + setValue(value) + } /> } /> ) } -RotationAddUserDialog.propTypes = { - rotationID: p.string.isRequired, - userIDs: p.arrayOf(p.string).isRequired, - onClose: p.func.isRequired, -} - export default RotationAddUserDialog From 66901569ba4b58f189a4ed2b2526c078f2f06b73 Mon Sep 17 00:00:00 2001 From: tony-tvu Date: Tue, 7 Jun 2022 11:33:18 -0500 Subject: [PATCH 2/4] add Value type --- web/src/app/rotations/RotationAddUserDialog.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/web/src/app/rotations/RotationAddUserDialog.tsx b/web/src/app/rotations/RotationAddUserDialog.tsx index c816fb0354..178919be55 100644 --- a/web/src/app/rotations/RotationAddUserDialog.tsx +++ b/web/src/app/rotations/RotationAddUserDialog.tsx @@ -12,6 +12,10 @@ interface RotationAddUserDialogProps { onClose: () => void } +interface Value { + users: string[] +} + const mutation = gql` mutation ($input: UpdateRotationInput!) { updateRotation(input: $input) @@ -22,7 +26,7 @@ const RotationAddUserDialog = ( props: RotationAddUserDialogProps, ): JSX.Element => { const { rotationID, userIDs, onClose } = props - const [value, setValue] = useState({ + const [value, setValue] = useState({ users: [], }) // append to users array from selected users @@ -57,9 +61,7 @@ const RotationAddUserDialog = ( errors={fieldErrors(error)} disabled={loading} value={value} - onChange={(value: React.SetStateAction<{ users: never[] }>) => - setValue(value) - } + onChange={(value: Value) => setValue(value)} /> } /> From ea3fe24f560c87032f7401585bc603123464ec82 Mon Sep 17 00:00:00 2001 From: tony-tvu Date: Fri, 17 Jun 2022 14:34:40 -0500 Subject: [PATCH 3/4] remove unnecessary error check --- web/src/app/rotations/RotationAddUserDialog.tsx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/web/src/app/rotations/RotationAddUserDialog.tsx b/web/src/app/rotations/RotationAddUserDialog.tsx index 178919be55..05a9f482a4 100644 --- a/web/src/app/rotations/RotationAddUserDialog.tsx +++ b/web/src/app/rotations/RotationAddUserDialog.tsx @@ -4,7 +4,6 @@ import { gql } from 'urql' import { fieldErrors, nonFieldErrors } from '../util/errutil' import UserForm from './UserForm' import FormDialog from '../dialogs/FormDialog' -import { GenericError } from '../error-pages' interface RotationAddUserDialogProps { rotationID: string @@ -45,10 +44,6 @@ const RotationAddUserDialog = ( onCompleted: onClose, }) - if (error) { - return - } - return ( Date: Fri, 17 Jun 2022 14:37:19 -0500 Subject: [PATCH 4/4] only check for nonFieldErrors --- web/src/app/rotations/RotationAddUserDialog.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/app/rotations/RotationAddUserDialog.tsx b/web/src/app/rotations/RotationAddUserDialog.tsx index 05a9f482a4..7d53875e37 100644 --- a/web/src/app/rotations/RotationAddUserDialog.tsx +++ b/web/src/app/rotations/RotationAddUserDialog.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import { useMutation } from '@apollo/client' import { gql } from 'urql' -import { fieldErrors, nonFieldErrors } from '../util/errutil' +import { nonFieldErrors } from '../util/errutil' import UserForm from './UserForm' import FormDialog from '../dialogs/FormDialog' @@ -53,7 +53,7 @@ const RotationAddUserDialog = ( onSubmit={() => updateRotationMutation()} form={ setValue(value)}