diff --git a/src/components/AddressBar.astro b/src/components/AddressBar.astro index 6b1e0fa..d4b8887 100644 --- a/src/components/AddressBar.astro +++ b/src/components/AddressBar.astro @@ -9,7 +9,7 @@ const placeholder = 'Type the URL of an article here';
- diff --git a/src/components/Library.astro b/src/components/Library.astro index a2a414e..ceb1fad 100644 --- a/src/components/Library.astro +++ b/src/components/Library.astro @@ -15,13 +15,12 @@ const {postDivSelector, skipSave = false} = Astro.props; diff --git a/src/utils/library.ts b/src/utils/library.ts index 6154d3c..57cf3ed 100644 --- a/src/utils/library.ts +++ b/src/utils/library.ts @@ -64,3 +64,24 @@ export function getPostCard(html: HTMLHtmlElement) { `; return postCard; } +export function renderPost(responseText, url, postDivSelector: string, preventPushState = false) { + const postDiv = document.querySelector(postDivSelector); + const html = document.createElement('html'); + html.innerHTML = responseText; + const newPost = html.querySelector('body')?.querySelector('#post'); + if (postDiv && newPost?.innerHTML) { + postDiv.innerHTML = newPost.innerHTML + const homeBtn = document.getElementById('app-home') as HTMLButtonElement; + homeBtn.removeAttribute('disabled'); + const appUrl = document.getElementById('app-url') as HTMLInputElement; + const cozyUrl = html.querySelector('meta[property="cozy:url"]')?.getAttribute('content'); + if(cozyUrl !== '/') { + appUrl.value = cozyUrl || ''; + } + if(!preventPushState) { + window.history.pushState({url}, '', url); + } + const submitBtn = document.getElementById('submit') as HTMLButtonElement; + submitBtn.removeAttribute('disabled'); + } + } \ No newline at end of file