ConceptPortal-public/rsconcept/frontend/src/utils/procedures.ts

47 lines
1.3 KiB
TypeScript
Raw Normal View History

import fileDownload from 'js-file-download';
2023-07-25 20:27:29 +03:00
import { toast } from 'react-toastify';
import { type BackendCallback } from './backendAPI';
2023-07-21 00:09:05 +03:00
export function shareCurrentURLProc() {
const url = window.location.href + '&share';
2023-07-25 20:27:29 +03:00
navigator.clipboard.writeText(url)
.then(() => toast.success(`Ссылка скопирована: ${url}`))
.catch(console.error);
2023-07-21 00:09:05 +03:00
}
2023-07-25 20:27:29 +03:00
export function claimOwnershipProc(
claim: (callback: BackendCallback) => void
2023-07-21 00:09:05 +03:00
) {
if (!window.confirm('Вы уверены, что хотите стать владельцем данной схемы?')) {
return;
}
claim(() => toast.success('Вы стали владельцем схемы'));
2023-07-21 00:09:05 +03:00
}
2023-07-25 20:27:29 +03:00
export function deleteRSFormProc(
destroy: (callback: BackendCallback) => void,
navigate: (path: string) => void
2023-07-21 00:09:05 +03:00
) {
if (!window.confirm('Вы уверены, что хотите удалить данную схему?')) {
return;
}
destroy(() => {
toast.success('Схема удалена');
navigate('/rsforms?filter=personal');
});
}
2023-07-25 20:27:29 +03:00
export function downloadRSFormProc(
download: (callback: BackendCallback) => void,
fileName: string
) {
download((response) => {
try {
fileDownload(response.data, fileName);
} catch (error: any) {
toast.error(error.message);
}
});
}