import type { BotFace } from "@/src/dict/bot-dict";
import type { BotHookWithNames } from "@/src/types";
import SettingsListRow from "@/src/pages/admin/settings/(partials)/settings-list-row";
import SettingsRowAction from "@/src/pages/admin/settings/(partials)/settings-row-action";
import botStoneProps from "@/src/utils/bot-stone-props";
import hookSubtitle from "@/src/utils/hook-subtitle";
import BotAvatar from "./bot-avatar";
type Props = {
hook: BotHookWithNames;
busy?: boolean;
onToggle: () => void;
onEdit: () => void;
onCalls: () => void;
onRotate: () => void;
onDelete: () => void;
/**
* In a conversation's own modal the bot's and workspace's names are
* already the ones on screen.
*/
compact?: boolean;
};
/**
* One hook: its bot's avatar, its name (Paused when it is), what calls
* it, how often it ran and when it was last called, then Pause or Resume,
* Edit, Calls, New URL (not for notification hooks: their URL is never
* shown) and Delete.
*/
export default function HookRow({ hook, busy, onToggle, onEdit, onCalls, onRotate, onDelete, compact }: Props) {
const title = hook.title || `Hook ${hook.id}`;
return (
}
title={title}
badge={hook.enabled ? undefined : "Paused"}
subtitle={hookSubtitle({ hook, show_bot: !compact, show_workspace: !compact })}
>
{hook.source == "browser_notifications" ? null : (
)}
);
}