Skip to content

Commit 7009e7c

Browse files
committed
fix: Pagebuilder list - Homepage first, then alphabetical by display name
1 parent a645bb4 commit 7009e7c

1 file changed

Lines changed: 18 additions & 7 deletions

File tree

  • packages/evershop/src/modules/pageBuilder/pages/admin/pageBuilderEdit

packages/evershop/src/modules/pageBuilder/pages/admin/pageBuilderEdit/Editor.tsx

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -785,13 +785,24 @@ export default function Editor({
785785
}, [rolloutPlansResult.data]);
786786
const pageRoutes = useMemo(
787787
() =>
788-
allRoutes.filter(
789-
(r: any) =>
790-
r.editableInPageBuilder === true &&
791-
!r.isApi &&
792-
!r.isAdmin &&
793-
typeof r.path === 'string'
794-
),
788+
allRoutes
789+
.filter(
790+
(r: any) =>
791+
r.editableInPageBuilder === true &&
792+
!r.isApi &&
793+
!r.isAdmin &&
794+
typeof r.path === 'string'
795+
)
796+
// Homepage first, then alphabetical by display name. The raw `routes`
797+
// query returns scan/registration order, which reads as random in the
798+
// switcher and Pages tab; a stable, predictable order is friendlier.
799+
// `.filter` already returned a fresh array, so sorting in place is safe.
800+
.sort((a: any, b: any) => {
801+
if (a.id === b.id) return 0;
802+
if (a.id === 'homepage') return -1;
803+
if (b.id === 'homepage') return 1;
804+
return (a.name ?? '').localeCompare(b.name ?? '');
805+
}),
795806
[allRoutes]
796807
);
797808

0 commit comments

Comments
 (0)