@@ -25,11 +25,12 @@ export const main = defineStore("main", () => {
2525 warnings = ref < string [ ] > ( [ ] ) ,
2626 country = computed ( ( ) => publicationcode . value ?. split ( "/" ) [ 0 ] ) ,
2727 magazine = computed ( ( ) => publicationcode . value ?. split ( "/" ) [ 1 ] ) ,
28- publicationIssuecodes = computed (
28+ publicationIssues = computed (
2929 ( ) =>
3030 ( publicationcode . value &&
31- webStores . coa ( ) . issuecodesByPublicationcode [ publicationcode . value ] ) ||
32- [ ] ,
31+ publicationcode . value in webStores . coa ( ) . issuesByPublicationcode &&
32+ webStores . coa ( ) . issuesByPublicationcode [ publicationcode . value ] ) ||
33+ undefined ,
3334 ) ,
3435 publicationElementsForGallery = computed (
3536 ( ) =>
@@ -91,26 +92,32 @@ export const main = defineStore("main", () => {
9192 lastIssuecode ?: string ,
9293 otherIssuecodes ?: string [ ] ,
9394 ) => {
94- const firstIssueIndex = publicationIssuecodes . value . findIndex (
95- ( issuecode ) => issuecode === firstIssuecode ,
95+ if ( ! publicationIssues . value ) {
96+ console . error ( "Publication issues not loaded" ) ;
97+ return ;
98+ }
99+ const firstIssueIndex = publicationIssues . value . findIndex (
100+ ( { issuecode } ) => issuecode === firstIssuecode ,
96101 ) ;
97102 if ( lastIssuecode === undefined ) {
98103 issuecodes . value = [ firstIssuecode , ...( otherIssuecodes || [ ] ) ] ;
99104 } else {
100105 isRange . value = true ;
101- let lastIssueIndex = publicationIssuecodes . value . findIndex (
102- ( issuecode ) => issuecode === lastIssuecode ,
106+ let lastIssueIndex = publicationIssues . value . findIndex (
107+ ( { issuecode } ) => issuecode === lastIssuecode ,
103108 ) ;
104109 if ( lastIssueIndex === - 1 ) {
105- lastIssueIndex = publicationIssuecodes . value . length - 1 ;
110+ lastIssueIndex = publicationIssues . value . length - 1 ;
106111 console . warn (
107- `Issue ${ lastIssuecode } doesn't exist, falling back to ${ publicationIssuecodes . value [ lastIssueIndex ] } ` ,
112+ `Issue ${ lastIssuecode } doesn't exist, falling back to ${ publicationIssues . value [ lastIssueIndex ] } ` ,
108113 ) ;
109114 }
110115
111- issuecodes . value = publicationIssuecodes . value . filter (
112- ( _ , index ) => index >= firstIssueIndex && index <= lastIssueIndex ,
113- ) ;
116+ issuecodes . value = publicationIssues . value
117+ . filter (
118+ ( _ , index ) => index >= firstIssueIndex && index <= lastIssueIndex ,
119+ )
120+ . map ( ( { issuecode } ) => issuecode ) ;
114121 }
115122 } ,
116123 loadItems = async ( { itemType } : { itemType : "elements" | "photos" } ) => {
@@ -128,9 +135,7 @@ export const main = defineStore("main", () => {
128135 }
129136 } ,
130137 loadPublicationIssues = async ( ) =>
131- webStores
132- . coa ( )
133- . fetchIssuecodesByPublicationcode ( [ publicationcode . value ! ] ) ,
138+ webStores . coa ( ) . fetchIssuesByPublicationcode ( publicationcode . value ! ) ,
134139 getEdgePublicationStates = ( issuecodes : string [ ] ) =>
135140 Object . keys ( edgeCatalog ( ) . publishedEdges )
136141 . filter ( ( issuecode ) => issuecodes . includes ( issuecode ) )
@@ -141,42 +146,47 @@ export const main = defineStore("main", () => {
141146 ) ;
142147
143148 const firstIssueIndex = computed ( ( ) =>
144- publicationIssuecodes . value . findIndex (
145- ( issue ) => issue === issuecodes . value [ 0 ] ,
149+ publicationIssues . value ? .findIndex (
150+ ( { issuecode } ) => issuecode === issuecodes . value [ 0 ] ,
146151 ) ,
147152 ) ;
148153 const lastIssueIndex = computed ( ( ) =>
149- publicationIssuecodes . value . findIndex (
150- ( issue ) => issue === issuecodes . value [ issuecodes . value . length - 1 ] ,
154+ publicationIssues . value ?. findIndex (
155+ ( { issuecode } ) =>
156+ issuecode === issuecodes . value [ issuecodes . value . length - 1 ] ,
151157 ) ,
152158 ) ;
153159
154160 const edgeIssuecodesBefore = computed ( ( ) => {
155- if ( ! edgeCatalog ( ) . isCatalogLoaded ) {
161+ if ( ! edgeCatalog ( ) . isCatalogLoaded || ! publicationIssues . value ) {
156162 return [ ] ;
157163 }
158- const issuesBefore = publicationIssuecodes . value . filter (
164+ const issuesBefore = publicationIssues . value . filter (
159165 ( _ , index ) =>
160166 firstIssueIndex . value !== - 1 &&
161- index >= firstIssueIndex . value - 10 &&
162- index < firstIssueIndex . value ,
167+ index >= firstIssueIndex . value ! - 10 &&
168+ index < firstIssueIndex . value ! ,
163169 ) ;
164170
165- return getEdgePublicationStates ( issuesBefore ) ;
171+ return getEdgePublicationStates (
172+ issuesBefore . map ( ( { issuecode } ) => issuecode ) ,
173+ ) ;
166174 } ) ;
167175
168176 const edgeIssuecodesAfter = computed ( ( ) => {
169- if ( ! edgeCatalog ( ) . isCatalogLoaded ) {
177+ if ( ! edgeCatalog ( ) . isCatalogLoaded || ! publicationIssues . value ) {
170178 return [ ] ;
171179 }
172- const issuesAfter = publicationIssuecodes . value . filter (
180+ const issuesAfter = publicationIssues . value . filter (
173181 ( _ , index ) =>
174182 lastIssueIndex . value !== - 1 &&
175- index > lastIssueIndex . value &&
176- index <= lastIssueIndex . value + 10 ,
183+ index > lastIssueIndex . value ! &&
184+ index <= lastIssueIndex . value ! + 10 ,
177185 ) ;
178186
179- return getEdgePublicationStates ( issuesAfter ) ;
187+ return getEdgePublicationStates (
188+ issuesAfter . map ( ( { issuecode } ) => issuecode ) ,
189+ ) ;
180190 } ) ;
181191 return {
182192 publicationcode,
@@ -189,7 +199,7 @@ export const main = defineStore("main", () => {
189199 publicationElements,
190200 publicationPhotos,
191201 warnings,
192- publicationIssuecodes ,
202+ publicationIssues ,
193203 publicationElementsForGallery,
194204 publicationPhotosForGallery,
195205 addContributor,
0 commit comments