Skip to content
This repository has been archived by the owner on Dec 1, 2023. It is now read-only.

Commit

Permalink
Merge pull request #2 from klausklapper/main
Browse files Browse the repository at this point in the history
fix: synchronise resource loading
  • Loading branch information
rehhouari authored Apr 11, 2023
2 parents 1065400 + 2e013a3 commit 9d07ad0
Showing 1 changed file with 29 additions and 26 deletions.
55 changes: 29 additions & 26 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,13 @@ const PineconeRouterMiddleware = {
let views: any[] = !route
? window.PineconeRouter.notfound.view
: route.view
? route.view
? route.view
: ''
if (!views) {
window.dispatchEvent(window.PineconeRouter.loadEnd)
return
}
views.forEach(async (view) => {
Promise.all(views.map(async view => {
let viewPath = ''
if (typeof view == 'string') {
viewPath = view
Expand All @@ -80,30 +80,33 @@ const PineconeRouterMiddleware = {
return
}

await fetch(viewPath)
.then((response) => {
return response.text()
})
.then((response) => {
if (view.selector) {
renderContent(response, view.selector)
} else {
renderContent(response)
}
window.dispatchEvent(window.PineconeRouter.loadEnd)
})
.catch((error) => {
const el = document.querySelector(
window.PineconeRouter.settings.viewSelector ?? '#app'
)
if (el) {
el.dispatchEvent(
new CustomEvent('fetch-error', { detail: error })
)
}
console.error(`Pinecone Router: Fetch Error: ${error}`)
})
})
const response = await fetch(viewPath);
const content = await response.text();
return { selector: view.selector, content: content }

})).then(responses => {
responses.forEach(response => {
if (response === undefined) return;
if (response.selector) {
renderContent(response.content, response.selector)
} else {
renderContent(response.content)
}
})
}
).catch((error) => {
const el = document.querySelector(
window.PineconeRouter.settings.viewSelector ?? '#app'
)
if (el) {
el.dispatchEvent(
new CustomEvent('fetch-error', { detail: error })
)
}
console.error(`Pinecone Router: Fetch Error: ${error}`)
}).finally(() => {
window.dispatchEvent(window.PineconeRouter.loadEnd)
});
},
}

Expand Down

0 comments on commit 9d07ad0

Please sign in to comment.