@etsoo/smarterp-core
Version:
TypeScript APIs for SmartERP Core
48 lines (47 loc) • 1.47 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useRequiredAppContext = useRequiredAppContext;
exports.usePageData = usePageData;
exports.usePageDataEmpty = usePageDataEmpty;
const materialui_1 = require("@etsoo/materialui");
const react_1 = require("@etsoo/react");
const react_2 = __importDefault(require("react"));
const toolpad_1 = require("@etsoo/toolpad");
/**
* Get core service application context hook
* @returns Application
*/
function useRequiredAppContext() {
// Get the app context
const app = (0, react_1.useRequiredContext)(materialui_1.ReactAppContext);
// Assume the app is core service app
return app;
}
function usePageData(app, pageDataOrTitle, deps) {
const { dispatch } = react_2.default.useContext(toolpad_1.PageDataContext);
react_2.default.useEffect(() => {
// Page title
dispatch(typeof pageDataOrTitle === "object"
? pageDataOrTitle
: { page: pageDataOrTitle });
return () => {
// Reset page data
dispatch(true);
app.pageExit();
};
}, deps);
}
/**
* Use page data empty
* @param app Application
*/
function usePageDataEmpty(app) {
react_2.default.useEffect(() => {
return () => {
app.pageExit();
};
}, []);
}