this repo has no description
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request #179 from moonlight-mod/kasimir/mb-nicer-updates

moonbase: various fixes

authored by notnite.com and committed by

GitHub 8e2147e1 5d5dc84c

+41 -54
+7 -9
packages/core-extensions/src/moonbase/webpackModules/stores.ts
··· 28 28 newVersion: string | null; 29 29 shouldShowNotice: boolean; 30 30 31 - #showOnlyUpdateable = false; 32 - set showOnlyUpdateable(v: boolean) { 33 - this.#showOnlyUpdateable = v; 34 - this.emitChange(); 35 - } 36 - get showOnlyUpdateable() { 37 - return this.#showOnlyUpdateable; 38 - } 39 - 40 31 restartAdvice = RestartAdvice.NotNeeded; 41 32 42 33 extensions: { [id: number]: MoonbaseExtension }; ··· 251 242 252 243 this.config.extensions[ext.id] = val; 253 244 this.modified = this.isModified(); 245 + this.emitChange(); 246 + } 247 + 248 + dismissAllExtensionUpdates() { 249 + for (const id in this.extensions) { 250 + this.extensions[id].hasUpdate = false; 251 + } 254 252 this.emitChange(); 255 253 } 256 254
+27 -31
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/card.tsx
··· 255 255 padding: "0 20px" 256 256 }} 257 257 > 258 - <Flex direction={Flex.Direction.HORIZONTAL}> 259 - <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Info}> 260 - Info 258 + <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Info}> 259 + Info 260 + </TabBar.Item> 261 + 262 + {description != null && ( 263 + <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Description}> 264 + Description 261 265 </TabBar.Item> 266 + )} 262 267 263 - {description != null && ( 264 - <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Description}> 265 - Description 266 - </TabBar.Item> 267 - )} 268 - 269 - {changelog != null && ( 270 - <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Changelog}> 271 - Changelog 272 - </TabBar.Item> 273 - )} 274 - {settings != null && ( 275 - <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Settings}> 276 - Settings 277 - </TabBar.Item> 278 - )} 279 - </Flex> 268 + {changelog != null && ( 269 + <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Changelog}> 270 + Changelog 271 + </TabBar.Item> 272 + )} 273 + {settings != null && ( 274 + <TabBar.Item className={TabBarClasses.tabBarItem} id={ExtensionPage.Settings}> 275 + Settings 276 + </TabBar.Item> 277 + )} 280 278 </TabBar> 281 279 282 - {linkButtons.length > 0 && ( 283 - <Flex 284 - align={Flex.Align.CENTER} 285 - justify={Flex.Justify.END} 286 - direction={Flex.Direction.HORIZONTAL} 287 - grow={1} 288 - className="moonbase-link-buttons" 289 - > 290 - {linkButtons} 291 - </Flex> 292 - )} 280 + <Flex 281 + align={Flex.Align.CENTER} 282 + justify={Flex.Justify.END} 283 + direction={Flex.Direction.HORIZONTAL} 284 + grow={1} 285 + className="moonbase-link-buttons" 286 + > 287 + {linkButtons.length > 0 && linkButtons} 288 + </Flex> 293 289 </Flex> 294 290 )} 295 291
+7 -11
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/index.tsx
··· 17 17 const PanelButton = spacepack.findByCode("Masks.PANEL_BUTTON")[0].exports.Z; 18 18 19 19 export default function ExtensionsPage() { 20 - const { extensions, savedFilter, showOnlyUpdateable } = useStateFromStoresObject([MoonbaseSettingsStore], () => { 20 + const { extensions, savedFilter } = useStateFromStoresObject([MoonbaseSettingsStore], () => { 21 21 return { 22 22 extensions: MoonbaseSettingsStore.extensions, 23 - savedFilter: MoonbaseSettingsStore.getExtensionConfigRaw<number>("moonbase", "filter", defaultFilter), 24 - showOnlyUpdateable: MoonbaseSettingsStore.showOnlyUpdateable 23 + savedFilter: MoonbaseSettingsStore.getExtensionConfigRaw<number>("moonbase", "filter", defaultFilter) 25 24 }; 26 25 }); 27 26 ··· 78 77 79 78 // Prioritize extensions with updates 80 79 const filteredWithUpdates = filtered.filter((ext) => ext!.hasUpdate); 81 - const filterUpdates = showOnlyUpdateable && filteredWithUpdates.length > 0; 82 - const filteredWithoutUpdates = filterUpdates ? [] : filtered.filter((ext) => !ext!.hasUpdate); 80 + const filteredWithoutUpdates = filtered.filter((ext) => !ext!.hasUpdate); 83 81 84 82 return ( 85 83 <> ··· 98 96 /> 99 97 <FilterBar filter={filter} setFilter={setFilter} selectedTags={selectedTags} setSelectedTags={setSelectedTags} /> 100 98 101 - {filterUpdates && ( 99 + {filteredWithUpdates.length > 0 && ( 102 100 <HelpMessage 103 101 icon={CircleInformationIcon} 104 - text="Only displaying updates" 102 + text="Extension updates are available" 105 103 className="moonbase-extension-update-section" 106 104 > 107 105 <div className="moonbase-help-message-buttons"> 108 106 <Button 109 - look={Button.Looks.OUTLINED} 110 - color={Button.Colors.PRIMARY} 107 + color={Button.Colors.BRAND} 111 108 size={Button.Sizes.TINY} 112 109 disabled={hitUpdateAll} 113 110 onClick={() => { 114 111 setHitUpdateAll(true); 115 112 MoonbaseSettingsStore.updateAllExtensions(); 116 - MoonbaseSettingsStore.showOnlyUpdateable = false; 117 113 }} 118 114 > 119 115 Update all ··· 121 117 <PanelButton 122 118 icon={XSmallIcon} 123 119 onClick={() => { 124 - MoonbaseSettingsStore.showOnlyUpdateable = false; 120 + MoonbaseSettingsStore.dismissAllExtensionUpdates(); 125 121 }} 126 122 /> 127 123 </div>
-2
packages/core-extensions/src/moonbase/webpackModules/ui/index.tsx
··· 8 8 import ConfigPage from "./config"; 9 9 import AboutPage from "./about"; 10 10 import Update from "./update"; 11 - import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores"; 12 11 import RestartAdviceMessage from "./RestartAdvice"; 13 12 14 13 const { Divider } = spacepack.findByCode(".forumOrHome]:")[0].exports.Z; ··· 52 51 () => () => { 53 52 // Normally there's an onSettingsClose prop you can set but we don't expose it and I don't care enough to add support for it right now 54 53 clearSubsection("moonbase"); 55 - MoonbaseSettingsStore.showOnlyUpdateable = false; 56 54 }, 57 55 [] 58 56 );
-1
packages/core-extensions/src/moonbase/webpackModules/updates.tsx
··· 63 63 if (MoonbaseSettingsStore.getExtensionConfigRaw<boolean>("moonbase", "sections", false)) { 64 64 open("moonbase-extensions"); 65 65 } else { 66 - MoonbaseSettingsStore.showOnlyUpdateable = true; 67 66 open("moonbase", 0); 68 67 } 69 68 return true;