/********************************************************************************************************************* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * * * Permission is hereby granted, free of charge, to any person obtaining a copy of * * this software and associated documentation files (the "Software"), to deal in * * the Software without restriction, including without limitation the rights to * * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * * the Software, and to permit persons to whom the Software is furnished to do so. * * * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * *********************************************************************************************************************/ import { FunctionComponent, useCallback, useMemo, useState } from 'react' import { Button, Column, ColumnLayout, Inline, Stack, Text, DeleteConfirmationDialog, Toggle } from 'aws-northstar' import { Container, KeyValuePair } from '../../../components/NorthstarEx' import { useHistory, useParams } from 'react-router-dom' import NotFound from '../../../components/NotFound' import { useTrainingTemplateContext } from '../../../contexts/TrainingTemplateContext' import { appvars } from '../../../config' import { dayjsutc } from '../../../utils/dayjs' export const TrainingTemplateDetails: FunctionComponent = () => { const history = useHistory() const { trainingTemplateId } = useParams<{ trainingTemplateId: string }>() const [{ items: trainingTemplateItems }, { deleteItem }] = useTrainingTemplateContext() const currentItem = trainingTemplateItems.find((x) => x.Id === trainingTemplateId) const [showDeleteModal, setShowDeleteModal] = useState(false) const onDeleteClick = useCallback(async () => { setShowDeleteModal(true) }, []) const onEditClick = useCallback(() => { if (currentItem == null) { throw new Error('TrainingTemplateData is null') } history.push(`/${appvars.URL.TRAINING_TEMPLATE}/${currentItem.Id}/edit`) }, [currentItem, history]) const proceedWithDelete = useCallback(async () => { if (currentItem == null) { throw new Error('TrainingTemplateData is null') } await deleteItem(currentItem.Id) history.push(`/${appvars.URL.TRAINING_TEMPLATE}`) }, [deleteItem, history, currentItem]) const baseAssetsAllChecked = useMemo(() => { return currentItem?.feMeta.baseAssets === 'all' }, [currentItem?.feMeta.baseAssets]) if (currentItem == null) { return } const actionGroup = ( ) return ( <> setShowDeleteModal(false)} onDeleteClicked={proceedWithDelete} > <> Are you sure you want to delete {currentItem.name}? } infoKey='fe.ta.header' > } infoKey='fe.arima.header' > } infoKey='fe.fft.header' > } infoKey='fe.ae.header' > ) }