import { AccordionItem, Box, Button, ButtonGroup } from '@rocket.chat/fuselage';
import { useEndpoint, useSetModal, useToastMessageDispatch } from '@rocket.chat/ui-contexts';
import DOMPurify from 'dompurify';
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import MyDataModal from './MyDataModal';
const PreferencesMyDataSection = () => {
const { t } = useTranslation();
const setModal = useSetModal();
const dispatchToastMessage = useToastMessageDispatch();
const requestDataDownload = useEndpoint('GET', '/v1/users.requestDataDownload');
const downloadData = useCallback(
async (fullExport: boolean) => {
try {
const result = await requestDataDownload({ fullExport: fullExport ? 'true' : 'false' });
if (result.requested) {
const text = t('UserDataDownload_Requested_Text', {
pending_operations: result.pendingOperationsBeforeMyRequest,
});
setModal(
}
onCancel={() => setModal(null)}
/>,
);
return;
}
if (result.exportOperation) {
if (result.exportOperation.status === 'completed') {
const text = result.url
? t('UserDataDownload_CompletedRequestExistedWithLink_Text', {
download_link: result.url,
})
: t('UserDataDownload_CompletedRequestExisted_Text');
setModal(
}
onCancel={() => setModal(null)}
/>,
);
return;
}
const text = t('UserDataDownload_RequestExisted_Text', {
pending_operations: result.pendingOperationsBeforeMyRequest,
});
setModal(
}
onCancel={() => setModal(null)}
/>,
);
return;
}
setModal( setModal(null)} />);
} catch (error) {
dispatchToastMessage({ type: 'error', message: error });
}
},
[dispatchToastMessage, requestDataDownload, setModal, t],
);
const handleClickDownload = useCallback(() => downloadData(false), [downloadData]);
const handleClickExport = useCallback(() => downloadData(true), [downloadData]);
return (
);
};
export default PreferencesMyDataSection;