import { FC } from 'react'; import { withProvider } from '@gitroom/frontend/components/launches/providers/high.order.provider'; import { useIntegration } from '@gitroom/frontend/components/launches/helpers/use.integration'; import { useFormatting } from '@gitroom/frontend/components/launches/helpers/use.formatting'; import { useMediaDirectory } from '@gitroom/react/helpers/use.media.directory'; import { afterLinkedinCompanyPreventRemove, linkedinCompanyPreventRemove, } from '@gitroom/helpers/utils/linkedin.company.prevent.remove'; import { VideoOrImage } from '@gitroom/react/helpers/video.or.image'; const ThreadsPreview: FC = (props) => { const { value: topValue, integration } = useIntegration(); const mediaDir = useMediaDirectory(); const newValues = useFormatting(topValue, { removeMarkdown: true, saveBreaklines: true, beforeSpecialFunc: (text: string) => { return linkedinCompanyPreventRemove(text); }, specialFunc: (text: string) => { return afterLinkedinCompanyPreventRemove(text.slice(0, 280)); }, }); const [firstPost, ...morePosts] = newValues; if (!firstPost) { return null; } return (
x
{integration?.name}
CEO @ Gitroom
1m
{!!firstPost?.images?.length && (
{firstPost.images.map((image, index) => ( ))}
)}
      
{morePosts.map((p, index) => (
x
{integration?.name}
CEO @ Gitroom
{p.text}
{!!p?.images?.length && (
{p.images.map((image, index) => (
))}
)}
))}
); }; export default withProvider(null, ThreadsPreview, undefined, async ([firstPost, ...otherPosts]) => { if (!firstPost.length) { return 'Instagram should have at least one media'; } return true; });