UNPKG

@mui/x-data-grid-premium

Version:

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

72 lines (70 loc) 2.67 kB
"use strict"; 'use client'; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridAiAssistantPanelConversation = GridAiAssistantPanelConversation; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _xDataGridPro = require("@mui/x-data-grid-pro"); var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses")); var _styles = require("@mui/material/styles"); var _useGridRootProps = require("../../hooks/utils/useGridRootProps"); var _useGridApiContext = require("../../hooks/utils/useGridApiContext"); var _prompt = require("../prompt"); var _jsxRuntime = require("react/jsx-runtime"); const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['aiAssistantPanelConversation'], list: ['aiAssistantPanelConversationList'] }; return (0, _composeClasses.default)(slots, _xDataGridPro.getDataGridUtilityClass, classes); }; const AiAssistantPanelConversationRoot = (0, _styles.styled)(_xDataGridPro.GridShadowScrollArea, { name: 'MuiDataGrid', slot: 'AiAssistantPanelConversation' })({ flexShrink: 0, height: '100%' }); const AiAssistantPanelConversationList = (0, _styles.styled)('ol', { name: 'MuiDataGrid', slot: 'AiAssistantPanelConversationList' })({ flex: 1, padding: 0, margin: 0 }); function GridAiAssistantPanelConversation(props) { const { conversation } = props; const rootProps = (0, _useGridRootProps.useGridRootProps)(); const classes = useUtilityClasses(rootProps); const ref = React.useRef(null); const apiRef = (0, _useGridApiContext.useGridApiContext)(); // Scroll to the bottom of the conversation when the prompt list changes React.useEffect(() => { ref.current?.scrollTo({ top: ref.current?.scrollHeight, behavior: 'smooth' }); }, [conversation]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(AiAssistantPanelConversationRoot, { className: classes.root, ownerState: rootProps, ref: ref, children: /*#__PURE__*/(0, _jsxRuntime.jsx)(AiAssistantPanelConversationList, { className: classes.list, ownerState: rootProps, children: conversation.prompts.map(item => /*#__PURE__*/(0, _jsxRuntime.jsx)(_prompt.GridPrompt, (0, _extends2.default)({}, item, { onRerun: () => apiRef.current.aiAssistant.processPrompt(item.value) }), item.createdAt.toISOString())) }) }); }