Commit 8ed39b9

HPCesia <me@hpcesia.com>
2025-01-16 08:39:24
fix: button href bug refactor: rename
1 parent c71d953
src/components/widgets/WidgetIconButton.astro โ†’ src/components/widgets/IconButton.astro
@@ -12,7 +12,7 @@ let { id, description, href, onclick } = Astro.props;
 if (!description) description = '';
 
 if (href && onclick) throw new AstroParameterConflictError('href', 'onclick');
-if (href) onclick = `window.location.href(\`${href}\`)`;
+if (href) onclick = `window.location.assign(\`${href}\`)`;
 else if (!onclick) onclick = '';
 ---
 
src/components/widgets/WidgetTextButton.astro โ†’ src/components/widgets/TextButton.astro
@@ -9,7 +9,7 @@ interface Props {
 let { id, href, onclick } = Astro.props;
 
 if (href && onclick) throw new AstroParameterConflictError('href', 'onclick');
-if (href) onclick = `window.location.href(\`${href}\`)`;
+if (href) onclick = `window.location.assign(\`${href}\`)`;
 else onclick = '';
 ---
 
src/components/Navbar.astro
@@ -3,8 +3,8 @@ import { navbarConfig, siteConfig } from '@/config';
 
 import { Icon } from 'astro-icon/components';
 
-import WidgetTextButton from './widgets/WidgetTextButton.astro';
-import WidgetIconButton from './widgets/WidgetIconButton.astro';
+import TextButton from './widgets/TextButton.astro';
+import IconButton from './widgets/IconButton.astro';
 
 interface Props {
   title?: string;
@@ -16,16 +16,16 @@ if (!title) title = 'Astral Halo';
 
 <div id="navbar" class="flex w-full h-[60px] bg-gray-100 items-center">
   <div id="nav-left" class="left-0 flex mr-auto w-fit">
-    <WidgetTextButton id="site-name-wrapper" href="/">
+    <TextButton id="site-name-wrapper" href="/">
       <span class="text-xl font-bold">{title}</span>
-    </WidgetTextButton>
+    </TextButton>
   </div>
   <div id="nav-center" class="left-0 flex m-auto w-fit max-md:hidden">
     {
       navbarConfig.navbarCenterItems.map((item) => (
-        <WidgetTextButton id="nav-menu-item" href={item.href} onclick={item.onclick}>
+        <TextButton id="nav-menu-item" href={item.href} onclick={item.onclick}>
           <span class="text-xl">{item.text}</span>
-        </WidgetTextButton>
+        </TextButton>
       ))
     }
   </div>
@@ -33,25 +33,25 @@ if (!title) title = 'Astral Halo';
     <div class="flex max-md:hidden">
       {
         navbarConfig.navbarRightItems.onlyWide.map((item) => (
-          <WidgetIconButton id="nav-menu-item" href={item.href} onclick={item.onclick} description={item.text}>
+          <IconButton id="nav-menu-item" href={item.href} onclick={item.onclick} description={item.text}>
             <Icon name={item.icon} class="text-2xl" />
-          </WidgetIconButton>
+          </IconButton>
         ))
       }
     </div>
     <div class="flex">
       {
         navbarConfig.navbarRightItems.always.map((item) => (
-          <WidgetIconButton id="nav-menu-item" href={item.href} onclick={item.onclick} description={item.text}>
+          <IconButton id="nav-menu-item" href={item.href} onclick={item.onclick} description={item.text}>
             <Icon name={item.icon} class="text-2xl" />
-          </WidgetIconButton>
+          </IconButton>
         ))
       }
     </div>
     <div class="flex md:hidden">
-      <WidgetIconButton id="toggle-sidebar-btn">
+      <IconButton id="toggle-sidebar-btn">
         <Icon name="material-symbols:menu-rounded" class="text-2xl" />
-      </WidgetIconButton>
+      </IconButton>
     </div>
   </div>
 </div>
src/components/Sidebar.astro
@@ -3,8 +3,8 @@ import { navbarConfig } from '@/config';
 
 import { Icon } from 'astro-icon/components';
 
-import WidgetTextButton from './widgets/WidgetTextButton.astro';
-import WidgetIconButton from './widgets/WidgetIconButton.astro';
+import TextButton from './widgets/TextButton.astro';
+import IconButton from './widgets/IconButton.astro';
 ---
 
 <div id="sidebar">
@@ -16,16 +16,16 @@ import WidgetIconButton from './widgets/WidgetIconButton.astro';
   >
     {
       navbarConfig.navbarCenterItems.map((item) => (
-        <WidgetTextButton id="nav-menu-item" href={item.href} onclick={item.onclick}>
+        <TextButton id="nav-menu-item" href={item.href} onclick={item.onclick}>
           <span class="text-xl">{item.text}</span>
-        </WidgetTextButton>
+        </TextButton>
       ))
     }
     {
       navbarConfig.navbarRightItems.onlyWide.map((item) => (
-        <WidgetIconButton id="nav-menu-item" href={item.href} onclick={item.onclick} description={item.text}>
+        <IconButton id="nav-menu-item" href={item.href} onclick={item.onclick} description={item.text}>
           <Icon name={item.icon} class="text-2xl" />
-        </WidgetIconButton>
+        </IconButton>
       ))
     }
   </div>
src/components/SideToolBar.astro
@@ -0,0 +1,8 @@
+---
+
+---
+
+<div id="side-menu" class="close">
+  <div id="sm-hide"></div>
+  <div id="sm-show"></div>
+</div>
src/layouts/Layout.astro โ†’ src/layouts/GlobalLayout.astro
File renamed without changes
src/layouts/MainLayout.astro
@@ -1,20 +1,18 @@
 ---
-import Layout from './Layout.astro';
-
 import Navbar from '@components/Navbar.astro';
 import SideToolBar from '@components/SideToolBar.astro';
 import Sidebar from '@components/Sidebar.astro';
+import GlobalLayout from './GlobalLayout.astro';
 
 interface Props {
   title?: string;
   description?: string;
   lang?: string;
-  pageType?: string;
 }
-const { title, description, lang, pageType } = Astro.props;
+const { title, description, lang } = Astro.props;
 ---
 
-<Layout title={title} description={description} lang={lang}>
+<GlobalLayout title={title} description={description} lang={lang}>
   <slot slot="head" name="head" />
   <Sidebar />
   <div id="body-wrap">
@@ -24,4 +22,4 @@ const { title, description, lang, pageType } = Astro.props;
       <slot />
     </div>
   </div>
-</Layout>
+</GlobalLayout>