;
className?: string;
disabled?: boolean;
}
export function ConnectionTestButton({
label,
onTest,
className,
disabled,
}: ConnectionTestButtonProps) {
const { status, message, setSuccess, setError, setLoading, reset, props } = useInlineStatus();
const handleTest = async () => {
setLoading("Testing...");
try {
const result = await onTest();
if (result === false || result === null) {
setError("Failed");
} else if (typeof result === "string") {
setSuccess(result);
} else {
setSuccess("Connected");
}
} catch (err: any) {
setError(err.message || "Failed");
}
};
return (
);
}
/**
* Save button with inline status
*/
interface SaveButtonProps {
onSave: () => Promise;
label?: string;
className?: string;
disabled?: boolean;
}
export function SaveButton({
onSave,
label = "Save",
className,
disabled,
}: SaveButtonProps) {
const { status, setSuccess, setError, setLoading, props } = useInlineStatus();
const handleSave = async () => {
setLoading();
try {
await onSave();
setSuccess("Saved");
} catch (err: any) {
setError(err.message || "Failed");
}
};
return (
);
}