import { useEffect } from "react"; import { AlertTriangle, Check, ShieldCheck, X, Youtube } from "lucide-react"; import type { Me } from "../lib/api"; import { beginGrant, endOnboarding } from "../lib/onboarding"; // A first-login wizard that walks the user through granting YouTube access one scope at a // time, each with a plain explanation and an up-front heads-up about Google's "unverified // app" screen. Sign-in itself only asks for name/email (no warning); YouTube access is // always an explicit, informed opt-in here. // // The visible step is derived from what's already granted, so the wizard resumes correctly // after each redirect: no read -> "read", read but no write -> "write", both -> "done". // A small reusable heads-up so the Google consent warning never feels like a surprise. function ConsentHeadsUp() { return (
Google will show a "Google hasn't verified this app"{" "} screen — that's expected, because Siftlode hasn't gone through Google's full review. It's safe to continue: click Advanced →{" "} Go to Siftlode. You can revoke access anytime from your{" "} Google Account .
You're signed in. To build your feed, Siftlode needs{" "} read-only access to the channels you're subscribed to on YouTube. It never posts, deletes, or changes anything with this.
Your feed is ready. Optionally, you can let Siftlode{" "} unsubscribe from channels on YouTube for you — this needs an extra write permission. Skip it to stay read-only; you can always enable it later in Settings.
Read and unsubscribe access are both granted. You can review or revoke either one anytime in Settings → Account, or from your Google Account.
> )}