your personal website on atproto - mirror blento.app
at update-docs 46 lines 1.9 kB view raw
1import type { CardDefinition } from '../../types'; 2import CreateKickstarterCardModal from './CreateKickstarterCardModal.svelte'; 3import KickstarterCard from './KickstarterCard.svelte'; 4 5const cardType = 'kickstarter'; 6 7export const KickstarterCardDefinition = { 8 type: cardType, 9 contentComponent: KickstarterCard, 10 creationModalComponent: CreateKickstarterCardModal, 11 createNew: (item) => { 12 item.cardType = cardType; 13 item.cardData = { widgetType: 'card' }; 14 item.w = 4; 15 item.h = 4; 16 item.mobileW = 8; 17 item.mobileH = 8; 18 }, 19 20 onUrlHandler: (url, item) => { 21 const match = url.match(/kickstarter\.com\/projects\/([^/]+\/[^/?#]+)/i); 22 if (!match) return null; 23 24 item.cardData.src = `https://www.kickstarter.com/projects/${match[1]}/widget/card.html?v=2`; 25 item.cardData.widgetType = 'card'; 26 item.w = 4; 27 item.h = 4; 28 item.mobileW = 8; 29 item.mobileH = 8; 30 31 return item; 32 }, 33 34 defaultColor: 'transparent', 35 allowSetColor: false, 36 37 urlHandlerPriority: 10, 38 39 name: 'Kickstarter', 40 keywords: ['kickstarter', 'crowdfunding', 'campaign', 'funding'], 41 groups: ['Social'], 42 icon: `<svg class="size-4" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> 43<path fill-rule="evenodd" clip-rule="evenodd" d="M20.9257 17.2442C20.9257 16.3321 20.6731 15.4527 20.1362 14.6709L18.1153 11.7719L20.1362 8.87291C20.6731 8.12373 20.9257 7.21169 20.9257 6.29964C20.9257 3.88924 18.9994 2.03257 16.7258 2.03257C15.3996 2.03257 14.0733 2.71661 13.2523 3.88924L12.2418 5.32245C11.8629 3.40064 10.2524 2 8.19984 2C5.83151 2 4 3.95438 4 6.36479V17.2768C4 19.6872 5.86309 21.6416 8.19984 21.6416C10.2208 21.6416 11.7997 20.3386 12.2102 18.4494L13.0944 19.7523C13.9154 20.9901 15.2733 21.6416 16.5995 21.6416C18.9994 21.6741 20.9257 19.6546 20.9257 17.2442Z" stroke="currentColor" stroke-width="2"/> 44</svg> 45` 46} as CardDefinition & { type: typeof cardType };