mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-19 15:06:20 +00:00
feat(navigator): wrap sub-views in WidgetErrorBoundary
Each of the 5 Navigator sub-views (RoomCreator, DoorState, RoomInfo, RoomLink, RoomSettings) is now wrapped in its own WidgetErrorBoundary so a crash inside one no longer takes down the others. Matches the pattern already applied to the 13 room widgets + 20 furniture widgets. Zero behavioural change in the happy path. yarn typecheck + yarn test --run + yarn lint:hooks all clean (only the 3 pre-existing floorplan failures remain, unrelated to Navigator).
This commit is contained in:
@@ -7,7 +7,7 @@ import createRoomImg from '../../assets/images/navigator/create_room.png';
|
||||
import randomRoomImg from '../../assets/images/navigator/random_room.png';
|
||||
import promoteRoomImg from '../../assets/images/navigator/promote_room.png';
|
||||
import { CreateLinkEvent, LocalizeText, SendMessageComposer, TryVisitRoom } from '../../api';
|
||||
import { Flex, Text } from '../../common';
|
||||
import { Flex, Text, WidgetErrorBoundary } from '../../common';
|
||||
import { useNavigatorActions, useNavigatorData, useNavigatorUiState, useNavigatorUiStore, useNitroEvent } from '../../hooks';
|
||||
import { NavigatorDoorStateView } from './views/NavigatorDoorStateView';
|
||||
import { NavigatorRoomCreatorView } from './views/NavigatorRoomCreatorView';
|
||||
@@ -197,13 +197,26 @@ export const NavigatorView: FC<{}> = props =>
|
||||
</Flex>
|
||||
</div>
|
||||
</div> }
|
||||
{ isCreatorOpen && <NavigatorRoomCreatorView /> }
|
||||
{ isCreatorOpen &&
|
||||
<WidgetErrorBoundary name="NavigatorRoomCreator">
|
||||
<NavigatorRoomCreatorView />
|
||||
</WidgetErrorBoundary> }
|
||||
</NitroCard.Content>
|
||||
</NitroCard> }
|
||||
<NavigatorDoorStateView />
|
||||
{ isRoomInfoOpen && <NavigatorRoomInfoView onCloseClick={ () => useNavigatorUiStore.getState().setRoomInfoOpen(false) } /> }
|
||||
{ isRoomLinkOpen && <NavigatorRoomLinkView onCloseClick={ () => useNavigatorUiStore.getState().setRoomLinkOpen(false) } /> }
|
||||
<NavigatorRoomSettingsView />
|
||||
<WidgetErrorBoundary name="NavigatorDoorState">
|
||||
<NavigatorDoorStateView />
|
||||
</WidgetErrorBoundary>
|
||||
{ isRoomInfoOpen &&
|
||||
<WidgetErrorBoundary name="NavigatorRoomInfo">
|
||||
<NavigatorRoomInfoView onCloseClick={ () => useNavigatorUiStore.getState().setRoomInfoOpen(false) } />
|
||||
</WidgetErrorBoundary> }
|
||||
{ isRoomLinkOpen &&
|
||||
<WidgetErrorBoundary name="NavigatorRoomLink">
|
||||
<NavigatorRoomLinkView onCloseClick={ () => useNavigatorUiStore.getState().setRoomLinkOpen(false) } />
|
||||
</WidgetErrorBoundary> }
|
||||
<WidgetErrorBoundary name="NavigatorRoomSettings">
|
||||
<NavigatorRoomSettingsView />
|
||||
</WidgetErrorBoundary>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user