import { ActionButton } from "@/components/ui/action-button"; import ActionConfirmingDialog from "@/components/ui/action-confirming-dialog"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Switch } from "@/components/ui/switch"; import { toast } from "@/components/ui/use-toast"; import { useClientConfig } from "@/lib/clientConfig"; import { Edit, Trash2 } from "lucide-react"; import { useTranslation } from "react-i18next"; import type { RuleEngineRule } from "@karakeep/shared/types/rules"; import { useDeleteRule, useUpdateRule, } from "@karakeep/shared-react/hooks/rules"; export default function RuleList({ rules, onEditRule, onDeleteRule, }: { rules: RuleEngineRule[]; onEditRule: (rule: RuleEngineRule) => void; onDeleteRule?: (ruleId: string) => void; }) { const { t } = useTranslation(); const { demoMode } = useClientConfig(); const { mutate: updateRule, isPending: isUpdating } = useUpdateRule({ onSuccess: () => { toast({ description: t("settings.rules.rule_has_been_updated"), }); }, onError: (e) => { toast({ description: e.message, variant: "destructive", }); }, }); const { mutate: deleteRule, isPending: isDeleting } = useDeleteRule({ onSuccess: (_ret, req) => { toast({ description: t("settings.rules.rule_has_been_deleted"), }); onDeleteRule?.(req.id); }, onError: (e) => { toast({ description: e.message, variant: "destructive", }); }, }); if (rules.length === 0) { return (
{t("settings.rules.create_your_first_rule")}
{rule.description}