38 lines
1.0 KiB
TypeScript

import { useCallback, useState } from "react";
import { apiFetch } from "../lib/api";
/**
* PATCH /api/mail/interval — Setzt das Scan-Intervall (in Stunden) für eine
* bestimmte Mail-Connection. Plan-Limits werden serverseitig geprüft.
*/
export function useMailInterval() {
const [updating, setUpdating] = useState<string | null>(null);
const [error, setError] = useState<string | null>(null);
const setInterval = useCallback(
async (connectionId: string, interval: number) => {
setUpdating(connectionId);
setError(null);
try {
await apiFetch<{ ok: boolean; interval: number }>(
"/api/mail/interval",
{
method: "PATCH",
body: { connectionId, interval },
},
);
return { ok: true };
} catch (e: any) {
const msg = e?.message ?? "unknown";
setError(msg);
return { ok: false, error: msg };
} finally {
setUpdating(null);
}
},
[],
);
return { setInterval, updating, error };
}