import React, { useMemo, memo } from 'react'; import type { ViewStyle } from 'react-native'; import { PlaceholderLine } from 'rn-placeholder'; import Space from '../space'; import Theme from '../theme'; import type { SkeletonParagraphProps } from './interface'; import SkeletonActive from './skeleton-active'; import { varCreator } from './style'; const SkeletonParagraph: React.FC = ({ active = true, rows, widths, testID, }) => { const TOKENS = Theme.useThemeTokens(); const CV = Theme.createVar(TOKENS, varCreator); const combineStyle = useMemo( () => ({ backgroundColor: CV.skeleton_color, }), [CV.skeleton_color] ); const paragraphs = useMemo( () => new Array(rows).fill(0).map((_, i) => i), [rows] ); const nodeJSX = ( {paragraphs.map((n) => { return ( ); })} ); if (active) { return {nodeJSX}; } return nodeJSX; }; export default memo(SkeletonParagraph);