UNPKG

@pagamio/frontend-commons-lib

Version:

Pagamio library for Frontend reusable components like the form engine and table container

20 lines (19 loc) 1.94 kB
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; import { useSessionTimer } from '../../shared'; import { useAnyDrawerOpen } from '../../shared/hooks/useAnyDrawerOpen'; import { TranslationProvider } from '../../translations'; import { AppBreadcrumbNav, AppDashboardNavbar, AppDashboardSidebar, AppLayoutContent, SessionExpiryModal, } from '../layout'; import LoaderComponent from '../ui/Loader'; const AppLayout = ({ children, appNavbar, hideSidebar = false, hideNavbar = false, hideBreadcrumbNav = false, enableTranslations = false, translationConfig, sidebarHeader, }) => { const isDrawerOpen = useAnyDrawerOpen(); const { showModal, countdown, loading, modalDismissed, handleCloseModal, handleRefreshToken } = useSessionTimer(); if (loading) { return (_jsx("div", { className: "flex min-h-screen items-center justify-center", children: _jsx(LoaderComponent, {}) })); } const content = (_jsxs(_Fragment, { children: [!hideNavbar && (_jsx(AppDashboardNavbar, { ...appNavbar, hideSidebarToggle: hideSidebar, showLocaleSwitcher: enableTranslations })), _jsxs("div", { className: `flex items-start transition-all duration-300 ${!hideNavbar ? 'mt-16' : ''}`, style: { width: isDrawerOpen ? 'calc(100vw - 420px)' : '100%' }, children: [!hideSidebar && _jsx(AppDashboardSidebar, {}), _jsxs(AppLayoutContent, { isSidebarHidden: hideSidebar, children: [!hideBreadcrumbNav && _jsx(AppBreadcrumbNav, {}), children] }), _jsx(SessionExpiryModal, { show: showModal && !modalDismissed, countdown: countdown, loading: loading, onDismiss: handleCloseModal, onRenew: handleRefreshToken })] })] })); if (enableTranslations) { return (_jsx(TranslationProvider, { defaultLocale: translationConfig?.defaultLocale ?? 'en', localeData: translationConfig?.localeData, loadPath: translationConfig?.loadPath, children: content })); } return content; }; export default AppLayout;