oc-template-preact-compiler
Version:
Compiler for the Preact OC template
32 lines (31 loc) • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DataProvider = void 0;
exports.useData = useData;
const jsx_runtime_1 = require("preact/jsx-runtime");
const preact_1 = require("preact");
const hooks_1 = require("preact/hooks");
const DataContext = (0, preact_1.createContext)({});
const DataProvider = ({ children, ...props }) => {
// @ts-ignore children props
return (0, jsx_runtime_1.jsx)(DataContext.Provider, { value: props, children: children });
};
exports.DataProvider = DataProvider;
function useData() {
const { value: { getData, ...rest } } = (0, hooks_1.useContext)(DataContext);
const asyncGetData = (0, hooks_1.useCallback)((data) => {
return new Promise((resolve, reject) => {
// @ts-ignore
getData({ ...rest, ...data }, (err, newData) => {
if (err) {
reject(err);
}
else {
resolve(newData);
}
});
});
}, []);
// @ts-ignore
return { getData: asyncGetData, ...rest };
}