From 45258ac522db83af9c6d81b1336724102f235e0a Mon Sep 17 00:00:00 2001 From: sebseb7 Date: Wed, 16 Jul 2025 06:26:37 +0200 Subject: [PATCH] Refactor MainPageLayout for improved responsiveness: Updated layout to stack title above navigation on portrait phones, adjusted flex properties for better alignment, and enhanced navigation rendering for different screen sizes, ensuring a more user-friendly experience across devices. --- src/components/MainPageLayout.js | 262 +++++++++++++++++++------------ 1 file changed, 158 insertions(+), 104 deletions(-) diff --git a/src/components/MainPageLayout.js b/src/components/MainPageLayout.js index 4bcb677..e3f185d 100644 --- a/src/components/MainPageLayout.js +++ b/src/components/MainPageLayout.js @@ -124,68 +124,24 @@ const MainPageLayout = () => { mb: 4, mt: 2, px: 0, - transition: "all 0.3s ease-in-out" + transition: "all 0.3s ease-in-out", + // Portrait phone: stack title above navigation + flexDirection: { + xs: "column", + sm: "row" + }, + // Portrait phone: center align when stacked + alignItems: { + xs: "center", + sm: "center" + } }}> - {/* Left Navigation - Layered rendering */} + {/* Title for portrait phones - shown first */} - {navTexts.map((navItem, index) => { - const isActive = navConfig.leftNav && navConfig.leftNav.text === navItem.text; - const link = navItem.link; - - return ( - - - - {navItem.text} - - - ); - })} - - - {/* Center Title - Layered rendering - This defines the height for centering */} - {Object.entries(allTitles).map(([pageType, title]) => ( { ))} - {/* Right Navigation - Layered rendering */} + {/* Navigation container for portrait phones */} - {navTexts.map((navItem, index) => { - const isActive = navConfig.rightNav && navConfig.rightNav.text === navItem.text; - const link = navItem.link; - - return ( - - + {navTexts.map((navItem, index) => { + const isActive = navConfig.leftNav && navConfig.leftNav.text === navItem.text; + const link = navItem.link; + + return ( + - {navItem.text} - - - - ); - })} + + + {navItem.text} + + + ); + })} + + + {/* Center Title - Layered rendering - Hidden on portrait phones, shown on larger screens */} + + {Object.entries(allTitles).map(([pageType, title]) => ( + + {title} + + ))} + + + {/* Right Navigation - Layered rendering */} + + {navTexts.map((navItem, index) => { + const isActive = navConfig.rightNav && navConfig.rightNav.text === navItem.text; + const link = navItem.link; + + return ( + + + {navItem.text} + + + + ); + })} +