/** * External dependencies */ import type { SocialProfile } from '@nelio-content/types'; /** * Internal dependencies */ import { BandPreview } from './band'; import { BloggerPreview } from './blogger'; import { BlueskyPreview } from './bluesky'; import { DiscordPreview } from './discord'; import { FacebookPreview } from './facebook'; import { GoogleMyBusinessPreview } from './gmb'; import { InstagramPreview } from './instagram'; import { LinePreview } from './line'; import { LinkedInPreview } from './linkedin'; import { MastodonPreview } from './mastodon'; import { MediumPreview } from './medium'; import { NoPreview } from './no-preview'; import { OKPreview } from './ok'; import { PinterestPreview } from './pinterest'; import { PlurkPreview } from './plurk'; import { RedditPreview } from './reddit'; import { SlackPreview } from './slack'; import { TelegramPreview } from './telegram'; import { ThreadsPreview } from './threads'; import { TiktokPreview } from './tiktok'; import { TumblrPreview } from './tumblr'; import { TwitterPreview } from './twitter'; import { VkPreview } from './vk'; import type { PreviewAttributes } from '../../hooks'; export type PreviewComponent = ( attrs: PreviewAttributes ) => JSX.Element | null; export function getPreviewComponent( activeProfile: SocialProfile ): PreviewComponent | null { switch ( activeProfile.network ) { case 'band': return BandPreview; case 'blogger': return BloggerPreview; case 'bluesky': return BlueskyPreview; case 'discord': return DiscordPreview; case 'slack': return SlackPreview; case 'twitter': return TwitterPreview; case 'facebook': return FacebookPreview; case 'gmb': return GoogleMyBusinessPreview; case 'line': return LinePreview; case 'linkedin': return LinkedInPreview; case 'instagram': return InstagramPreview; case 'ok': return OKPreview; case 'pinterest': return PinterestPreview; case 'plurk': return PlurkPreview; case 'reddit': return RedditPreview; case 'telegram': return TelegramPreview; case 'medium': return MediumPreview; case 'threads': return ThreadsPreview; case 'tiktok': return TiktokPreview; case 'tumblr': return TumblrPreview; case 'mastodon': return MastodonPreview; case 'vk': return VkPreview; case 'webhook': return NoPreview; } }