import { HttpError } from "./api"; import { notify } from "./notifications"; import i18n from "../i18n"; // A YouTube-gated action (subscribe, sync, backfill, unsubscribe) that 403s means the user hasn't // granted the write scope — surface a "Connect" affordance instead of a vague failure. Pass // `onConnect` to offer the connect-wizard button (callers that have no wizard handle, e.g. the // channel page, just get the message). `fallbackMessage` is the already-translated non-403 error. export function notifyYouTubeActionError( err: unknown, fallbackMessage: string, onConnect?: () => void, ): void { if (err instanceof HttpError && err.status === 403) { notify({ level: "error", message: i18n.t("channels.notify.needYouTube"), action: onConnect ? { label: i18n.t("channels.notify.connect"), onClick: onConnect } : undefined, }); } else { notify({ level: "error", message: fallbackMessage }); } }