mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2025-12-30 03:12:29 +00:00
fix(shared-video): Remove disable button action from web.
This commit is contained in:
@@ -115,7 +115,7 @@ import { toggleScreenshotCaptureSummary } from '../../react/features/screenshot-
|
||||
import { isScreenshotCaptureEnabled } from '../../react/features/screenshot-capture/functions';
|
||||
import SettingsDialog from '../../react/features/settings/components/web/SettingsDialog';
|
||||
import { SETTINGS_TABS } from '../../react/features/settings/constants';
|
||||
import { playSharedVideo, stopSharedVideo } from '../../react/features/shared-video/actions.any';
|
||||
import { playSharedVideo, stopSharedVideo } from '../../react/features/shared-video/actions';
|
||||
import { extractYoutubeIdOrURL } from '../../react/features/shared-video/functions';
|
||||
import { setRequestingSubtitles, toggleRequestingSubtitles } from '../../react/features/subtitles/actions';
|
||||
import { isAudioMuteButtonDisabled } from '../../react/features/toolbox/functions';
|
||||
|
||||
@@ -28,17 +28,6 @@ export const RESET_SHARED_VIDEO_STATUS = 'RESET_SHARED_VIDEO_STATUS';
|
||||
*/
|
||||
export const SET_CONFIRM_SHOW_VIDEO = 'SET_CONFIRM_SHOW_VIDEO';
|
||||
|
||||
|
||||
/**
|
||||
* The type of the action which signals to disable or enable the shared video
|
||||
* button.
|
||||
*
|
||||
* {
|
||||
* type: SET_DISABLE_BUTTON
|
||||
* }
|
||||
*/
|
||||
export const SET_DISABLE_BUTTON = 'SET_DISABLE_BUTTON';
|
||||
|
||||
/**
|
||||
* The type of the action which sets an array of whitelisted urls.
|
||||
*
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
export * from './actions.any';
|
||||
@@ -1,19 +0,0 @@
|
||||
import { SET_DISABLE_BUTTON } from './actionTypes';
|
||||
|
||||
export * from './actions.any';
|
||||
|
||||
/**
|
||||
* Disabled share video button.
|
||||
*
|
||||
* @param {boolean} disabled - The current state of the share video button.
|
||||
* @returns {{
|
||||
* type: SET_DISABLE_BUTTON,
|
||||
* disabled: boolean
|
||||
* }}
|
||||
*/
|
||||
export function setDisableButton(disabled: boolean) {
|
||||
return {
|
||||
type: SET_DISABLE_BUTTON,
|
||||
disabled
|
||||
};
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import { IReduxState, IStore } from '../../../app/types';
|
||||
import { getCurrentConference } from '../../../base/conference/functions';
|
||||
import { IJitsiConference } from '../../../base/conference/reducer';
|
||||
import { getLocalParticipant } from '../../../base/participants/functions';
|
||||
import { setSharedVideoStatus } from '../../actions.any';
|
||||
import { setSharedVideoStatus } from '../../actions';
|
||||
import { PLAYBACK_STATUSES } from '../../constants';
|
||||
|
||||
/**
|
||||
|
||||
@@ -7,7 +7,7 @@ import { translate } from '../../../base/i18n/functions';
|
||||
import { IconPlay } from '../../../base/icons/svg';
|
||||
import { getLocalParticipant } from '../../../base/participants/functions';
|
||||
import AbstractButton, { IProps as AbstractButtonProps } from '../../../base/toolbox/components/AbstractButton';
|
||||
import { toggleSharedVideo } from '../../actions.native';
|
||||
import { toggleSharedVideo } from '../../actions';
|
||||
import { isSharingStatus } from '../../functions';
|
||||
|
||||
/**
|
||||
|
||||
@@ -15,7 +15,7 @@ import { showWarningNotification } from '../../../notifications/actions';
|
||||
import { NOTIFICATION_TIMEOUT_TYPE } from '../../../notifications/constants';
|
||||
import { dockToolbox } from '../../../toolbox/actions';
|
||||
import { muteLocal } from '../../../video-menu/actions.any';
|
||||
import { setSharedVideoStatus, stopSharedVideo } from '../../actions.any';
|
||||
import { setSharedVideoStatus, stopSharedVideo } from '../../actions';
|
||||
import { PLAYBACK_STATUSES } from '../../constants';
|
||||
|
||||
const logger = Logger.getLogger(__filename);
|
||||
|
||||
@@ -3,8 +3,9 @@ import { connect } from 'react-redux';
|
||||
import { IReduxState } from '../../../app/types';
|
||||
import { translate } from '../../../base/i18n/functions';
|
||||
import { IconPlay } from '../../../base/icons/svg';
|
||||
import { getLocalParticipant } from '../../../base/participants/functions';
|
||||
import AbstractButton, { IProps as AbstractButtonProps } from '../../../base/toolbox/components/AbstractButton';
|
||||
import { toggleSharedVideo } from '../../actions.any';
|
||||
import { toggleSharedVideo } from '../../actions';
|
||||
import { isSharingStatus } from '../../functions';
|
||||
|
||||
interface IProps extends AbstractButtonProps {
|
||||
@@ -83,16 +84,14 @@ class SharedVideoButton extends AbstractButton<IProps> {
|
||||
* @returns {IProps}
|
||||
*/
|
||||
function _mapStateToProps(state: IReduxState) {
|
||||
const {
|
||||
disabled: sharedVideoBtnDisabled,
|
||||
status: sharedVideoStatus
|
||||
} = state['features/shared-video'];
|
||||
const { ownerId, status: sharedVideoStatus } = state['features/shared-video'];
|
||||
const localParticipantId = getLocalParticipant(state)?.id;
|
||||
const isSharing = isSharingStatus(sharedVideoStatus ?? '');
|
||||
|
||||
return {
|
||||
_isDisabled: Boolean(sharedVideoBtnDisabled),
|
||||
_sharingVideo: isSharingStatus(sharedVideoStatus ?? '')
|
||||
_isDisabled: isSharing && ownerId !== localParticipantId,
|
||||
_sharingVideo: isSharing
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
export default translate(connect(_mapStateToProps)(SharedVideoButton));
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
import './middleware.any';
|
||||
@@ -22,7 +22,7 @@ import {
|
||||
setAllowedUrlDomians,
|
||||
setSharedVideoStatus,
|
||||
showConfirmPlayingDialog
|
||||
} from './actions.any';
|
||||
} from './actions';
|
||||
import {
|
||||
DEFAULT_ALLOWED_URL_DOMAINS,
|
||||
PLAYBACK_START,
|
||||
@@ -1,41 +0,0 @@
|
||||
import { CONFERENCE_JOIN_IN_PROGRESS } from '../base/conference/actionTypes';
|
||||
import { getLocalParticipant } from '../base/participants/functions';
|
||||
import MiddlewareRegistry from '../base/redux/MiddlewareRegistry';
|
||||
|
||||
import { setDisableButton } from './actions.web';
|
||||
import { PLAYBACK_STATUSES, SHARED_VIDEO } from './constants';
|
||||
import { isSharedVideoEnabled } from './functions';
|
||||
|
||||
import './middleware.any';
|
||||
|
||||
MiddlewareRegistry.register(({ dispatch, getState }) => next => action => {
|
||||
const state = getState();
|
||||
const localParticipantId = getLocalParticipant(state)?.id;
|
||||
|
||||
switch (action.type) {
|
||||
case CONFERENCE_JOIN_IN_PROGRESS: {
|
||||
if (!isSharedVideoEnabled(state)) {
|
||||
break;
|
||||
}
|
||||
|
||||
const { conference } = action;
|
||||
|
||||
conference.addCommandListener(SHARED_VIDEO, ({ attributes }: { attributes:
|
||||
{ from: string; state: string; }; }) => {
|
||||
const { from } = attributes;
|
||||
const status = attributes.state;
|
||||
|
||||
if (status === PLAYBACK_STATUSES.PLAYING) {
|
||||
if (localParticipantId !== from) {
|
||||
dispatch(setDisableButton(true));
|
||||
}
|
||||
} else if (status === 'stop') {
|
||||
dispatch(setDisableButton(false));
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return next(action);
|
||||
});
|
||||
@@ -4,7 +4,6 @@ import {
|
||||
RESET_SHARED_VIDEO_STATUS,
|
||||
SET_ALLOWED_URL_DOMAINS,
|
||||
SET_CONFIRM_SHOW_VIDEO,
|
||||
SET_DISABLE_BUTTON,
|
||||
SET_SHARED_VIDEO_STATUS
|
||||
} from './actionTypes';
|
||||
import { DEFAULT_ALLOWED_URL_DOMAINS } from './constants';
|
||||
@@ -16,7 +15,6 @@ const initialState = {
|
||||
export interface ISharedVideoState {
|
||||
allowedUrlDomains: Array<string>;
|
||||
confirmShowVideo?: boolean;
|
||||
disabled?: boolean;
|
||||
muted?: boolean;
|
||||
ownerId?: string;
|
||||
status?: string;
|
||||
@@ -30,7 +28,7 @@ export interface ISharedVideoState {
|
||||
*/
|
||||
ReducerRegistry.register<ISharedVideoState>('features/shared-video',
|
||||
(state = initialState, action): ISharedVideoState => {
|
||||
const { videoUrl, status, time, ownerId, disabled, muted, volume } = action;
|
||||
const { videoUrl, status, time, ownerId, muted, volume } = action;
|
||||
|
||||
switch (action.type) {
|
||||
case RESET_SHARED_VIDEO_STATUS:
|
||||
@@ -55,12 +53,6 @@ ReducerRegistry.register<ISharedVideoState>('features/shared-video',
|
||||
volume
|
||||
};
|
||||
|
||||
case SET_DISABLE_BUTTON:
|
||||
return {
|
||||
...state,
|
||||
disabled
|
||||
};
|
||||
|
||||
case SET_ALLOWED_URL_DOMAINS: {
|
||||
return {
|
||||
...state,
|
||||
|
||||
@@ -9,7 +9,7 @@ import { isWhiteboardParticipant } from '../../../base/participants/functions';
|
||||
import { IParticipant } from '../../../base/participants/types';
|
||||
import ContextMenu from '../../../base/ui/components/web/ContextMenu';
|
||||
import ContextMenuItemGroup from '../../../base/ui/components/web/ContextMenuItemGroup';
|
||||
import { stopSharedVideo } from '../../../shared-video/actions.any';
|
||||
import { stopSharedVideo } from '../../../shared-video/actions';
|
||||
import { getParticipantMenuButtonsWithNotifyClick, showOverflowDrawer } from '../../../toolbox/functions.web';
|
||||
import { NOTIFY_CLICK_MODE } from '../../../toolbox/types';
|
||||
import { setWhiteboardOpen } from '../../../whiteboard/actions';
|
||||
|
||||
Reference in New Issue
Block a user