import * as React from 'react'; import cn from 'classnames'; type Value = 0 | 1 | 2 | 3 | 4 | 5 | 6; interface PaddingProps { pt?: Value; pr?: Value; pb?: Value; pl?: Value; p?: Value; className?: string; } function getPadding(name: string, value: Value) { return { [`${name}-${value}`]: value || false }; } export function withPadding

( Component: React.ComponentType

, ): React.ComponentType

{ return (props: PaddingProps) => { const { p = 0, pt = 0, pr = 0, pb = 0, pl = 0, className = '' } = props; const cnComponent = cn(className, { ...getPadding('pt', pt), ...getPadding('pr', pr), ...getPadding('pb', pb), ...getPadding('pl', pl), ...getPadding('p', p), }); return ; }; }