From b5f1c696efc819feffe88a026a06b551ac1bfd6e Mon Sep 17 00:00:00 2001 From: Victor Mutai <victor.mutai@dillieduck.com> Date: Thu, 15 Feb 2024 11:13:19 +0300 Subject: [PATCH] chore: use onMouseDown --- .../src/AiService/ToggleAiTool.js | 7 +--- .../src/AiService/components/AskAIOverlay.js | 6 +-- .../AiService/components/ToggleAiComponent.js | 37 ++++++++++++------- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/wax-prosemirror-services/src/AiService/ToggleAiTool.js b/wax-prosemirror-services/src/AiService/ToggleAiTool.js index 1cc0fa43f..88070ad69 100644 --- a/wax-prosemirror-services/src/AiService/ToggleAiTool.js +++ b/wax-prosemirror-services/src/AiService/ToggleAiTool.js @@ -10,12 +10,7 @@ class ToggleAiTool extends Tools { renderTool(view) { return ( - <ToggleAiComponent - displayed={false} - item={this.toJSON()} - key={uuidv4()} - view={view} - /> + <ToggleAiComponent item={this.toJSON()} key={uuidv4()} view={view} /> ); } } diff --git a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js index 5e5464b60..4178becd0 100644 --- a/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js +++ b/wax-prosemirror-services/src/AiService/components/AskAIOverlay.js @@ -110,7 +110,7 @@ const AskAIOverlay = ({ setPosition, position, config }) => { const [result, setResult] = useState(''); const [isSubmitted, setIsSubmitted] = useState(false); const [isLoading, setIsLoading] = useState(false); - const { AskAiContentTransformation, AiOn } = config; + const { AskAiContentTransformation } = config; const inputRef = useRef(null); useLayoutEffect(() => { @@ -135,7 +135,7 @@ const AskAIOverlay = ({ setPosition, position, config }) => { } setPosition({ ...position, left, top }); - }, [position.left, options.AiOn, AiOn]); + }, [position.left, options.AiOn]); const tryAgain = () => { // Reset the state to initial values @@ -198,7 +198,7 @@ const AskAIOverlay = ({ setPosition, position, config }) => { } }; - return options?.AiOn && AiOn ? ( + return options?.AiOn ? ( <Wrapper id="ai-overlay"> <AskAIForm> <AskAIFormInput diff --git a/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js b/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js index c5954cba5..066175e57 100644 --- a/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js +++ b/wax-prosemirror-services/src/AiService/components/ToggleAiComponent.js @@ -1,30 +1,39 @@ -import React, { useContext, useMemo } from 'react'; +import React, { useContext, useMemo, useState } from 'react'; import { WaxContext, MenuButton } from 'wax-prosemirror-core'; import PropTypes from 'prop-types'; const ToggleAiComponent = ({ item }) => { - const { app, pmViews, options } = useContext(WaxContext); - const enableService = app.config.get('config.AskAiContentService'); + const [checked, setChecked] = useState(false); + const context = useContext(WaxContext); + const { + pmViews: { main }, + } = context; let isDisabled = false; - const { main } = pmViews; const isEditable = main.props.editable(editable => { return editable; }); if (!isEditable) isDisabled = true; + const onMouseDown = () => { + context.setOption({ AiOn: !checked }); + setChecked(!checked); + main.dispatch(main.state.tr.setMeta('addToHistory', false)); + main.focus(); + }; + return useMemo( - () => - enableService.AiOn ? ( - <MenuButton - active={false} - disabled={!isEditable || !options?.AiOn} - iconName={item.icon} - title={item.title} - /> - ) : null, - [enableService.AiOn, isDisabled], + () => ( + <MenuButton + active={checked} + disabled={!isEditable} + iconName={item.icon} + onMouseDown={onMouseDown} + title={item.title} + /> + ), + [checked, isDisabled], ); }; -- GitLab