diff --git a/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js b/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js index 95afed34b4c90903a7071e4e4b3a423c7dfeb6f4..fe7d0beeb728b61771876bf2e1cda774542144b6 100644 --- a/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js +++ b/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js @@ -1,19 +1,31 @@ -import React, { useContext } from 'react'; +import React, { useContext, useMemo } from 'react'; import { WaxContext, MenuButton } from 'wax-prosemirror-core'; import PropTypes from 'prop-types'; const ToggleAiComponent = ({ item }) => { - const { app } = useContext(WaxContext); + const { app, pmViews } = useContext(WaxContext); const enableService = app.config.get('config.AskAiContentService'); - return enableService.AiOn ? ( - <MenuButton - active={false} - disabled={false} - iconName={item.icon} - title={item.title} - /> - ) : null; + let isDisabled = false; + const { main } = pmViews; + const isEditable = main.props.editable(editable => { + return editable; + }); + + if (!isEditable) isDisabled = true; + + return useMemo( + () => + enableService.AiOn ? ( + <MenuButton + active={false} + disabled={!isEditable} + iconName={item.icon} + title={item.title} + /> + ) : null, + [enableService.AiOn, isDisabled], + ); }; ToggleAiComponent.propTypes = {