@@ -3,8 +3,6 @@ import CheckPermissions from "../check-permissions/checkPermissions.js"
33import { onProjectReady } from "../../utilities/projectReady.js"
44import { CleanupRegistry } from '../../utilities/CleanupRegistry.js'
55
6- const eventDispatcher = TPEN . eventDispatcher
7-
86/**
97 * PageSelector - Dropdown for selecting pages within a project.
108 * Provides navigation between manuscript pages.
@@ -64,14 +62,19 @@ export default class PageSelector extends HTMLElement {
6462 #buildPagesList( ) {
6563 this . #pages = [ ]
6664 const layers = TPEN . activeProject ?. layers || [ ]
65+ const seenIds = new Set ( )
6766
6867 layers . forEach ( layer => {
6968 ( layer . pages || [ ] ) . forEach ( page => {
70- this . #pages. push ( {
71- id : page . id . split ( '/' ) . pop ( ) ,
72- fullId : page . id ,
73- label : this . #getLabel( page )
74- } )
69+ const id = page . id . split ( '/' ) . pop ( )
70+ if ( ! seenIds . has ( id ) ) {
71+ seenIds . add ( id )
72+ this . #pages. push ( {
73+ id : id ,
74+ fullId : page . id ,
75+ label : this . #getLabel( page )
76+ } )
77+ }
7578 } )
7679 } )
7780
@@ -145,7 +148,7 @@ export default class PageSelector extends HTMLElement {
145148 const selectedPage = this . #pages. find ( p => p . id === selectedPageId )
146149
147150 // Dispatch event for interested components
148- eventDispatcher . dispatch ( 'tpen-page-selected' , {
151+ TPEN . eventDispatcher . dispatch ( 'tpen-page-selected' , {
149152 pageId : selectedPageId ,
150153 pageIndex : this . #pages. indexOf ( selectedPage ) ,
151154 page : selectedPage
0 commit comments