84 lines
2.8 KiB
TypeScript
84 lines
2.8 KiB
TypeScript
// Module ID: 13813
|
|
// Function ID: 105884
|
|
// Name: harvestDisabled
|
|
// Dependencies: [57, 31, 1849, 12684, 13814, 566, 2]
|
|
// Exports: harvestDisabled, useRequestHarvestStatus
|
|
|
|
// Module 13813 (harvestDisabled)
|
|
import _slicedToArray from "_slicedToArray";
|
|
import result from "result";
|
|
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
|
|
import closure_5 from "_isNativeReflectConstruct";
|
|
import { REQUEST_DATA_LIMIT_MS } from "REQUEST_DATA_LIMIT_DAYS";
|
|
|
|
const require = arg1;
|
|
const result = require("_isNativeReflectConstruct").fileFinishedImporting("modules/harvester/HarvesterUtils.tsx");
|
|
|
|
export const harvestDisabled = function harvestDisabled(created_at, stateFromStores) {
|
|
let tmp = !stateFromStores.verified;
|
|
if (!tmp) {
|
|
const tmp2 = !stateFromStores.isStaff();
|
|
let tmp3 = !tmp2;
|
|
if (tmp2) {
|
|
let tmp5 = null != created_at;
|
|
if (tmp5) {
|
|
const _Date = Date;
|
|
const _Date2 = Date;
|
|
const timestamp = Date.now();
|
|
const date = new Date(created_at.created_at);
|
|
tmp5 = REQUEST_DATA_LIMIT_MS > timestamp - date.getTime();
|
|
}
|
|
tmp3 = tmp5;
|
|
}
|
|
tmp = tmp3;
|
|
}
|
|
return tmp;
|
|
};
|
|
export const useRequestHarvestStatus = function useRequestHarvestStatus() {
|
|
let obj = _require(566);
|
|
const items = [_isNativeReflectConstruct];
|
|
const stateFromStores = obj.useStateFromStores(items, () => outer1_4.getCurrentUser());
|
|
const items1 = [closure_5];
|
|
const stateFromStores1 = _require(566).useStateFromStores(items1, () => outer1_5.harvestType);
|
|
const tmp2 = callback(React.useState(() => Date.now()), 2);
|
|
const first = tmp2[0];
|
|
_require = tmp2[1];
|
|
let sum = first;
|
|
if (null != stateFromStores1) {
|
|
const _Date = Date;
|
|
const date = new Date(stateFromStores1.created_at);
|
|
sum = date.getTime() + REQUEST_DATA_LIMIT_MS;
|
|
}
|
|
const dependencyMap = sum;
|
|
callback = React.useRef(null);
|
|
const items2 = [sum];
|
|
const effect = React.useEffect(() => {
|
|
const diff = closure_1 - Date.now();
|
|
if (diff > 0) {
|
|
const _setTimeout = setTimeout;
|
|
const _clearTimeout = clearTimeout;
|
|
const timerId = setTimeout(() => outer1_0(Date.now()), diff);
|
|
clearTimeout(ref.current);
|
|
ref.current = timerId;
|
|
}
|
|
return () => clearTimeout(outer1_2.current);
|
|
}, items2);
|
|
if (null != stateFromStores) {
|
|
if (stateFromStores.verified) {
|
|
if (stateFromStores.isStaff()) {
|
|
obj = { allowed: false, reason: "staff" };
|
|
} else if (null == stateFromStores1) {
|
|
obj = { allowed: true };
|
|
} else if (sum > first) {
|
|
const obj1 = { allowed: false, reason: "rate_limited" };
|
|
const _Date2 = Date;
|
|
const date1 = new Date(sum);
|
|
obj1.nextAllowed = date1;
|
|
obj = obj1;
|
|
} else {
|
|
obj = { allowed: true };
|
|
}
|
|
}
|
|
}
|
|
return { allowed: false, reason: "not_verified" };
|
|
};
|