stackpress
Version:
Incept is a content management framework.
22 lines (21 loc) • 1.78 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = LayoutProvider;
const jsx_runtime_1 = require("react/jsx-runtime");
const r22n_1 = require("r22n");
const ServerProvider_js_1 = __importDefault(require("../server/ServerProvider.js"));
const ModalProvider_js_1 = __importDefault(require("../modal/ModalProvider.js"));
const NotifyProvider_js_1 = __importDefault(require("../notify/NotifyProvider.js"));
const ThemeProvider_js_1 = __importDefault(require("../theme/ThemeProvider.js"));
function LayoutProvider(props) {
var _a, _b;
const { data, session, request, response, children } = props || {};
const { languages = {}, locale = 'en_US' } = (data === null || data === void 0 ? void 0 : data.language) || {};
const { label = 'EN', translations = {} } = languages[locale] || {};
const notify = (_a = data === null || data === void 0 ? void 0 : data.view) === null || _a === void 0 ? void 0 : _a.notify;
const theme = ((_b = request === null || request === void 0 ? void 0 : request.session) === null || _b === void 0 ? void 0 : _b.theme) || 'light';
return ((0, jsx_runtime_1.jsx)(ServerProvider_js_1.default, { data: data, session: session, request: request, response: response, children: (0, jsx_runtime_1.jsx)(r22n_1.R22nProvider, { language: label, translations: translations, children: (0, jsx_runtime_1.jsx)(ThemeProvider_js_1.default, { theme: theme, children: (0, jsx_runtime_1.jsx)(NotifyProvider_js_1.default, { config: notify, children: (0, jsx_runtime_1.jsx)(ModalProvider_js_1.default, { className: "layout-modal", children: children }) }) }) }) }));
}