import React, { forwardRef } from 'react'; import type { ResumableZoomProps } from '../../components/resumable/types'; export default function withResumableValidation< T, P extends ResumableZoomProps >(Component: React.ComponentType

) { return forwardRef((props, ref) => { const childrenCount = React.Children.count(props.children); if (childrenCount !== 1) { const message = `ResumableZoom expected one child but received ${childrenCount} children`; throw new Error(message); } if (props.minScale !== undefined && props.minScale < 1) { throw new Error('minScale must be greater than or equals one'); } if (typeof props.maxScale === 'number' && props.maxScale < 1) { throw new Error( 'maxScale must be greater than one, or a SizeVector object in order to infer the max scale' ); } if ( props.minScale && typeof props.maxScale === 'number' && props.minScale > props.maxScale ) { throw new Error('minScale must not be greater maxScale'); } if ( props.longPressDuration !== undefined && props.longPressDuration <= 250 ) { throw new Error('longPressDuration must be greater than 250ms'); } return ; }); }