import React, { useState } from 'react'; import { useReinstateUserCourseMutation, useReinstateUserLearningPathMutation, useArchiveUserCourseMutation, useArchiveUserLearningPathMutation, GlobalTypes, HydratedContentItem, ArchiveUserLearningPathMutationFn, ArchiveUserCourseMutationFn, ReinstateUserCourseMutationFn, ReinstateUserLearningPathMutationFn } from '@thoughtindustries/content'; import { WarningMessageToolTip } from './Assets/Tooltips'; import { t } from 'i18next'; type ArchiveButtonProps = { item: HydratedContentItem; onArchiveSuccessAsync: VoidFunction; }; export const ArchiveButton = ({ item, onArchiveSuccessAsync }: ArchiveButtonProps) => { const [showPopup, setShowPopup] = useState(false); const text = t('dashboard.archive-warning'); const [archiveUserLearningPathMutation] = useArchiveUserLearningPathMutation(); const [archiveUserCourseMutation] = useArchiveUserCourseMutation(); const handleMutation = async () => { let neededMutation: ArchiveUserLearningPathMutationFn | ArchiveUserCourseMutationFn; if (item.kind === 'learningPath') { neededMutation = archiveUserLearningPathMutation; } else { neededMutation = archiveUserCourseMutation; } return neededMutation({ variables: { id: item.id }, update(cache) { cache.evict({ id: cache.identify({ __typename: 'Content', id: item.id }) }); } }).then(onArchiveSuccessAsync); }; return (
{showPopup && ( )}
); }; type ReinstateButtonProps = { item: GlobalTypes.ArchivedContent; onReinstateSuccessAsync: VoidFunction; }; export const ReinstateButton = ({ item, onReinstateSuccessAsync }: ReinstateButtonProps) => { const [showPopup, setShowPopup] = useState(false); const text = t('dashboard.archive-warning'); const customPosition = 'right-2 top-[120%]'; const [reinstateUserCourseMutation] = useReinstateUserCourseMutation({ variables: { id: item.resource as string } }); const [reinstateUserLearningPathMutaion] = useReinstateUserLearningPathMutation({ variables: { id: item.resource as string } }); const handleMutation = async () => { let neededMutation: ReinstateUserCourseMutationFn | ReinstateUserLearningPathMutationFn; if (item.resourceType === 'learningPath') { neededMutation = reinstateUserLearningPathMutaion; } else { neededMutation = reinstateUserCourseMutation; } return neededMutation().then(onReinstateSuccessAsync); }; return ( <> {showPopup && ( )} ); };