your personal website on atproto - mirror
blento.app
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' };