import AppMenuBarTools from "@core/components/nav/AppMenuBarTools"; import Logo from "@core/components/nav/Logo"; import NavGroup from "@core/components/nav/NavGroup"; import NavUserTopMenu from "@core/components/nav/NavUserTopMenu"; import { SideBox } from "@core/components/nav/SideBox"; import TabGroup from "@core/components/tabs/TabGroup"; import { usePageTabStore } from "@core/stores/usePageTabStore"; import { SMixinFlexColumn, SMixinFlexRow, SMixinScrollerStyle } from "@core/styles/emotion"; import { css } from "@emotion/react"; import styled from "@emotion/styled"; import React from "react"; import { Outlet } from "react-router-dom"; import { useAppStore } from "stores"; import { mediaMin } from "styles/mediaQueries"; import pkg from "../../package.json"; interface StyleProps { sideMenuOpened?: boolean; sideBoxOpened?: boolean; } interface Props extends StyleProps {} function FrameProgram({}: Props) { const pageTabLoaded = usePageTabStore((s) => s.loaded); const fullScreen = useAppStore((s) => s.fullScreen); const sideMenuOpened = useAppStore((s) => s.sideMenuOpened); const sideBoxOpened = useAppStore((s) => s.sideBoxOpened); const navPosition = useAppStore((s) => s.navPosition); return ( {pageTabLoaded && } {!fullScreen && ( {navPosition === "top" && } )} {navPosition === "left" && ( )} }>
AXBoot.dev {pkg.version}
Copyright 2024 AXISJ Inc. all rights reserved
); } const PageFrameContainer = styled.div` ${SMixinFlexColumn("stretch", "stretch")}; height: 100vh; width: 100vw; flex: 1; overflow: hidden; background: ${(p) => p.theme.body_background}; color: ${(p) => p.theme.text_body_color}; `; const PageFrameHeaderTabBar = styled.div` ${SMixinFlexRow("stretch", "stretch")}; height: ${(p) => p.theme.tab_bar_height}px; overflow: hidden; `; const PageFrameHeader = styled.div` ${SMixinFlexRow("stretch", "center")}; overflow: hidden; background: ${(p) => p.theme.header_background}; border-bottom: 1px solid ${(p) => p.theme.border_color_base}; height: 55px; `; const PageFrameLeftNav = styled.div` ${SMixinFlexRow("stretch", "stretch")}; flex: none; position: relative; padding: 0; box-sizing: border-box; background: ${(p) => p.theme.page_background}; border-right: 1px solid ${(p) => p.theme.border_color_base}; ${({ sideMenuOpened, theme }) => { if (sideMenuOpened) { return css` width: ${theme.side_menu_open_width}px; `; } return css` width: ${theme.side_menu_close_width}px; `; }} z-index: 10; `; const PageFrameSide = styled.div` flex: none; position: relative; padding: 0; box-sizing: border-box; background: ${(p) => p.theme.page_background}; border-left: 1px solid ${(p) => p.theme.border_color_base}; z-index: 10; display: none; ${mediaMin.lg} { ${SMixinFlexRow("stretch", "stretch")}; } ${({ sideBoxOpened, theme }) => { if (sideBoxOpened) { return css` width: ${theme.side_menu_open_width}px; `; } return css` width: 0; background: ${theme.header_background}; `; }} `; const PageFrameContent = styled.div` flex: 1; ${SMixinFlexRow("stretch", "stretch")}; overflow: hidden; background-color: ${(p) => p.theme.page_background}; `; const Content = styled.div` flex: 1; overflow: auto; ${SMixinFlexColumn("stretch", "stretch")}; background-color: ${(p) => p.theme.page_background}; ${({ theme }) => css` ${SMixinScrollerStyle({ track_color: theme.header_background, thumb_color: theme.border_color_base, bg_color: theme.page_background, })} `}; `; const PageFrameFooter = styled.div` border-top: 1px solid ${(p) => p.theme.border_color_base}; background: ${(p) => p.theme.header_background}; padding: 4px 16px; font-size: 11px; ${SMixinFlexRow("space-between", "center")} `; export default FrameProgram;