"use client"; import { Plus, RefreshCw, Rocket, Save } from "lucide-react"; import { useTranslation } from "react-i18next"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; type ConfigVersionActionsProps = { isDraft: boolean; /** 为 false 时仅保留刷新,隐藏新建/保存/发布(只读权限) */ canManage?: boolean; loadingList?: boolean; loadingDetail?: boolean; saving?: boolean; publishLabel?: string; /** 合并编辑页由底部操作栏承接保存/发布时隐藏 */ suppressDraftActions?: boolean; onRefresh: () => void; onNewDraft: () => void; onSaveDraft: () => void; onPublish: () => void; className?: string; }; export function ConfigVersionActions({ isDraft, canManage = false, loadingList = false, loadingDetail = false, saving = false, publishLabel, suppressDraftActions = false, onRefresh, onNewDraft, onSaveDraft, onPublish, className, }: ConfigVersionActionsProps) { const { t } = useTranslation("config"); const draftActionBusy = saving || loadingDetail; const resolvedPublishLabel = publishLabel ?? t("versionActions.publishCurrent"); return (
{canManage ? ( <> {isDraft && !suppressDraftActions ? ( <> ) : null} ) : null}
); }