/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: MIT-0 */ import { FunctionComponent, useCallback, useState } from 'react' import { Button, Column, ColumnLayout, Inline, Stack, Text, DeleteConfirmationDialog, Container, KeyValuePair, Checkbox, } from 'aws-northstar' import { useHistory, useParams } from 'react-router-dom' import NotFound from '../../../components/NotFound' import { useVehicleContext } from '../../../contexts/VehicleContext' import { appvars } from '../../../config' import { dayjsutc } from '../../../utils/dayjs' export const Details: FunctionComponent = () => { const history = useHistory() const { vehicleId } = useParams<{ vehicleId: string }>() const [{ items: vehicleItems }, { deleteItem }] = useVehicleContext() const currentItem = vehicleItems.find((x) => x.Id === vehicleId) const [showDeleteModal, setShowDeleteModal] = useState(false) const onDeleteClick = useCallback(async () => { setShowDeleteModal(true) }, []) const onEditClick = useCallback(() => { if (currentItem == null) { throw new Error('VehicleData is null') } history.push(`/${appvars.URL.VEHICLE}/${currentItem.Id}/edit`) }, [currentItem, history]) const proceedWithDelete = useCallback(async () => { if (currentItem == null) { throw new Error('VehicleData is null') } await deleteItem(currentItem.Id) history.push(`/${appvars.URL.VEHICLE}`) }, [deleteItem, history, currentItem]) if (currentItem == null) { return } const actionGroup = ( ) return ( <> setShowDeleteModal(false)} onDeleteClicked={proceedWithDelete} > <> Are you sure you want to delete {`${currentItem.carNo} - ${currentItem.carGrade}`}? ) }