diff --git a/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx b/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx
index e8943f1dcd9b..f9c0e53cfec3 100644
--- a/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx
+++ b/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx
@@ -200,3 +200,49 @@ export const PanelDisabled: Story = {
showPanel: false,
},
};
+
+export const ReactNodeRenderLabel: Story = {
+ decorators: [
+ (storyFn) => {
+ const renderReactNodeLabel = ({ name }: { name: string }) => {startCase(name)};
+
+ const mockManagerStoreWithReactNodeLabels: any = {
+ state: {
+ index: {
+ someRootId: {
+ type: 'root',
+ id: 'someRootId',
+ name: 'root',
+ renderLabel: renderReactNodeLabel,
+ },
+ someComponentId: {
+ type: 'component',
+ id: 'someComponentId',
+ name: 'component',
+ parent: 'someRootId',
+ renderLabel: renderReactNodeLabel,
+ },
+ someStoryId: {
+ type: 'story',
+ subtype: 'story',
+ id: 'someStoryId',
+ name: 'story',
+ parent: 'someComponentId',
+ renderLabel: renderReactNodeLabel,
+ },
+ },
+ },
+ api: {
+ getCurrentStoryData() {
+ return mockManagerStoreWithReactNodeLabels.state.index.someStoryId;
+ },
+ },
+ };
+ return (
+
+ {storyFn()}
+
+ );
+ },
+ ],
+};
diff --git a/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx b/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx
index 83cc6f4596b2..1c12bc83b039 100644
--- a/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx
+++ b/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx
@@ -49,7 +49,8 @@ const useFullStoryName = () => {
return '';
}
const combinedIndex = combineIndexes(index, refs || {});
- let fullStoryName = currentStory.renderLabel?.(currentStory, api) || currentStory.name;
+ const storyLabel = currentStory.renderLabel?.(currentStory, api);
+ let fullStoryName = typeof storyLabel === 'string' ? storyLabel : currentStory.name;
let node = combinedIndex[currentStory.id];
@@ -61,7 +62,8 @@ const useFullStoryName = () => {
fullStoryName.length < 24
) {
node = combinedIndex[node.parent];
- const parentName = node.renderLabel?.(node, api) || node.name;
+ const parentLabel = node.renderLabel?.(node, api);
+ const parentName = typeof parentLabel === 'string' ? parentLabel : node.name;
fullStoryName = `${parentName}/${fullStoryName}`;
}
return fullStoryName;