one
Version:
One is a React framework for web, iOS, and Android apps.
58 lines (55 loc) • 1.46 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import { useCallback, useState } from "react";
import NativeReservedRegionsProvider from "../specs/OneNativeReservedRegionsProviderNativeComponent.native.js";
import { ReservedRegionsContext } from "./reservedRegionsContext.native.js";
function toRegion(region) {
if (region.kind !== "division" && region.kind !== "occlusion") {
throw new Error(`OneNativeReservedRegionsProvider emitted unknown kind ${region.kind}`);
}
return {
id: region.id,
kind: region.kind,
frame: {
x: region.x,
y: region.y,
width: region.width,
height: region.height
},
margins: {
top: region.marginTop,
left: region.marginLeft,
bottom: region.marginBottom,
right: region.marginRight
},
isActive: region.isActive
};
}
function Provider(param) {
var { children, ...props } = param;
var [snapshot, setSnapshot] = useState({
regions: [],
ready: false,
bounds: null
});
var onChange = useCallback(function(event) {
var { regions, width, height } = event.nativeEvent;
setSnapshot({
regions: regions.map(toRegion),
ready: true,
bounds: {
width,
height
}
});
}, []);
return /* @__PURE__ */ jsx(ReservedRegionsContext.Provider, {
value: snapshot,
children: /* @__PURE__ */ jsx(NativeReservedRegionsProvider, {
...props,
onNativeReservedRegionsChange: onChange,
children
})
});
}
export { Provider };
//# sourceMappingURL=ReservedRegions.native.js.map