mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-20 15:36:18 +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 randomRoomImg from '../../assets/images/navigator/random_room.png';
|
||||||
import promoteRoomImg from '../../assets/images/navigator/promote_room.png';
|
import promoteRoomImg from '../../assets/images/navigator/promote_room.png';
|
||||||
import { CreateLinkEvent, LocalizeText, SendMessageComposer, TryVisitRoom } from '../../api';
|
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 { useNavigatorActions, useNavigatorData, useNavigatorUiState, useNavigatorUiStore, useNitroEvent } from '../../hooks';
|
||||||
import { NavigatorDoorStateView } from './views/NavigatorDoorStateView';
|
import { NavigatorDoorStateView } from './views/NavigatorDoorStateView';
|
||||||
import { NavigatorRoomCreatorView } from './views/NavigatorRoomCreatorView';
|
import { NavigatorRoomCreatorView } from './views/NavigatorRoomCreatorView';
|
||||||
@@ -197,13 +197,26 @@ export const NavigatorView: FC<{}> = props =>
|
|||||||
</Flex>
|
</Flex>
|
||||||
</div>
|
</div>
|
||||||
</div> }
|
</div> }
|
||||||
{ isCreatorOpen && <NavigatorRoomCreatorView /> }
|
{ isCreatorOpen &&
|
||||||
|
<WidgetErrorBoundary name="NavigatorRoomCreator">
|
||||||
|
<NavigatorRoomCreatorView />
|
||||||
|
</WidgetErrorBoundary> }
|
||||||
</NitroCard.Content>
|
</NitroCard.Content>
|
||||||
</NitroCard> }
|
</NitroCard> }
|
||||||
<NavigatorDoorStateView />
|
<WidgetErrorBoundary name="NavigatorDoorState">
|
||||||
{ isRoomInfoOpen && <NavigatorRoomInfoView onCloseClick={ () => useNavigatorUiStore.getState().setRoomInfoOpen(false) } /> }
|
<NavigatorDoorStateView />
|
||||||
{ isRoomLinkOpen && <NavigatorRoomLinkView onCloseClick={ () => useNavigatorUiStore.getState().setRoomLinkOpen(false) } /> }
|
</WidgetErrorBoundary>
|
||||||
<NavigatorRoomSettingsView />
|
{ 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