"use client";
import {
LockIcon,
Power,
SettingsIcon,
TestTube,
Trash2Icon,
} from "lucide-react";
import { CustomButton } from "@/components/ui/custom";
import { IntegrationProps } from "@/types/integrations";
interface IntegrationActionButtonsProps {
integration: IntegrationProps;
onTestConnection: (id: string) => void;
onEditConfiguration?: (integration: IntegrationProps) => void;
onEditCredentials: (integration: IntegrationProps) => void;
onToggleEnabled: (integration: IntegrationProps) => void;
onDelete: (integration: IntegrationProps) => void;
isTesting?: boolean;
showCredentialsButton?: boolean;
}
export const IntegrationActionButtons = ({
integration,
onTestConnection,
onEditConfiguration,
onEditCredentials,
onToggleEnabled,
onDelete,
isTesting = false,
showCredentialsButton = true,
}: IntegrationActionButtonsProps) => {
return (
}
onPress={() => onTestConnection(integration.id)}
isLoading={isTesting}
isDisabled={!integration.attributes.enabled || isTesting}
ariaLabel="Test connection"
className="w-full sm:w-auto"
>
Test
{onEditConfiguration && (
}
onPress={() => onEditConfiguration(integration)}
ariaLabel="Edit configuration"
className="w-full sm:w-auto"
>
Config
)}
{showCredentialsButton && (
}
onPress={() => onEditCredentials(integration)}
ariaLabel="Edit credentials"
className="w-full sm:w-auto"
>
Credentials
)}
}
onPress={() => onToggleEnabled(integration)}
isDisabled={isTesting}
ariaLabel={
integration.attributes.enabled
? "Disable integration"
: "Enable integration"
}
className="w-full sm:w-auto"
>
{integration.attributes.enabled ? "Disable" : "Enable"}
}
onPress={() => onDelete(integration)}
ariaLabel="Delete integration"
className="w-full sm:w-auto"
>
Delete
);
};