window.FB = window.FB || {};

// 「收货审核」 = 收货 + 审核合并成一页 (2026-09-04 她定, 15 页 → 9 页)。
// 这一层只做两件事: 画分段器 · 决定先开哪一段。**两个子页一行都没改** —— 手机上除了多一条
// 分段器, 收货和审核长得跟以前一模一样。
//
// 🔴 员工 (role !== 'admin') 看不到分段器, 直接就是收货页 ——
//    她 09-04 定「员工传发票照片的入口留在这一页里面」, 审核本来就只有老板做。
// 初始段: admin 有单等审核 → 审核; 没有 → 收货 (盘完货来传照片的多半是自己收)。
//    页内跳转带 seg 的话以 seg 为准 (驾驶舱「去审核」/ 收货完「现在就对账」都会带)。
FB.RecvReviewTab = function RecvReviewTab({ lang, user, hint }) {
  const { useState, useEffect, useRef } = React;
  const t = FB.makeT(lang);
  const isAdmin = !!(user && user.role === "admin");
  const [seg, setSeg] = useState("review");
  // 人已经自己点过 / 外面指定过段了 → 后面那支「有没有待审」的异步回来时不许再抢
  const fixed = useRef(false);

  useEffect(() => {
    if (!hint || !hint.seg) return;
    fixed.current = true;
    setSeg(hint.seg === "receive" ? "receive" : "review");
  }, [hint]);

  useEffect(() => {
    if (!isAdmin) return;
    // ReviewTab 自己也会拉这一支 (ReviewTab.jsx:41 load())。这里多打一次是为了在它挂载之前
    // 就知道该开哪一段 —— 同一支只读函数, 不写库。
    if (!FB.api || !FB.api.pendingReviews) return;
    let dead = false;
    FB.api.pendingReviews().then((l) => {
      if (dead || fixed.current) return;
      if (!l || !l.length) setSeg("receive");
    }).catch(() => {});
    return () => { dead = true; };
  }, [isAdmin]);

  if (!isAdmin) return <FB.ReceiveTab lang={lang} user={user} />;

  function pick(v) { fixed.current = true; setSeg(v); }

  return (
    <div>
      <div className="px-3 pt-3 max-w-md mx-auto">
        <FB.UI.Seg small value={seg} onChange={pick}
          options={[["receive", t("segReceive")], ["review", t("segReview")]]} />
      </div>
      {seg === "receive"
        ? <FB.ReceiveTab lang={lang} user={user} />
        : <FB.ReviewTab lang={lang} user={user} />}
    </div>
  );
};
