(props: any)
| 363 | |
| 364 | // replace from RAC |
| 365 | function useRenderProps(props: any) { |
| 366 | let { |
| 367 | className, |
| 368 | style, |
| 369 | children, |
| 370 | defaultClassName = undefined, |
| 371 | defaultChildren = undefined, |
| 372 | defaultStyle, |
| 373 | values |
| 374 | } = props; |
| 375 | |
| 376 | return useMemo(() => { |
| 377 | let computedClassName: string | undefined; |
| 378 | let computedStyle: CSSProperties | undefined; |
| 379 | let computedChildren: ReactNode | undefined; |
| 380 | |
| 381 | if (typeof className === 'function') { |
| 382 | computedClassName = className({...values, defaultClassName}); |
| 383 | } else { |
| 384 | computedClassName = className; |
| 385 | } |
| 386 | |
| 387 | if (typeof style === 'function') { |
| 388 | computedStyle = style({...values, defaultStyle: defaultStyle || {}}); |
| 389 | } else { |
| 390 | computedStyle = style; |
| 391 | } |
| 392 | |
| 393 | if (typeof children === 'function') { |
| 394 | computedChildren = children({...values, defaultChildren}); |
| 395 | } else if (children == null) { |
| 396 | computedChildren = defaultChildren; |
| 397 | } else { |
| 398 | computedChildren = children; |
| 399 | } |
| 400 | |
| 401 | return { |
| 402 | className: computedClassName ?? defaultClassName, |
| 403 | style: computedStyle || defaultStyle ? {...defaultStyle, ...computedStyle} : undefined, |
| 404 | children: computedChildren ?? defaultChildren, |
| 405 | 'data-rac': '' |
| 406 | }; |
| 407 | }, [className, style, children, defaultClassName, defaultChildren, defaultStyle, values]); |
| 408 | } |
no test coverage detected