fix(toolbox): Fix re-rendering of toolbar on every state change.

This commit is contained in:
damencho
2024-10-02 17:43:00 -05:00
committed by Дамян Минков
parent d6a42fbe43
commit 39c9c24810
2 changed files with 10 additions and 6 deletions

View File

@@ -8,6 +8,7 @@ import { isMobileBrowser } from '../../../base/environment/utils';
import { getLocalParticipant, isLocalParticipantModerator } from '../../../base/participants/functions';
import ContextMenu from '../../../base/ui/components/web/ContextMenu';
import { isReactionsButtonEnabled, shouldDisplayReactionsButtons } from '../../../reactions/functions.web';
import { isTranscribing } from '../../../transcribing/functions';
import {
setHangupMenuVisible,
setOverflowMenuVisible,
@@ -99,8 +100,11 @@ export default function Toolbox({
const isDialogVisible = useSelector((state: IReduxState) => Boolean(state['features/base/dialog'].component));
const jwt = useSelector((state: IReduxState) => state['features/base/jwt'].jwt);
const localParticipant = useSelector(getLocalParticipant);
const jwtDisabledButtons = useSelector((state: IReduxState) =>
getJwtDisabledButtons(state, isModerator, jwt, localParticipant?.features));
const transcribing = useSelector(isTranscribing);
// Do not convert to selector, it returns new array and will cause re-rendering of toolbox on every action.
const jwtDisabledButtons = getJwtDisabledButtons(transcribing, isModerator, jwt, localParticipant?.features);
const reactionsButtonEnabled = useSelector(isReactionsButtonEnabled);
const _shouldDisplayReactionsButtons = useSelector(shouldDisplayReactionsButtons);
const toolbarVisible = useSelector(isToolboxVisible);