diff --git a/apps/chat/src/app/pages/channel/ChannelVoice.tsx b/apps/chat/src/app/pages/channel/ChannelVoice.tsx
index 020e82d64d..e6a5c450fe 100644
--- a/apps/chat/src/app/pages/channel/ChannelVoice.tsx
+++ b/apps/chat/src/app/pages/channel/ChannelVoice.tsx
@@ -9,6 +9,7 @@ import {
handleParticipantMeetState,
selectCurrentChannel,
selectCurrentClan,
+ selectIsShowSettingFooter,
selectShowCamera,
selectShowMicrophone,
selectVoiceFullScreen,
@@ -128,9 +129,11 @@ const ChannelVoice = memo(
const isShow = isJoined && voiceInfo?.clanId === currentChannel?.clan_id && voiceInfo?.channelId === currentChannel?.channel_id;
+ const isShowSettingFooter = useSelector(selectIsShowSettingFooter);
+
return (
{tokenRef.current === '' || !serverUrl ? (
diff --git a/apps/chat/src/app/pages/main/index.tsx b/apps/chat/src/app/pages/main/index.tsx
index 275f9e2ed2..f922b939ad 100644
--- a/apps/chat/src/app/pages/main/index.tsx
+++ b/apps/chat/src/app/pages/main/index.tsx
@@ -52,7 +52,7 @@ import {
selectSignalingDataByUserId,
selectStatusMenu,
selectTheme,
- selectToastErrorStatus,
+ selectToastErrors,
useAppDispatch,
useAppSelector
} from '@mezon/store';
@@ -276,56 +276,52 @@ function MyApp() {
const handleClose = () => {
dispatch(e2eeActions.setOpenModalE2ee(false));
};
- // show toast error
- const toastErrorStatus = useSelector(selectToastErrorStatus);
- const [openUnknown, closeUnknown] = useModal(() => {
- return
;
- }, []);
- useEffect(() => {
- if (toastErrorStatus) {
- openUnknown();
- } else {
- closeUnknown();
- }
- }, [toastErrorStatus]);
+
+ const toastError = useSelector(selectToastErrors);
+
return (
-
- {previewMode &&
}
- {openPopupForward &&
}
-
-
+ <>
+ {toastError.map((error) => (
+
+ ))}
-
-
+ {previewMode &&
}
+ {openPopupForward &&
}
+
+
+
+
+
- {isPlayRingTone &&
- !!dataCall &&
- !isInCall &&
- directId !== dataCall?.channel_id &&
- dataCall?.data_type === WebrtcSignalingType.WEBRTC_SDP_OFFER && (
-
- )}
-
-
- {openModalE2ee && !hasKeyE2ee &&
}
- {openModalAttachment &&
}
- {isShowFirstJoinPopup &&
setIsShowFirstJoinPopup(false)} />}
- {isShowPopupQuickMess && }
-
+ {isPlayRingTone &&
+ !!dataCall &&
+ !isInCall &&
+ directId !== dataCall?.channel_id &&
+ dataCall?.data_type === WebrtcSignalingType.WEBRTC_SDP_OFFER && (
+
+ )}
+
+
+ {openModalE2ee && !hasKeyE2ee &&
}
+ {openModalAttachment &&
}
+ {isShowFirstJoinPopup &&
setIsShowFirstJoinPopup(false)} />}
+ {isShowPopupQuickMess && }
+
+ >
);
}
diff --git a/libs/components/src/lib/components/FooterProfile/index.tsx b/libs/components/src/lib/components/FooterProfile/index.tsx
index dca65a5988..2d2e14084d 100644
--- a/libs/components/src/lib/components/FooterProfile/index.tsx
+++ b/libs/components/src/lib/components/FooterProfile/index.tsx
@@ -58,7 +58,13 @@ function FooterProfile({ name, status, avatar, userId, isDM }: FooterProfileProp
const [userSearchError, setUserSearchError] = useState