@etsoo/materialui
Version:
TypeScript Material-UI Implementation
29 lines (28 loc) • 856 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import React from "react";
import { CustomFieldUtils } from "./CustomFieldUtils";
/**
* Label field creator
* type: label
* @returns Component
*/
export const FieldLabel = ({ field, mref, defaultValue }) => {
// State
const [label, setLabel] = React.useState();
// Ref
const getValue = () => label;
const setValue = (value) => setLabel(`${value ?? ""}`);
React.useImperativeHandle(mref, () => ({
getValue,
setValue
}));
React.useEffect(() => {
setLabel(field.label);
}, [field.label]);
React.useEffect(() => {
if (defaultValue == null)
return;
setValue(defaultValue);
}, [defaultValue]);
return (_jsx(React.Fragment, { children: CustomFieldUtils.createMultilineLabel(label, field.mainSlotProps) }));
};