your personal website on atproto - mirror
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

small fixes

Florian 7962b604 af81a55f

+20 -14
+1 -1
src/lib/cards/BaseCard/BaseCard.svelte
··· 37 37 bind:this={ref} 38 38 draggable={isEditing} 39 39 class={[ 40 - 'card group focus-within:outline-accent-500 @container/card absolute z-0 rounded-2xl outline-offset-2 transition-transform duration-200 focus-within:outline-2', 40 + 'card group focus-within:outline-accent-500 @container/card absolute z-0 rounded-2xl outline-offset-2 transition-all duration-200 focus-within:outline-2', 41 41 color ? (colors[color] ?? colors.accent) : colors.base, 42 42 color !== 'accent' && item.color !== 'base' && item.color !== 'transparent' ? color : '' 43 43 ]}
+1 -1
src/lib/cards/BlueskyMediaCard/BlueskyMediaCard.svelte
··· 27 27 item.cardData.href ? 'group-hover:scale-102' : '' 28 28 ]} 29 29 src={item.cardData.image.fullsize} 30 - alt="" 30 + alt={item.cardData.image.alt} 31 31 /> 32 32 {:else if item.cardData.video} 33 33 <Video video={item.cardData.video} />
+15 -10
src/lib/cards/BlueskyMediaCard/CreateBlueskyMediaCardModal.svelte
··· 12 12 13 13 let mediaList: { fullsize: string; isVideo?: boolean; playlist?: string }[] = $state([]); 14 14 15 + let isLoading = $state(true); 16 + 15 17 onMount(async () => { 16 18 const agent = new AtpBaseClient({ service: 'https://api.bsky.app' }); 17 19 const authorFeed = await agent.app.bsky.feed.getAuthorFeed({ ··· 19 21 filter: 'posts_with_media', 20 22 limit: 100 21 23 }); 22 - 23 - console.log(authorFeed); 24 24 25 25 for (let post of authorFeed.data.feed) { 26 26 for (let image of post.post.embed?.images ?? []) { ··· 34 34 }); 35 35 } 36 36 } 37 + 38 + isLoading = false; 37 39 }); 38 40 39 41 let selected = $state(); ··· 52 54 <Subheading>Select an image or video</Subheading> 53 55 54 56 <div 55 - class="bg-base-100 dark:bg-base-950 grid h-[50dvh] grow grid-cols-3 gap-4 overflow-y-scroll rounded-2xl p-4" 57 + class="bg-base-100 dark:bg-base-950 grid h-[50dvh] grid-cols-2 lg:grid-cols-3 gap-4 overflow-y-scroll rounded-2xl p-4" 56 58 > 57 59 {#each mediaList as media} 58 60 <button ··· 71 73 src={media.fullsize ?? media.thumbnail} 72 74 alt="" 73 75 class={[ 74 - 'h-24 w-full rounded-xl object-cover', 76 + 'h-32 w-full rounded-xl object-cover', 75 77 selected === media 76 78 ? 'outline-accent-500 opacity-100 outline-2 -outline-offset-2' 77 79 : 'opacity-80' ··· 83 85 xmlns="http://www.w3.org/2000/svg" 84 86 viewBox="0 0 24 24" 85 87 fill="currentColor" 86 - class="text-accent-500 size-6" 88 + class="size-6 text-accent-500" 87 89 > 88 90 <path 89 - fill-rule="evenodd" 90 - d="M4.5 5.653c0-1.427 1.529-2.33 2.779-1.643l11.54 6.347c1.295.712 1.295 2.573 0 3.286L7.28 19.99c-1.25.687-2.779-.217-2.779-1.643V5.653Z" 91 - clip-rule="evenodd" 91 + d="M4.5 4.5a3 3 0 0 0-3 3v9a3 3 0 0 0 3 3h8.25a3 3 0 0 0 3-3v-9a3 3 0 0 0-3-3H4.5ZM19.94 18.75l-2.69-2.69V7.94l2.69-2.69c.944-.945 2.56-.276 2.56 1.06v11.38c0 1.336-1.616 2.005-2.56 1.06Z" 92 92 /> 93 93 </svg> 94 94 </div> 95 95 {/if} 96 96 </button> 97 97 {/each} 98 - {#if mediaList.length === 0} 99 - <span class="col-span-3 p-4 text-lg italic">Loading your media...</span>{/if} 98 + {#if isLoading} 99 + <span class="col-span-full p-4 text-lg italic">Loading your media...</span> 100 + {:else if mediaList.length === 0} 101 + <span class="col-span-full p-4 text-lg italic" 102 + >No media found, upload an image or video to bluesky to see it here.</span 103 + > 104 + {/if} 100 105 </div> 101 106 102 107 <Label class="mt-4">Link (optional):</Label>
+1 -1
src/lib/cards/LinkCard/EditingLinkCard.svelte
··· 29 29 </div> 30 30 </div> 31 31 32 - {#if ((isMobile() && item.mobileH >= 4) || (!isMobile() && item.h >= 2)) && item.cardData.image} 32 + {#if ((isMobile() && item.mobileH >= 8) || (!isMobile() && item.h >= 4)) && item.cardData.image} 33 33 <img class=" mb-2 max-h-32 w-full rounded-xl object-cover" src={item.cardData.image} alt="" /> 34 34 {/if} 35 35 </div>
+1 -1
src/lib/cards/SectionCard/index.ts
··· 20 20 card.mobileW = COLUMNS; 21 21 }, 22 22 23 - sidebarButtonText: 'section', 23 + sidebarButtonText: 'Section Headline', 24 24 defaultColor: 'transparent', 25 25 maxH: 1 26 26 } as CardDefinition & { type: 'section' };
+1
todo.md
··· 31 31 - popfeed.social 32 32 - smoke signal 33 33 - statusphere.xyz 34 + - goals.garden 34 35 35 36 - [x] add some caching to user data 36 37