UNPKG

@mui/x-data-grid-premium

Version:

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

66 lines (64 loc) 2.17 kB
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import { getDataGridUtilityClass, GridShadowScrollArea } from '@mui/x-data-grid-pro'; import composeClasses from '@mui/utils/composeClasses'; import { styled } from '@mui/material/styles'; import { useGridRootProps } from "../../hooks/utils/useGridRootProps.mjs"; import { useGridApiContext } from "../../hooks/utils/useGridApiContext.mjs"; import { GridPrompt } from "../prompt/index.mjs"; import { jsx as _jsx } from "react/jsx-runtime"; const useUtilityClasses = ownerState => { const { classes } = ownerState; const slots = { root: ['aiAssistantPanelConversation'], list: ['aiAssistantPanelConversationList'] }; return composeClasses(slots, getDataGridUtilityClass, classes); }; const AiAssistantPanelConversationRoot = styled(GridShadowScrollArea, { name: 'MuiDataGrid', slot: 'AiAssistantPanelConversation' })({ flexShrink: 0, height: '100%' }); const AiAssistantPanelConversationList = styled('ol', { name: 'MuiDataGrid', slot: 'AiAssistantPanelConversationList' })({ flex: 1, padding: 0, margin: 0 }); function GridAiAssistantPanelConversation(props) { const { conversation } = props; const rootProps = useGridRootProps(); const classes = useUtilityClasses(rootProps); const ref = React.useRef(null); const apiRef = 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__*/_jsx(AiAssistantPanelConversationRoot, { className: classes.root, ownerState: rootProps, ref: ref, children: /*#__PURE__*/_jsx(AiAssistantPanelConversationList, { className: classes.list, ownerState: rootProps, children: conversation.prompts.map(item => /*#__PURE__*/_jsx(GridPrompt, _extends({}, item, { onRerun: () => apiRef.current.aiAssistant.processPrompt(item.value) }), item.createdAt.toISOString())) }) }); } export { GridAiAssistantPanelConversation };