import { Component, linkEvent } from "inferno"; import { PersonView, Site, SiteAggregates } from "lemmy-js-client"; import { i18n } from "../../i18next"; import { mdToHtml } from "../../utils"; import { Badges } from "../common/badges"; import { BannerIconHeader } from "../common/banner-icon-header"; import { Icon } from "../common/icon"; import { PersonListing } from "../person/person-listing"; interface SiteSidebarProps { site: Site; showLocal: boolean; counts?: SiteAggregates; admins?: PersonView[]; } interface SiteSidebarState { collapsed: boolean; } export class SiteSidebar extends Component { state: SiteSidebarState = { collapsed: false, }; constructor(props: any, context: any) { super(props, context); } render() { return (
{this.siteName()}
{!this.state.collapsed && ( <> {this.siteInfo()} )}
); } siteName() { return (
{this.props.site.name}
); } siteInfo() { const site = this.props.site; return (
{site.description &&
{site.description}
} {site.sidebar && this.siteSidebar(site.sidebar)} {this.props.counts && } {this.props.admins && this.admins(this.props.admins)}
); } siteSidebar(sidebar: string) { return (
); } admins(admins: PersonView[]) { return ( ); } handleCollapseSidebar(i: SiteSidebar) { i.setState({ collapsed: !i.state.collapsed }); } }