/** * 管理 表达式组件处于处于Textarea模式时的相关状态 */ import { DataSourceOption } from "../../common/BaseUI/DropdownRenderer/Reference"; import React from "react"; import { ExpressionMode } from "../constant"; import { EXPRESSION_ITEM, EditRef, InputExpressionValue, VALUE_TYPE } from "../types"; type UseTextareaModeProps = { mode: ExpressionMode; options: DataSourceOption[]; onChange: (value: InputExpressionValue) => void; valueFieldName: keyof InputExpressionValue; expressionVal: InputExpressionValue; allowModifyField: boolean; disabled: boolean; valueType: VALUE_TYPE; editRef: React.MutableRefObject; }; export type SelectPanelRef = { openSelectPanel: () => void; closeSelectPanel: () => void; withPopOver: (WrappedComponent: React.ReactNode, config: EXPRESSION_ITEM) => React.ReactNode; }; export default function useTextareaMode({ mode, options, onChange, valueFieldName, expressionVal, allowModifyField, disabled, valueType, editRef, }: UseTextareaModeProps): { extraCascaderProps: Record; openSelectPanel: (this: unknown) => void; closeSelectPanel: (this: unknown) => void; selectPanelRef: React.MutableRefObject; patchToAddLabel: (this: unknown, updatedExpressionVal: InputExpressionValue) => void; withPopOver: (this: unknown, WrappedComponent: React.ReactNode, config: EXPRESSION_ITEM) => string | number | boolean | Iterable | React.JSX.Element; handleDoubleClickNode: (this: unknown, config: EXPRESSION_ITEM) => void; closeCurrentNodeEdit: (this: unknown) => void; userInput: string[]; }; export {};