MCPcopy Index your code
hub / github.com/adobe/react-spectrum / useRenderProps

Function useRenderProps

packages/@react-spectrum/s2/src/NumberField.tsx:365–408  ·  view source on GitHub ↗
(props: any)

Source from the content-addressed store, hash-verified

363
364// replace from RAC
365function 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}

Callers 2

NumberField.tsxFile · 0.70
TokenField.tsxFile · 0.50

Calls 2

childrenFunction · 0.85
classNameFunction · 0.50

Tested by

no test coverage detected