this repo has no description

moonbase: Error boundaries on extension cards

Changed files
+17 -4
packages
core-extensions
src
moonbase
webpackModules
+6 -1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/card.tsx
··· 28 28 import MarkupClasses from "@moonlight-mod/wp/discord/modules/messages/web/Markup.css"; 29 29 import BuildOverrideClasses from "@moonlight-mod/wp/discord/modules/build_overrides/web/BuildOverride.css"; 30 30 import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores"; 31 + import ErrorBoundary from "@moonlight-mod/wp/common_ErrorBoundary"; 31 32 import ExtensionInfo from "./info"; 32 33 import Settings from "./settings"; 33 34 import { doGenericExtensionPopup, doMissingExtensionPopup } from "./popup"; ··· 322 323 })} 323 324 </Text> 324 325 )} 325 - {tab === ExtensionPage.Settings && <Settings ext={ext} />} 326 + {tab === ExtensionPage.Settings && ( 327 + <ErrorBoundary> 328 + <Settings ext={ext} /> 329 + </ErrorBoundary> 330 + )} 326 331 </Flex> 327 332 </div> 328 333 </Card>
+7 -2
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/index.tsx
··· 15 15 import PanelButton from "@moonlight-mod/wp/discord/components/common/PanelButton"; 16 16 17 17 import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores"; 18 + import ErrorBoundary from "@moonlight-mod/wp/common_ErrorBoundary"; 18 19 import { ExtensionCompat } from "@moonlight-mod/core/extension/loader"; 19 20 import HelpMessage from "../HelpMessage"; 20 21 ··· 144 145 )} 145 146 146 147 {filteredWithUpdates.map((ext) => ( 147 - <ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} /> 148 + <ErrorBoundary> 149 + <ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} /> 150 + </ErrorBoundary> 148 151 ))} 149 152 {filteredWithUpdates.length > 0 && filteredWithoutUpdates.length > 0 && ( 150 153 <FormDivider className="moonbase-update-divider" /> 151 154 )} 152 155 {filteredWithoutUpdates.map((ext) => ( 153 - <ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} /> 156 + <ErrorBoundary> 157 + <ExtensionCard uniqueId={ext.uniqueId} key={ext.uniqueId} selectTag={selectTag} /> 158 + </ErrorBoundary> 154 159 ))} 155 160 </> 156 161 );
+4 -1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/settings.tsx
··· 33 33 import Flex from "@moonlight-mod/wp/discord/uikit/Flex"; 34 34 import MarkupUtils from "@moonlight-mod/wp/discord/modules/markup/MarkupUtils"; 35 35 import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores"; 36 + import ErrorBoundary from "@moonlight-mod/wp/common_ErrorBoundary"; 36 37 37 38 let GuildSettingsRoleEditClasses: any; 38 39 spacepack ··· 377 378 } 378 379 379 380 return ( 380 - <Component value={value} setValue={(value) => MoonbaseSettingsStore.setExtensionConfig(ext.id, name, value)} /> 381 + <ErrorBoundary> 382 + <Component value={value} setValue={(value) => MoonbaseSettingsStore.setExtensionConfig(ext.id, name, value)} /> 383 + </ErrorBoundary> 381 384 ); 382 385 } 383 386