@yamada-ui/react
Version:
React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion
42 lines (38 loc) • 1.26 kB
JavaScript
"use client";
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
const require_ref = require('../../utils/ref.cjs');
const require_utils_index = require('../../utils/index.cjs');
const require_use_autosize = require('./use-autosize.cjs');
let react = require("react");
react = require_rolldown_runtime.__toESM(react);
//#region src/components/textarea/use-textarea.ts
const useTextarea = ({ autosize, maxRows, minRows, resizeRef,...rest } = {}) => {
const { ref, onResizeTextarea } = require_use_autosize.useAutosize({
disabled: !autosize,
maxRows,
minRows
});
require_ref.assignRef(resizeRef, onResizeTextarea);
return {
getTextareaProps: (0, react.useCallback)(({ style,...props } = {}) => ({
...rest,
...props,
ref: require_ref.mergeRefs(props.ref, rest.ref, ref),
style: {
resize: autosize ? "none" : void 0,
...rest.style,
...style
},
onChange: (0, require_utils_index.utils_exports.handlerAll)(props.onChange, rest.onChange, autosize ? onResizeTextarea : require_utils_index.utils_exports.noop)
}), [
autosize,
onResizeTextarea,
rest,
ref
]),
onResizeTextarea
};
};
//#endregion
exports.useTextarea = useTextarea;
//# sourceMappingURL=use-textarea.cjs.map