your personal website on atproto - mirror blento.app
at map 40 lines 897 B view raw
1import { uploadBlob } from '$lib/atproto'; 2import type { CardDefinition } from '../types'; 3import ImageCard from './ImageCard.svelte'; 4import ImageCardSettings from './ImageCardSettings.svelte'; 5 6export const ImageCardDefinition = { 7 type: 'image', 8 contentComponent: ImageCard, 9 createNew: (card) => { 10 card.cardType = 'image'; 11 card.cardData = { 12 image: '', 13 alt: '', 14 href: '' 15 }; 16 }, 17 upload: async (item) => { 18 if (item.cardData.blob) { 19 item.cardData.image = await uploadBlob({ blob: item.cardData.blob }); 20 21 delete item.cardData.blob; 22 } 23 24 if (item.cardData.objectUrl) { 25 URL.revokeObjectURL(item.cardData.objectUrl); 26 27 delete item.cardData.objectUrl; 28 } 29 30 return item; 31 }, 32 settingsComponent: ImageCardSettings, 33 34 canChange: (item) => Boolean(item.cardData.image), 35 36 change: (item) => { 37 return item; 38 }, 39 name: 'Image Card' 40} as CardDefinition & { type: 'image' };