// Metro module 13890 (f13891). import { useState, useRef, useEffect } from "react"; import UserStore from "../../stores/UserStore"; import DataHarvestStore from "./DataHarvestStore"; import { REQUEST_DATA_LIMIT_MS } from "./HarvesterConstants"; import { useStateFromStores } from "../../_bundle/Module589"; export function harvestDisabled(a0, a1) { const verified = a1.verified; return verified ? !!a1.isStaff() || a0 != null && REQUEST_DATA_LIMIT_MS > Date.now() - new Date(a0.created_at).getTime() : !verified; } export function useRequestHarvestStatus() { let c20773_1, ref; const stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser()); const stateFromStores2 = useStateFromStores([DataHarvestStore], () => DataHarvestStore.harvestType); const [state, setState] = useState(() => Date.now()); const r35 = stateFromStores2 != null ? new Date(stateFromStores2.created_at).getTime() + REQUEST_DATA_LIMIT_MS : state; c20773_1 = r35; ref = useRef(null); useEffect(() => { const r8 = c20773_1 - Date.now(); if (r8 > 0) { const current = setTimeout(() => setState(Date.now()), r8); clearTimeout(ref.current); ref.current = current; } return () => clearTimeout(ref.current); }, [r35]); return stateFromStores?.verified ? stateFromStores.isStaff() ? { allowed: false, reason: "staff" } : stateFromStores2 == null ? { allowed: true } : r35 > state ? { allowed: false, reason: "rate_limited", nextAllowed: new Date(r35) } : { allowed: true } : { allowed: false, reason: "not_verified" }; }