73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
// Metro module 15839 (f15840).
|
|
import { useState, useId, useInsertionEffect, useLayoutEffect, useContext, useEffect } from "react";
|
|
import { useSharedValue } from "../../../reanimated/ReanimatedRexport";
|
|
import { TransitionStates } from "../../../../design/components/TransitionGroup/TransitionGroup";
|
|
export default function useActivityWebViewLockManager() {
|
|
return useState(() => {
|
|
let c28165_0, c28165_1, c28165_2, $mk117053 = function() {
|
|
return () => {
|
|
for (const item of c28165_2) {
|
|
const [r12, r34] = item;
|
|
const { canRender, callback } = r34;
|
|
const canRender2 = getCanRender2(r12);
|
|
if (canRender2 !== canRender) {
|
|
const callback2 = callback;
|
|
c28165_2.set(r12, {
|
|
canRender: canRender2,
|
|
callback: callback2
|
|
});
|
|
callback2(canRender2);
|
|
}
|
|
}
|
|
c28165_0 = void 0;
|
|
};
|
|
};
|
|
const getCanRender2 = function getCanRender(a0) {
|
|
return c28165_1.size === 0 || c28165_1.values().next()?.value === a0;
|
|
};
|
|
c28165_1 = new Set();
|
|
c28165_2 = new Map();
|
|
return function() {
|
|
const id = useId();
|
|
const [state, setState] = useState(() => c28165_1.size === 0 || c28165_1.values().next()?.value === id);
|
|
useInsertionEffect(() => {
|
|
c28165_1.add(id);
|
|
c28165_2.set(id, {
|
|
callback: setState,
|
|
canRender: c28165_1.size === 0 || c28165_1.values().next()?.value === id
|
|
});
|
|
return () => {
|
|
c28165_1.delete(id);
|
|
c28165_2.delete(id);
|
|
};
|
|
}, [id]);
|
|
useLayoutEffect(() => {
|
|
if (c28165_0 == null) {
|
|
c28165_0 = Promise.resolve().then($mk117053());
|
|
}
|
|
return () => {
|
|
if (c28165_0 == null) {
|
|
c28165_0 = Promise.resolve().then($mk117053());
|
|
}
|
|
};
|
|
}, [id, setState]);
|
|
return state;
|
|
};
|
|
})[0];
|
|
};
|
|
export function useLockedWebView({ transitionState, context }) {
|
|
const sharedValue = useSharedValue(false);
|
|
const activityWebViewLock = (0, useContext(context).useActivityWebViewLock)();
|
|
useEffect(() => {
|
|
if (transitionState !== TransitionStates.YEETED && activityWebViewLock) {
|
|
sharedValue.set(true);
|
|
} else {
|
|
sharedValue.set(false);
|
|
}
|
|
}, [sharedValue, transitionState, activityWebViewLock]);
|
|
return {
|
|
shown: sharedValue,
|
|
renderWebView: activityWebViewLock
|
|
};
|
|
}
|