diff --git a/src/components/NavEntry.tsx b/src/components/NavEntry.tsx index dc1b6ad..70dd9fa 100644 --- a/src/components/NavEntry.tsx +++ b/src/components/NavEntry.tsx @@ -29,6 +29,7 @@ export const NavEntry = ({ entry, isActive }: NavEntryProps) => { to={`/${kebabSection}/${kebabTitle}`} isActive={isActive} id={`nav-entry-${contentLocationId}`} + data-astro-reload > {entryTitle} diff --git a/src/components/Toolbar.tsx b/src/components/Toolbar.tsx index 20de500..a083d70 100644 --- a/src/components/Toolbar.tsx +++ b/src/components/Toolbar.tsx @@ -7,40 +7,40 @@ import { ToolbarItem, } from '@patternfly/react-core' -import { ToggleThemeSwitcher } from './toolbar/ToogleThemeSwitcher' +import { ToggleThemeSwitcher } from './toolbar/ToggleThemeSwitcher' import { SearchComponent } from './toolbar/SearchComponent' -import { DocumentReleaseDropdown } from './toolbar/DocumentReleaseDropdown'; -import GithubIcon from '@patternfly/react-icons/dist/esm/icons/github-icon'; +import { DocumentReleaseDropdown } from './toolbar/DocumentReleaseDropdown' +import GithubIcon from '@patternfly/react-icons/dist/esm/icons/github-icon' export const Toolbar: React.FunctionComponent = () => ( - - - - - - - - - - - - - - - - - - - ) + + + + + + + + + + + + + + + + + + +) diff --git a/src/components/__tests__/__snapshots__/NavEntry.test.tsx.snap b/src/components/__tests__/__snapshots__/NavEntry.test.tsx.snap index bac8154..bcb40c6 100644 --- a/src/components/__tests__/__snapshots__/NavEntry.test.tsx.snap +++ b/src/components/__tests__/__snapshots__/NavEntry.test.tsx.snap @@ -10,6 +10,7 @@ exports[`NavEntry matches snapshot 1`] = ` > diff --git a/src/components/__tests__/__snapshots__/NavSection.test.tsx.snap b/src/components/__tests__/__snapshots__/NavSection.test.tsx.snap index 8124b41..dc408db 100644 --- a/src/components/__tests__/__snapshots__/NavSection.test.tsx.snap +++ b/src/components/__tests__/__snapshots__/NavSection.test.tsx.snap @@ -53,6 +53,7 @@ exports[`matches snapshot 1`] = ` @@ -71,6 +72,7 @@ exports[`matches snapshot 1`] = ` > @@ -89,6 +91,7 @@ exports[`matches snapshot 1`] = ` > diff --git a/src/components/__tests__/__snapshots__/Navigation.test.tsx.snap b/src/components/__tests__/__snapshots__/Navigation.test.tsx.snap index 6dae245..833e9b8 100644 --- a/src/components/__tests__/__snapshots__/Navigation.test.tsx.snap +++ b/src/components/__tests__/__snapshots__/Navigation.test.tsx.snap @@ -68,6 +68,7 @@ exports[`matches snapshot 1`] = ` @@ -86,6 +87,7 @@ exports[`matches snapshot 1`] = ` > @@ -104,6 +106,7 @@ exports[`matches snapshot 1`] = ` > @@ -122,6 +125,7 @@ exports[`matches snapshot 1`] = ` > @@ -140,6 +144,7 @@ exports[`matches snapshot 1`] = ` > @@ -204,6 +209,7 @@ exports[`matches snapshot 1`] = ` > @@ -222,6 +228,7 @@ exports[`matches snapshot 1`] = ` > @@ -240,6 +247,7 @@ exports[`matches snapshot 1`] = ` > diff --git a/src/components/toolbar/ToogleThemeSwitcher.tsx b/src/components/toolbar/ToggleThemeSwitcher.tsx similarity index 64% rename from src/components/toolbar/ToogleThemeSwitcher.tsx rename to src/components/toolbar/ToggleThemeSwitcher.tsx index 532a31e..54ddf9c 100644 --- a/src/components/toolbar/ToogleThemeSwitcher.tsx +++ b/src/components/toolbar/ToggleThemeSwitcher.tsx @@ -5,23 +5,23 @@ import SunIcon from '@patternfly/react-icons/dist/esm/icons/sun-icon' import { getThemePreference, updateThemePreference } from '../../utils/theme' export const ToggleThemeSwitcher: React.FunctionComponent = () => { - const [isDarkTheme, setIsDarkTheme] = React.useState(false); + const [isDarkTheme, setIsDarkTheme] = React.useState(false) + const [isMounted, setIsMounted] = React.useState(false) React.useEffect(() => { - // const darkTheme = window?.localStorage?.getItem('darkMode') === 'true' ? true : false; - // const html = document.querySelector('html') as HTMLHtmlElement - // html.classList.toggle('pf-v6-theme-dark', darkTheme) - const darkTheme = getThemePreference() === 'dark'; - setIsDarkTheme(darkTheme); - }, []); + setIsMounted(true) + const darkTheme = getThemePreference() === 'dark' + setIsDarkTheme(darkTheme) + }, []) const toggleDarkTheme = (_evt: unknown, selected: boolean) => { const darkThemeToggleClicked = !selected === isDarkTheme - updateThemePreference(darkThemeToggleClicked ? 'dark' : 'light'); - // const html = document.querySelector('html') as HTMLHtmlElement - // html.classList.toggle('pf-v6-theme-dark', darkThemeToggleClicked) - setIsDarkTheme(darkThemeToggleClicked); - //localStorage.setItem('darkMode', JSON.stringify(darkThemeToggleClicked)); + updateThemePreference(darkThemeToggleClicked ? 'dark' : 'light') + setIsDarkTheme(darkThemeToggleClicked) + } + + if (!isMounted) { + return null } return ( diff --git a/src/layouts/Main.astro b/src/layouts/Main.astro index 3a96c13..99cb01c 100644 --- a/src/layouts/Main.astro +++ b/src/layouts/Main.astro @@ -10,6 +10,18 @@ import Navigation from '../components/Navigation.astro' + @@ -27,16 +39,18 @@ import Navigation from '../components/Navigation.astro'