import React, { ComponentType, FC } from 'react'; import dynamic from 'next/dynamic'; import { TabsProps } from 'antd'; import { ErrorBoundary } from 'react-error-boundary'; import classNames from 'classnames'; import { SocialLink } from '../../../interfaces/social-link.model'; import styles from './Content.module.scss'; import { CustomPageContent } from '../CustomPageContent/CustomPageContent'; import { ContentHeader } from '../../common/ContentHeader/ContentHeader'; import { ComponentError } from '../ComponentError/ComponentError'; export type MobileContentProps = { name: string; summary: string; tags: string[]; socialHandles: SocialLink[]; extraPageContent: string; setShowFollowModal: (show: boolean) => void; supportFediverseFeatures: boolean; online: boolean; }; // lazy loaded components const Tabs: ComponentType = dynamic(() => import('antd').then(mod => mod.Tabs), { ssr: false, }); const FollowerCollection = dynamic( () => import('../followers/FollowerCollection/FollowerCollection').then( mod => mod.FollowerCollection, ), { ssr: false, }, ); const ComponentErrorFallback = ({ error, resetErrorBoundary }) => ( ); export const MobileContent: FC = ({ name, summary, tags, socialHandles, extraPageContent, setShowFollowModal, supportFediverseFeatures, online, }) => { const aboutTabContent = ( <> {!!extraPageContent && (
)} ); const followersTabContent = (
setShowFollowModal(true)} />
); const items = []; items.push({ label: 'About', key: '0', children: aboutTabContent }); if (supportFediverseFeatures) { items.push({ label: 'Followers', key: '1', children: followersTabContent }); } return ( ( )} > {items.length > 1 ? (
) : (
{aboutTabContent}
)}
); };