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

Function useFormProps

packages/@react-spectrum/s2/src/Form.tsx:43–68  ·  view source on GitHub ↗
(props: T)

Source from the content-addressed store, hash-verified

41
42export const FormContext = createContext<Partial<FormStyleProps | null>>(null);
43export function useFormProps<T extends FormStyleProps>(props: T): T {
44 let ctx = useContext(FormContext);
45 let isSkeleton = useIsSkeleton();
46 return useMemo(() => {
47 let result: T = props;
48 if (ctx || isSkeleton) {
49 result = {...props};
50 }
51
52 if (ctx) {
53 // This is a subset of mergeProps. We just need to merge non-undefined values.
54 for (let key in ctx) {
55 if (result[key] === undefined) {
56 result[key] = ctx[key];
57 }
58 }
59 }
60
61 // Skeleton always wins over local props.
62 if (isSkeleton) {
63 result.isDisabled = true;
64 }
65
66 return result;
67 }, [ctx, props, isSkeleton]);
68}
69
70/**
71 * Forms allow users to enter data that can be submitted while providing alignment and styling for

Callers 15

Button.tsxFile · 0.90
NumberField.tsxFile · 0.90
SliderBaseFunction · 0.90
Slider.tsxFile · 0.90
TextField.tsxFile · 0.90
PickerFunction · 0.90
RadioGroup.tsxFile · 0.90
CheckboxGroup.tsxFile · 0.90
ToggleButton.tsxFile · 0.90
ComboBox.tsxFile · 0.90
SearchField.tsxFile · 0.90
Switch.tsxFile · 0.90

Calls 1

useIsSkeletonFunction · 0.90

Tested by

no test coverage detected