Thread viewer for Bluesky

fixed some svelte warnings

+10 -9
+2 -1
src/components/embeds/GIFPlayer.svelte
··· 1 1 <script lang="ts"> 2 - let { gifURL, staticURL }: { gifURL: string, staticURL: string } = $props(); 2 + let { gifURL, staticURL, alt }: { gifURL: string, staticURL: string, alt: string | undefined } = $props(); 3 3 4 4 let loaded = $state(false); 5 5 let paused = $state(false); ··· 26 26 <div class="gif"> 27 27 <img src={paused ? staticURL : gifURL} 28 28 class={paused ? 'static' : ''} 29 + alt={alt ? `Gif: ${alt}` : `Gif animation`} 29 30 {onload} 30 31 {onclick} 31 32 style:opacity={loaded ? 1 : 0}
+1 -1
src/components/embeds/LinkComponent.svelte
··· 29 29 </script> 30 30 31 31 {#if showingGIF} 32 - <GIFPlayer gifURL={embed.url} staticURL={thumbnailURL()} /> 32 + <GIFPlayer gifURL={embed.url} staticURL={thumbnailURL()} alt={embed.title} /> 33 33 {:else} 34 34 {#if isValidURL(embed.url)} 35 35 <a class="link-card" href={embed.url} target="_blank" {onclick}>
+2 -2
src/components/posts/PostBody.svelte
··· 7 7 let { post }: { post: Post } = getContext('post'); 8 8 let { highlightedMatches = undefined }: { highlightedMatches?: string[] } = $props(); 9 9 10 - let bodyElement: HTMLElement; 10 + let bodyElement: HTMLElement | undefined = $state(); 11 11 12 12 function highlightSearchResults(terms: string[]) { 13 13 let regexp = new RegExp(`\\b(${terms.join('|')})\\b`, 'gi'); 14 - let walker = document.createTreeWalker(bodyElement, NodeFilter.SHOW_TEXT); 14 + let walker = document.createTreeWalker(bodyElement!, NodeFilter.SHOW_TEXT); 15 15 let ranges: Range[] = []; 16 16 17 17 while (walker.nextNode()) {
+1 -1
src/components/posts/PostHeader.svelte
··· 7 7 let { post, context }: { post: Post, context: PostContext } = getContext('post'); 8 8 let presenter = new PostPresenter(post, context); 9 9 10 - let avatar: HTMLImageElement; 10 + let avatar: HTMLImageElement | undefined = $state(); 11 11 12 12 $effect(() => { 13 13 if (avatar) {
+4 -4
src/pages/ThreadPage.svelte
··· 12 12 let post: AnyPost | undefined = $state(); 13 13 let loadingFailed = $state(false); 14 14 15 - let rootComponent: PostComponent; 15 + let rootComponent: PostComponent | undefined = $state(); 16 16 let response: Promise<json>; 17 17 18 18 if ('url' in props) { ··· 34 34 window.root = root; 35 35 window.subtreeRoot = root; 36 36 37 + post = root; 38 + 37 39 if (root instanceof Post) { 38 40 root.data.quoteCount = undefined; 39 41 40 42 blueAPI.getQuoteCount(root.uri).then(count => { 41 - rootComponent.setQuoteCount(count); 43 + rootComponent?.setQuoteCount(count); 42 44 }).catch(error => { 43 45 console.warn("Couldn't load quote count: " + error); 44 46 }); 45 47 } 46 - 47 - post = root; 48 48 }).catch((error) => { 49 49 showError(error); 50 50 loadingFailed = true;