diff --git a/packages/app/src/components/Layout/header/index.jsx b/packages/app/src/components/Layout/header/index.jsx
index d9e030bd..8e7db535 100755
--- a/packages/app/src/components/Layout/header/index.jsx
+++ b/packages/app/src/components/Layout/header/index.jsx
@@ -1,27 +1,52 @@
import React from "react"
import classnames from "classnames"
+import { Motion, spring } from "react-motion"
+
+import useLayoutInterface from "hooks/useLayoutInterface"
import "./index.less"
export default (props) => {
- const [visible, setVisible] = React.useState(false)
+ const [render, setRender] = React.useState(null)
- const headerInterface = {
- toggle: (to) => setVisible((prevValue) => to ?? !prevValue),
- }
-
- React.useEffect(() => {
- app.layout.header = headerInterface
- }, [])
-
- return
{
+ if (component === null) {
+ return setRender(null)
}
- )}
+
+ return setRender({
+ component,
+ options
+ })
+ }
+ })
+
+ return
- {String(window.location.pathname).toTitleCase()}
-
+ {({ y, height }) => {
+ return
+ {
+ render?.component && React.cloneElement(
+ render?.component,
+ render?.options?.props ?? {}
+ )
+ }
+
+ }}
+
}
diff --git a/packages/app/src/components/Layout/header/index.less b/packages/app/src/components/Layout/header/index.less
index 061fb8f7..edce163b 100755
--- a/packages/app/src/components/Layout/header/index.less
+++ b/packages/app/src/components/Layout/header/index.less
@@ -1,4 +1,4 @@
-.page_header {
+.page_header_wrapper {
position: sticky;
z-index: 100;
@@ -6,26 +6,24 @@
top: 0;
left: 0;
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: flex-start;
-
- overflow: hidden;
-
- // hidden values
- padding: 0;
- opacity: 0;
- height: 0px;
width: 100%;
- transition: all 150ms ease-in-out;
+ margin-bottom: 20px;
+ padding: 5px;
backdrop-filter: blur(10px);
- &.visible {
- opacity: 1;
- height: 50px;
- padding: 20px;
+ background-color: rgba(var(--background-color-accent-values), 0.8);
+
+ border-radius: 12px;
+ border: 1px solid var(--border-color);
+
+ overflow: hidden;
+
+ &.hidden {
+ opacity: 0;
+ height: 0;
+ padding: 0;
+ margin: 0;
}
}
\ No newline at end of file
diff --git a/packages/app/src/components/PagePanels/components/NavMenu/index.jsx b/packages/app/src/components/PagePanels/components/NavMenu/index.jsx
index 77e19e95..3bf47dec 100644
--- a/packages/app/src/components/PagePanels/components/NavMenu/index.jsx
+++ b/packages/app/src/components/PagePanels/components/NavMenu/index.jsx
@@ -4,30 +4,8 @@ import * as antd from "antd"
import "./index.less"
-const NavMenu = (props) => {
- const handleOnClickItem = (event) => {
- return props.onClickItem(event.key)
- }
- return
-
- {
- props.header &&
- {props.header}
-
- }
-
-
-
-
-}
-
-const NavMenuMobile = (props) => {
+export default (props) => {
function handleClickItem(item) {
if (item.children && Array.isArray(item.children)) {
return false
@@ -38,7 +16,7 @@ const NavMenuMobile = (props) => {
return
{
@@ -56,7 +34,7 @@ const NavMenuMobile = (props) => {
{
{item.icon}
+
+ {
+ props.renderNames &&
+
+ {item.label ?? item.id}
+
+
+ }
}
@@ -72,7 +58,7 @@ const NavMenuMobile = (props) => {
return
handleClickItem(item)}
@@ -82,10 +68,16 @@ const NavMenuMobile = (props) => {
{item.icon}
+
+ {
+ props.renderNames &&
+
+ {item.label ?? item.id}
+
+
+ }
})
}
-}
-
-export default app.isMobile ? NavMenuMobile : NavMenu
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/packages/app/src/components/PagePanels/components/NavMenu/index.less b/packages/app/src/components/PagePanels/components/NavMenu/index.less
index 1ea176fe..db4c3560 100644
--- a/packages/app/src/components/PagePanels/components/NavMenu/index.less
+++ b/packages/app/src/components/PagePanels/components/NavMenu/index.less
@@ -1,64 +1,6 @@
@import "theme/vars.less";
.navmenu_wrapper {
- position: relative;
-
- display: flex;
- flex-direction: column;
-
- align-items: center;
- justify-content: center;
-
- height: 100%;
- width: 100%;
-
- .card {
- display: flex;
- flex-direction: column;
-
- background-color: var(--background-color-accent);
- border-radius: 12px;
- padding: 20px;
-
- width: 100%;
-
- h1,
- h2 {
- width: fit-content;
- margin: 0;
- }
-
- .card_header {
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
-
- margin-bottom: 10px;
-
- view-transition-name: main-header;
-
- h1 {
- view-transition-name: main-header-text;
- }
- }
-
- &.content {
- position: relative;
-
- transform: translateY(-30px);
- padding-top: 35px;
-
- z-index: 45;
- }
- }
-
- &.card:last-child {
- margin-bottom: 0;
- }
-}
-
-.__mobile__navmenu_wrapper {
display: flex;
flex-direction: row;
@@ -66,9 +8,10 @@
width: 100%;
- .__mobile__navmenu_item {
+ .navmenu_item {
+ font-size: 0.7rem;
display: flex;
- flex-direction: column;
+ flex-direction: row;
align-items: center;
@@ -82,10 +25,16 @@
color: var(--colorPrimary);
}
+ p {
+ margin: 0;
+ }
+
.icon {
margin: 0;
line-height: 1rem;
font-size: 1.5rem;
+
+ font-size: 1rem;
}
.label {
diff --git a/packages/app/src/components/PagePanels/index.jsx b/packages/app/src/components/PagePanels/index.jsx
index a151cdee..a74386be 100755
--- a/packages/app/src/components/PagePanels/index.jsx
+++ b/packages/app/src/components/PagePanels/index.jsx
@@ -72,6 +72,8 @@ export class PagePanelWithNavMenu extends React.Component {
if (app.isMobile) {
app.layout.top_bar.shouldUseTopBarSpacer(true)
+ } else {
+ app.layout.header.render(null)
}
}
@@ -119,7 +121,10 @@ export class PagePanelWithNavMenu extends React.Component {
const componentProps = tab.props ?? this.props.tabProps
- return React.createElement(tab.component, componentProps)
+ return React.createElement(tab.component, {
+ ...componentProps,
+ ref: this.primaryPanelRef,
+ })
}
replaceQueryTypeToCurrentTab = () => {
@@ -186,16 +191,23 @@ export class PagePanelWithNavMenu extends React.Component {
}
render() {
- const panels = [
+ return <>
{
- children: <>
- this.handleTabChange(key)}
- />
+ app.isMobile && app.layout.top_bar.render( this.handleTabChange(key)}
+ />)
+ }
+ {
+ !app.isMobile && app.layout.header.render( this.handleTabChange(key)}
+ renderNames
+ >
{
Array.isArray(this.state.renders) && [
this.state.renders.map((render, index) => {
@@ -206,98 +218,14 @@ export class PagePanelWithNavMenu extends React.Component {
})
]
}
- >
- },
- {
- props: {
- ref: this.primaryPanelRef,
- className: this.props.transition ? "fade-opacity-enter" : undefined,
- },
- children: this.renderActiveTab()
- },
- ]
-
- if (app.isMobile) {
- delete panels[0]
- }
-
- if (this.props.extraPanel) {
- panels.push(this.props.extraPanel)
- }
-
- return <>
- {
- app.isMobile && app.layout.top_bar.render( this.handleTabChange(key)}
- />)
+ )
+ }
+
+ {
+ this.renderActiveTab()
}
-
>
}
}
-export default class PagePanels extends React.Component {
- generateGridStyle = () => {
- switch (this.props.panels.length) {
- case 1: {
- return {
- gridTemplateColumns: "1fr",
- }
- }
- case 2: {
- return {
- gridTemplateColumns: "1fr 3fr",
- }
- }
- case 3: {
- return {
- gridTemplateColumns: "0.5fr 1fr 0.5fr",
- }
- }
- }
- }
-
- render() {
- if (!this.props.panels) {
- return null
- }
-
- return
- {
- this.props.panels[0] &&
- }
- {
- this.props.panels[1] &&
- }
- {
- this.props.panels[2] &&
- }
-
- }
-}
\ No newline at end of file
+export default PagePanelWithNavMenu
\ No newline at end of file
diff --git a/packages/app/src/components/PagePanels/index.less b/packages/app/src/components/PagePanels/index.less
index d46e27c6..9d3af78d 100755
--- a/packages/app/src/components/PagePanels/index.less
+++ b/packages/app/src/components/PagePanels/index.less
@@ -53,12 +53,8 @@ html {
}
.pagePanels {
- display: grid;
-
- grid-template-columns: 1fr 3fr;
- grid-template-rows: 1fr;
- grid-column-gap: 20px;
- grid-row-gap: 0px;
+ display: flex;
+ flex-direction: column;
width: 100%;
diff --git a/packages/app/src/layouts/default/index.jsx b/packages/app/src/layouts/default/index.jsx
index c0b96c89..0be0f9ae 100755
--- a/packages/app/src/layouts/default/index.jsx
+++ b/packages/app/src/layouts/default/index.jsx
@@ -2,7 +2,15 @@ import React from "react"
import classnames from "classnames"
import { Layout } from "antd"
-import { Sidebar, Drawer, Sidedrawer, BottomBar, TopBar, ToolsBar } from "components/Layout"
+import {
+ Sidebar,
+ Drawer,
+ Sidedrawer,
+ BottomBar,
+ TopBar,
+ ToolsBar,
+ Header,
+} from "components/Layout"
import BackgroundDecorator from "components/BackgroundDecorator"
@@ -27,6 +35,7 @@ const DesktopLayout = (props) => {
+
{
"fade-transverse-active",
)}
>
+
+
{
props.children && React.cloneElement(props.children, props)
}