/* stand alone sidebar */ import React, { useState } from 'react'; import { Sidebar, Tab } from '../map/Sidebar'; //testing to separate a component for tab content import TabHomeContent from '../map/TabHomeContent'; export default { title: 'Sidebar/Sidebar standalone', // component: SidebarReactCore, }; /* SidebarOnly() simply implemented a stand-alone sidebar: manually assigned tabs * each tab hosts a sub-component for contents */ export const SidebarBasic = () => { //Sidebar state managements const [sidebarCollapsed, setSidebarCollapsed] = useState(true); const [tabSelected, setTabSelected] = useState(''); //could be used to set default active tab, e.g., 'Home', but leave blank //this is X button/icon behavior considering sidebar resize const sidebarOnClose = () => { setSidebarCollapsed(true); //add this to fix a bug setTabSelected(''); //this works! let el: Element | null = document.getElementsByClassName( 'leaflet-sidebar-content' )[0] ? document.getElementsByClassName('leaflet-sidebar-content')[0] : null; // let el: any = document.getElementById("leaflet-sidebar-content")? document.getElementById("leaflet-sidebar-content"): ''; let tabStyle = el?.getAttributeNode('style'); if (tabStyle) { el?.removeAttributeNode(tabStyle); } }; //this is sidebar opening considering sidebar resize const sidebarOnOpen = (id: string) => { //removing style for re-resizable here may help for 1st click bug - yes let el: Element | null = document.getElementsByClassName( 'leaflet-sidebar-content' )[0] ? document.getElementsByClassName('leaflet-sidebar-content')[0] : null; // let el: any = document.getElementById("leaflet-sidebar-content")? document.getElementById("leaflet-sidebar-content"): ''; let tabStyle = el?.getAttributeNode('style'); if (tabStyle) { el?.removeAttributeNode(tabStyle); } //add a function to close drawer by clicking the same icon if (tabSelected != id) { setSidebarCollapsed(false); setTabSelected(id); } else { setSidebarCollapsed(true); //clear tabSelected so that the tab can be reopen setTabSelected(''); } }; let testText = 'this is Home'; return ( //add fragment <> {/* a test to separate tab contents into a component, TabHomeContent */} {/* testing disabled - greyish icon*/}

Change settings

{/* add disabled tap - no header & icon, use both diabled and divider */}

gap1

Detailed table???

Download data

{/* add disabled tap - no header & icon, use both diabled and divider */}

gap2

Donut Plot

{/* no box plot icon exists in fontawesome */}

Box Plot

This is for chart

{/* placing bottom side using anchor="bottom" attribute */}

Help/Tutorial

); };