import React from 'react'; import { FormattedMessage, defineMessages, useIntl } from 'react-intl'; import ScrollableList from 'pl-fe/components/scrollable-list'; import Button from 'pl-fe/components/ui/button'; import Column from 'pl-fe/components/ui/column'; import HStack from 'pl-fe/components/ui/hstack'; import Stack from 'pl-fe/components/ui/stack'; import Text from 'pl-fe/components/ui/text'; import { useRules } from 'pl-fe/queries/admin/use-rules'; import { useModalsStore } from 'pl-fe/stores/modals'; import toast from 'pl-fe/toast'; import type { AdminRule } from 'pl-api'; const messages = defineMessages({ heading: { id: 'column.admin.rules', defaultMessage: 'Instance rules' }, deleteConfirm: { id: 'confirmations.admin.delete_rule.confirm', defaultMessage: 'Delete' }, deleteHeading: { id: 'confirmations.admin.delete_rule.heading', defaultMessage: 'Delete rule' }, deleteMessage: { id: 'confirmations.admin.delete_rule.message', defaultMessage: 'Are you sure you want to delete the rule?' }, ruleDeleteSuccess: { id: 'admin.edit_rule.deleted', defaultMessage: 'Rule deleted' }, }); interface IRule { rule: AdminRule; } const Rule: React.FC = ({ rule }) => { const intl = useIntl(); const { openModal } = useModalsStore(); const { deleteRule } = useRules(); const handleEditRule = (rule: AdminRule) => () => { openModal('EDIT_RULE', { rule }); }; const handleDeleteRule = (id: string) => () => { openModal('CONFIRM', { heading: intl.formatMessage(messages.deleteHeading), message: intl.formatMessage(messages.deleteMessage), confirm: intl.formatMessage(messages.deleteConfirm), onConfirm: () => deleteRule(id, { onSuccess: () => toast.success(messages.ruleDeleteSuccess), }), }); }; return (
{rule.text} {rule.hint} {rule.priority !== null && ( {' '} {rule.priority} )}
); }; const Rules: React.FC = () => { const intl = useIntl(); const { openModal } = useModalsStore(); const { data, isLoading } = useRules(); const handleCreateRule = () => { openModal('EDIT_RULE'); }; const emptyMessage = ; return ( {data!.map((rule) => ( ))} ); }; export { Rules as default };