import { Group, Space, Text, Title } from "@mantine/core"; import { useModals } from "@mantine/modals"; import { useEffect, useState } from "react"; import { FormattedMessage } from "react-intl"; import Meta from "../../components/Meta"; import ManageShareTable from "../../components/admin/shares/ManageShareTable"; import useTranslate from "../../hooks/useTranslate.hook"; import shareService from "../../services/share.service"; import { MyShare } from "../../types/share.type"; import toast from "../../utils/toast.util"; const Shares = () => { const [shares, setShares] = useState([]); const [isLoading, setIsLoading] = useState(true); const modals = useModals(); const t = useTranslate(); const getShares = () => { setIsLoading(true); shareService.list().then((shares) => { setShares(shares); setIsLoading(false); }); }; const deleteShare = (share: MyShare) => { modals.openConfirmModal({ title: t("admin.shares.edit.delete.title", { id: share.id, }), children: ( ), labels: { confirm: t("common.button.delete"), cancel: t("common.button.cancel"), }, confirmProps: { color: "red" }, onConfirm: async () => { shareService .remove(share.id) .then(() => setShares(shares.filter((v) => v.id != share.id))) .catch(toast.axiosError); }, }); }; useEffect(() => { getShares(); }, []); return ( <> <FormattedMessage id="admin.shares.title" /> ); }; export default Shares;