this repo has no description
at v1.0.5 1.6 kB view raw
1import { WebpackRequireType } from "@moonlight-mod/types"; 2import { pageModules } from ".."; 3 4export default (require: WebpackRequireType) => { 5 const React = require("common_react"); 6 const spacepack = require("spacepack_spacepack").spacepack; 7 8 const Margins = spacepack.findByCode("marginCenterHorz:")[0].exports; 9 10 const { Divider } = spacepack.findByCode(".default.HEADER_BAR")[0].exports 11 .default; 12 const TitleBarClasses = spacepack.findByCode("iconWrapper:", "children:")[0] 13 .exports; 14 const TabBarClasses = spacepack.findByCode("nowPlayingColumn:")[0].exports; 15 16 const pages = pageModules(require); 17 18 return function Moonbase() { 19 const { Text, TabBar } = require("common_components"); 20 21 const [selectedTab, setSelectedTab] = React.useState(Object.keys(pages)[0]); 22 23 return ( 24 <> 25 <div 26 className={`${TitleBarClasses.children} ${Margins.marginBottom20}`} 27 > 28 <Text 29 className={TitleBarClasses.titleWrapper} 30 variant="heading-lg/semibold" 31 tag="h2" 32 > 33 Moonbase 34 </Text> 35 <Divider /> 36 <TabBar 37 selectedItem={selectedTab} 38 onItemSelect={setSelectedTab} 39 type="top-pill" 40 className={TabBarClasses.tabBar} 41 > 42 {Object.entries(pages).map(([id, page]) => ( 43 <TabBar.Item key={id} id={id} className={TabBarClasses.item}> 44 {page.name} 45 </TabBar.Item> 46 ))} 47 </TabBar> 48 </div> 49 50 {React.createElement(pages[selectedTab].element)} 51 </> 52 ); 53 }; 54};