From b6acb9c4bb3f59791d7bc8825e1f368aa895a369 Mon Sep 17 00:00:00 2001 From: chris <kokosias@yahoo.gr> Date: Tue, 13 Oct 2020 12:19:26 +0300 Subject: [PATCH] didn't rerender tools while typing --- .../src/components/Button.js | 12 ++++++---- .../src/ui/buttons/MenuButton.js | 1 - wax-prosemirror-services/src/lib/ToolGroup.js | 24 ++++++++++++------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/wax-prosemirror-components/src/components/Button.js b/wax-prosemirror-components/src/components/Button.js index 2f2dd9406..5c6ca68f4 100644 --- a/wax-prosemirror-components/src/components/Button.js +++ b/wax-prosemirror-components/src/components/Button.js @@ -1,6 +1,6 @@ /* eslint react/prop-types: 0 */ -import React, { useContext, useMemo } from 'react'; +import React, { useContext, useMemo, useState } from 'react'; import { WaxContext } from 'wax-prosemirror-core'; import MenuButton from '../ui/buttons/MenuButton'; @@ -16,9 +16,9 @@ const Button = ({ view = {}, item }) => { const { dispatch, state } = view; - const handleMouseDown = e => { + const handleMouseDown = (e, editorState, editorDispatch) => { e.preventDefault(); - run(state, dispatch); + run(editorState, dispatch); }; const isActive = active && active(state, activeViewId); @@ -33,11 +33,13 @@ const Button = ({ view = {}, item }) => { disabled={isDisabled} iconName={icon} label={label} - onMouseDown={handleMouseDown} + onMouseDown={(e, editorState, editorDispatch) => + handleMouseDown(e, view.state, view.dispatch) + } title={title} /> ), - [], + [isActive, isDisabled], ); return MenuButtonComponent; diff --git a/wax-prosemirror-components/src/ui/buttons/MenuButton.js b/wax-prosemirror-components/src/ui/buttons/MenuButton.js index 173f8d174..91e81f11d 100644 --- a/wax-prosemirror-components/src/ui/buttons/MenuButton.js +++ b/wax-prosemirror-components/src/ui/buttons/MenuButton.js @@ -78,7 +78,6 @@ const MenuButton = props => { title, onMouseDown, } = props; - console.log('here?'); return ( <Wrapper active={active} diff --git a/wax-prosemirror-services/src/lib/ToolGroup.js b/wax-prosemirror-services/src/lib/ToolGroup.js index 60d6393c9..efe1c529b 100644 --- a/wax-prosemirror-services/src/lib/ToolGroup.js +++ b/wax-prosemirror-services/src/lib/ToolGroup.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React, { useMemo } from 'react'; import { injectable } from 'inversify'; import { ToolGroupComponent, ToolGroups } from 'wax-prosemirror-components'; import { v4 as uuidv4 } from 'uuid'; @@ -61,14 +61,20 @@ class ToolGroup { if (this._toolGroups > 0) { return <ToolGroups toolGroups={this._toolGroups} view={view} />; } - return ( - <ToolGroupComponent - key={uuidv4()} - view={view} - tools={this._tools} - title={this.title} - name={name} - /> + + const MemorizedToolGroupComponent = useMemo( + () => ( + <ToolGroupComponent + key={uuidv4()} + view={view} + tools={this._tools} + title={this.title} + name={name} + /> + ), + [view], ); + + return MemorizedToolGroupComponent; } } -- GitLab