MCPcopy Create free account
hub / github.com/adobe/react-spectrum / useRenderProps

Function useRenderProps

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

Source from the content-addressed store, hash-verified

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

Callers 2

NumberField.tsxFile · 0.70
Chat.tsxFile · 0.50

Calls 2

childrenFunction · 0.85
classNameFunction · 0.50

Tested by

no test coverage detected