_includes/navbar/Navbar.11ty.tsx (116 lines of code) (raw):

import NavbarSearch from "./NavbarSearch.11ty"; import { Resource } from "../../src/ResourceModels"; import ResourceCard from "../resourcecard/ResourceCard.11ty"; export type NavbarProps = { featuredResource: Resource | undefined; technologies: Resource[]; solutions: Resource[]; topics: Resource[]; }; const Navbar = ({ featuredResource, technologies, solutions, topics, }: NavbarProps): JSX.Element => { return ( <nav class="navbar is-dark"> <div class="container"> <div class="navbar-brand"> <a class="navbar-item p-0" href="/"> {/*<img src="/assets/jetbrains-simple.svg" alt="JetBrains" width="72" height="72" />*/} <img src="/assets/jetbrains-white.svg" alt="JetBrains" width="168" height="36" class="logo" /> </a> <a class="navbar-item is-size-4 has-text-weight-semibold" href="/"> Guide </a> <a class="navbar-burger" role="button" aria-label="menu"> <span /> <span /> <span /> </a> </div> <div class="navbar-menu has-background-dark"> <div class="navbar-end"> <div class="navbar-item has-dropdown is-hoverable is-fullwidth"> <a class="navbar-link has-text-grey-light is-arrowless is-hidden-touch" href="/channels/" > Topics </a> <div class="navbar-dropdown is-radiusless p-0"> <div class="container has-background-white is-fluid pt-4"> <div class="columns is-multiline"> {featuredResource && ( <ResourceCard columnClassName={ "is-3 is-6 is-3-desktop is-hidden-touch" } compactMode={true} hasShadow={true} resource={featuredResource} /> )} <div class="column is-6 is-3-desktop"> <span class="title is-6">Technologies</span> {technologies && technologies.map((resource: Resource) => ( <a class="navbar-item" href={resource.url}> {resource.title} </a> ))} </div> <div class="column is-6 is-4-desktop"> <span class="title is-6">Solutions</span> {solutions && solutions.map((resource: Resource) => ( <a class="navbar-item" href={resource.url}> {resource.title} </a> ))} </div> <div class="column is-12 is-3-desktop is-hidden-touch"> <span class="title is-6">Hot tags</span> {topics && topics.map((resource: Resource) => ( <a class="navbar-item" href={resource.url}> {resource.title} </a> ))} </div> <div class="column is-12 has-text-right has-background-grey-lighter"> <a class="button is-rounded is-primary is-vcentered" href="/explore/" > Browse more content... </a> </div> </div> </div> </div> </div> <a class="navbar-item has-text-grey-light is-hidden-touch" href="/explore/" > Explore </a> </div> </div> <div class="navbar-end"> <NavbarSearch /> </div> </div> </nav> ); }; export default Navbar;