/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import { Button, Container, Form, FormField, Header, Input, SpaceBetween, Textarea, TextContent, } from '@cloudscape-design/components'; import { useRouter } from 'next/router'; import { useState } from 'react'; import { updateCase } from '../../api/cases'; import { DeaCaseDTO } from '../../api/models/case'; import { commonLabels, createCaseLabels } from '../../common/labels'; import { useNotifications } from '../../context/NotificationsContext'; import { EditCaseForm } from '../../models/Cases'; export interface EditCasesFormProps { readonly case: DeaCaseDTO; } function EditCasesForm(props: EditCasesFormProps): JSX.Element { const { ulid, name, description } = props.case; const [IsSubmitLoading, setIsSubmitLoading] = useState(false); const router = useRouter(); const [formData, setFormData] = useState({ ulid, name, description }); const { pushNotification } = useNotifications(); const caseDetailsRoute = `/case-detail?caseId=${ulid}`; async function onSubmitHandler() { setIsSubmitLoading(true); try { await updateCase(formData); return router.push(caseDetailsRoute); } catch (e) { if (e instanceof Error) { pushNotification('error', e.message); } } finally { setIsSubmitLoading(false); } } function onCancelHandler() { return router.push(caseDetailsRoute); } return (
} > {createCaseLabels.enterCaseDetailsLabel}}> { setFormData({ ...formData, name: value }); }} />

{createCaseLabels.caseNameSubtext}

{createCaseLabels.caseDescription} {commonLabels.optionalLabel}{' '} } description={createCaseLabels.caseDescriptionSubtext} >