UNPKG

@mui/x-data-grid-premium

Version:

The Premium plan edition of the MUI X Data Grid Components.

78 lines 3.64 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["ref"]; import { PromptField } from "./PromptField.js"; import { PromptFieldControl } from "./PromptFieldControl.js"; import { PromptFieldRecord } from "./PromptFieldRecord.js"; import { PromptFieldSend } from "./PromptFieldSend.js"; import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js"; import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js"; import { IS_SPEECH_RECOGNITION_SUPPORTED } from "../../utils/speechRecognition.js"; import { jsx as _jsx } from "react/jsx-runtime"; function GridPromptField(props) { const rootProps = useGridRootProps(); const apiRef = useGridApiContext(); let placeholder = apiRef.current.getLocaleText('promptFieldPlaceholder'); if (IS_SPEECH_RECOGNITION_SUPPORTED) { placeholder = apiRef.current.getLocaleText('promptFieldPlaceholderWithRecording'); } return /*#__PURE__*/_jsx(PromptField, _extends({}, props, { children: /*#__PURE__*/_jsx(PromptFieldControl, { onKeyDown: event => { if (event.key === 'Enter') { // Prevents the `multiline` TextField from adding a new line event.preventDefault(); } }, render: (_ref, state) => { let { ref } = _ref, controlProps = _objectWithoutPropertiesLoose(_ref, _excluded); return /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({}, controlProps, { fullWidth: true, inputRef: ref, "aria-label": apiRef.current.getLocaleText('promptFieldLabel'), placeholder: state.recording ? apiRef.current.getLocaleText('promptFieldPlaceholderListening') : placeholder, size: "small", multiline: true, autoFocus: true, slotProps: _extends({ input: _extends({ startAdornment: IS_SPEECH_RECOGNITION_SUPPORTED ? /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: state.recording ? apiRef.current.getLocaleText('promptFieldStopRecording') : apiRef.current.getLocaleText('promptFieldRecord'), children: /*#__PURE__*/_jsx(PromptFieldRecord, { size: "small", edge: "start", color: state.recording ? 'primary' : 'default', children: /*#__PURE__*/_jsx(rootProps.slots.promptSpeechRecognitionIcon, { fontSize: "small" }) }) }) : /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('promptFieldSpeechRecognitionNotSupported'), children: /*#__PURE__*/_jsx(rootProps.slots.promptSpeechRecognitionOffIcon, { fontSize: "small" }) }), endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('promptFieldSend'), children: /*#__PURE__*/_jsx("span", { children: /*#__PURE__*/_jsx(PromptFieldSend, { size: "small", edge: "end", color: "primary", children: /*#__PURE__*/_jsx(rootProps.slots.promptSendIcon, { fontSize: "small" }) }) }) }) }, controlProps.slotProps?.input) }, controlProps.slotProps) })); } }) })); } export { GridPromptField };