Hi,
Let’s say: I have 2 headers (Including Navigation), I want to show “Header 1” on “Home Page”, And I want to show “Header 2” on the other pages. I hope it’s clear for you guys
Also I want to add some “css” to the “Navbar” when the page scrolls, How to achieve this ?
BTY:I am using “React-Bootstrap”.
Thanks A lots
Hi @zaid_sameer
One way to do this would be to conditionally test if you’re on the homepage and return different content from header.js
like this:
const Header = ({ state }) => {
const data = state.source.get(state.router.link);
if (data.isHome) {
return (
<>
<Container>
<StyledLink link="/">
<Title>This is the home page</Title>
</StyledLink>
<MobileMenu />
</Container>
<Nav />
</>
);
} else {
return (
<>
<Container>
<StyledLink link="/">
<Title>This is an inner page</Title>
</StyledLink>
<MobileMenu />
</Container>
<Nav />
</>
);
}
};
I’m afraid I’ve never used react-bootstrap. For styling we recommend using Emotion CSS-in-JS which is bundled with Frontity, see https://docs.frontity.org/learning-frontity/styles for more info.
1 Like
Here’s another version which is a bit more DRY:
const Header = ({ state }) => {
const data = state.source.get(state.router.link);
return (
<>
<Container>
<StyledLink link="/">
<Title>{data.isHome ? 'This is the home page' : 'This is an inner page'}</Title>
</StyledLink>
<MobileMenu />
</Container>
<Nav />
</>
);
};
Which you use depends on how different the homepage header is from the other header.
1 Like