your personal website on atproto - mirror blento.app
at signup 80 lines 3.0 kB view raw
1import type { Item } from '$lib/types'; 2import { ATProtoCollectionsCardDefinition } from './ATProtoCollectionsCard'; 3import { BigSocialCardDefinition } from './BigSocialCard'; 4import { BlueskyMediaCardDefinition } from './BlueskyMediaCard'; 5import { BlueskyPostCardDefinition } from './BlueskyPostCard'; 6import { DinoGameCardDefinition } from './GameCards/DinoGameCard'; 7import { EmbedCardDefinition } from './EmbedCard'; 8import { TetrisCardDefinition } from './GameCards/TetrisCard'; 9import { ImageCardDefinition } from './ImageCard'; 10import { LinkCardDefinition } from './LinkCard'; 11import { LivestreamCardDefitition, LivestreamEmbedCardDefitition } from './LivestreamCard'; 12import { MapCardDefinition } from './MapCard'; 13import { SectionCardDefinition } from './SectionCard'; 14import { UpdatedBlentosCardDefitition } from './SpecialCards/UpdatedBlentos'; 15import { TextCardDefinition } from './TextCard'; 16import type { CardDefinition } from './types'; 17import { VideoCardDefinition } from './VideoCard'; 18import { YoutubeCardDefinition } from './YoutubeVideoCard'; 19import { BlueskyProfileCardDefinition } from './BlueskyProfileCard'; 20import { GithubProfileCardDefitition } from './GitHubProfileCard'; 21import { FluidTextCardDefinition } from './FluidTextCard'; 22import { GifCardDefinition } from './GIFCard'; 23import { PopfeedReviewsCardDefinition } from './PopfeedReviews'; 24import { TealFMPlaysCardDefinition } from './TealFMPlaysCard'; 25import { PhotoGalleryCardDefinition } from './PhotoGalleryCard'; 26import { StandardSiteDocumentListCardDefinition } from './StandardSiteDocumentListCard'; 27import { StatusphereCardDefinition } from './StatusphereCard'; 28import { EventCardDefinition } from './EventCard'; 29import { VCardCardDefinition } from './VCardCard'; 30import { DrawCardDefinition } from './DrawCard'; 31import { TimerCardDefinition } from './TimerCard'; 32 33export const AllCardDefinitions = [ 34 ImageCardDefinition, 35 VideoCardDefinition, 36 TextCardDefinition, 37 LinkCardDefinition, 38 BigSocialCardDefinition, 39 UpdatedBlentosCardDefitition, 40 YoutubeCardDefinition, 41 BlueskyPostCardDefinition, 42 LivestreamCardDefitition, 43 LivestreamEmbedCardDefitition, 44 EmbedCardDefinition, 45 MapCardDefinition, 46 ATProtoCollectionsCardDefinition, 47 SectionCardDefinition, 48 BlueskyMediaCardDefinition, 49 DinoGameCardDefinition, 50 BlueskyProfileCardDefinition, 51 GithubProfileCardDefitition, 52 TetrisCardDefinition, 53 FluidTextCardDefinition, 54 GifCardDefinition, 55 PopfeedReviewsCardDefinition, 56 TealFMPlaysCardDefinition, 57 PhotoGalleryCardDefinition, 58 StandardSiteDocumentListCardDefinition, 59 StatusphereCardDefinition, 60 EventCardDefinition, 61 VCardCardDefinition, 62 DrawCardDefinition, 63 TimerCardDefinition 64] as const; 65 66export const CardDefinitionsByType = AllCardDefinitions.reduce( 67 (acc, item) => { 68 acc[item.type] = item; 69 return acc; 70 }, 71 {} as Record<string, CardDefinition> 72); 73 74export function getColor(item: Item): string { 75 if (item.color) return item.color; 76 77 const cardDefColor = CardDefinitionsByType[item.cardType]?.defaultColor; 78 79 return cardDefColor || 'base'; 80}