56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
// Metro module 6014 (f6015).
|
|
import { useState, useEffect } from "react";
|
|
import AdUserStore from "../native/AdUserStore";
|
|
import { DEFAULT_TIMEOUT_MS } from "./AdDataUtilsConstants";
|
|
import { fetchAdUser } from "../native/AdUserActionCreators.android";
|
|
export function getAdUser(a0) {
|
|
let r20;
|
|
if (AdUserStore.adUser == null && !AdUserStore.hasFetchFailed) {
|
|
if (!AdUserStore.isFetching) {
|
|
fetchAdUser(a0);
|
|
}
|
|
r20 = new Promise((c25677_0) => {
|
|
let c25677_1, c25677_2;
|
|
const handleUpdate2 = function handleUpdate() {
|
|
if (AdUserStore.adUser != null || AdUserStore.hasFetchFailed) {
|
|
if (!c25677_1) {
|
|
c25677_1 = true;
|
|
clearTimeout(c25677_2);
|
|
AdUserStore.removeChangeListener(handleUpdate2);
|
|
c25677_0(AdUserStore.adUser);
|
|
}
|
|
}
|
|
};
|
|
c25677_1 = false;
|
|
c25677_2 = setTimeout(() => {
|
|
if (!c25677_1) {
|
|
c25677_1 = true;
|
|
clearTimeout(c25677_2);
|
|
AdUserStore.removeChangeListener(handleUpdate2);
|
|
c25677_0(null);
|
|
}
|
|
}, DEFAULT_TIMEOUT_MS);
|
|
AdUserStore.addChangeListener(handleUpdate2);
|
|
});
|
|
} else {
|
|
r20 = Promise.resolve(AdUserStore.adUser);
|
|
}
|
|
return r20;
|
|
}
|
|
export function useAdUser(a0) {
|
|
const [state, setState] = useState(AdUserStore.adUser);
|
|
useEffect(() => {
|
|
const handleStoreChange2 = function handleStoreChange() {
|
|
if (AdUserStore.adUser != null || AdUserStore.hasFetchFailed) {
|
|
setState(AdUserStore.adUser);
|
|
}
|
|
};
|
|
if (!(AdUserStore.adUser != null || AdUserStore.isFetching || AdUserStore.hasFetchFailed)) {
|
|
fetchAdUser(a0);
|
|
}
|
|
AdUserStore.addChangeListener(handleStoreChange2);
|
|
return () => AdUserStore.removeChangeListener(handleStoreChange2);
|
|
}, [a0]);
|
|
return state;
|
|
}
|