2024-01-29 11:15:22 +00:00
|
|
|
import { Button, Modal, ModalTrigger, ActionForm, useToasts } from 'react-basics';
|
|
|
|
|
import { useRouter } from 'next/navigation';
|
|
|
|
|
import { useMessages } from 'components/hooks';
|
2023-09-29 12:29:22 +00:00
|
|
|
import WebsiteDeleteForm from './WebsiteDeleteForm';
|
|
|
|
|
import WebsiteResetForm from './WebsiteResetForm';
|
2024-01-29 11:15:22 +00:00
|
|
|
import { touch } from 'store/cache';
|
2022-12-27 00:57:59 +00:00
|
|
|
|
2024-01-29 11:15:22 +00:00
|
|
|
export function WebsiteData({ websiteId, onSave }: { websiteId: string; onSave?: () => void }) {
|
2023-03-22 21:05:55 +00:00
|
|
|
const { formatMessage, labels, messages } = useMessages();
|
2024-01-29 11:15:22 +00:00
|
|
|
const router = useRouter();
|
|
|
|
|
const { showToast } = useToasts();
|
2022-12-27 00:57:59 +00:00
|
|
|
|
|
|
|
|
const handleReset = async () => {
|
2024-01-29 11:15:22 +00:00
|
|
|
showToast({ message: formatMessage(messages.saved), variant: 'success' });
|
|
|
|
|
onSave?.();
|
2022-12-27 00:57:59 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleDelete = async () => {
|
2024-01-29 11:15:22 +00:00
|
|
|
touch('websites');
|
|
|
|
|
router.push('/settings/websites');
|
2022-12-27 00:57:59 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
2023-02-28 04:03:04 +00:00
|
|
|
<>
|
|
|
|
|
<ActionForm
|
|
|
|
|
label={formatMessage(labels.resetWebsite)}
|
|
|
|
|
description={formatMessage(messages.resetWebsiteWarning)}
|
|
|
|
|
>
|
2023-01-28 05:53:13 +00:00
|
|
|
<ModalTrigger>
|
2023-02-28 04:03:04 +00:00
|
|
|
<Button variant="secondary">{formatMessage(labels.reset)}</Button>
|
2023-01-28 05:53:13 +00:00
|
|
|
<Modal title={formatMessage(labels.resetWebsite)}>
|
2023-12-06 03:22:14 +00:00
|
|
|
{(close: () => void) => (
|
2023-01-28 05:53:13 +00:00
|
|
|
<WebsiteResetForm websiteId={websiteId} onSave={handleReset} onClose={close} />
|
|
|
|
|
)}
|
|
|
|
|
</Modal>
|
|
|
|
|
</ModalTrigger>
|
2023-02-28 04:03:04 +00:00
|
|
|
</ActionForm>
|
|
|
|
|
<ActionForm
|
|
|
|
|
label={formatMessage(labels.deleteWebsite)}
|
|
|
|
|
description={formatMessage(messages.deleteWebsiteWarning)}
|
|
|
|
|
>
|
2023-01-28 05:53:13 +00:00
|
|
|
<ModalTrigger>
|
2023-04-18 14:35:45 +00:00
|
|
|
<Button variant="danger">{formatMessage(labels.delete)}</Button>
|
2023-01-28 05:53:13 +00:00
|
|
|
<Modal title={formatMessage(labels.deleteWebsite)}>
|
2023-12-06 03:22:14 +00:00
|
|
|
{(close: () => void) => (
|
2023-01-28 05:53:13 +00:00
|
|
|
<WebsiteDeleteForm websiteId={websiteId} onSave={handleDelete} onClose={close} />
|
|
|
|
|
)}
|
|
|
|
|
</Modal>
|
|
|
|
|
</ModalTrigger>
|
2023-02-28 04:03:04 +00:00
|
|
|
</ActionForm>
|
|
|
|
|
</>
|
2022-12-27 00:57:59 +00:00
|
|
|
);
|
|
|
|
|
}
|
2023-04-21 15:00:42 +00:00
|
|
|
|
|
|
|
|
export default WebsiteData;
|