import * as Linking from "expo-linking";
import { useEffect } from "react";

import { enqueueShortcut } from "@/lib/shortcut-queue";
import { parseShortcutUrl } from "@/lib/shortcuts";

/**
 * Captures shortcut deep links as early as possible (before auth / tabs mount).
 * Mounted at the app root inside AppServices.
 */
export function ShortcutLinkCapture() {
  useEffect(() => {
    function capture(url: string | null | undefined) {
      const parsed = parseShortcutUrl(url);
      if (parsed) {
        void enqueueShortcut(parsed);
      }
    }

    void Linking.getInitialURL().then(capture);

    const subscription = Linking.addEventListener("url", ({ url }) => {
      capture(url);
    });

    return () => subscription.remove();
  }, []);

  return null;
}
