1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Remove SyncPlayToasts abstraction

This commit is contained in:
Bill Thornton 2021-05-26 14:28:54 -04:00
parent dc294a5a4b
commit 9913f95945
5 changed files with 15 additions and 60 deletions

View file

@ -72,19 +72,6 @@ export function stringToGuid(input) {
return input.replace(/([0-z]{8})([0-z]{4})([0-z]{4})([0-z]{4})([0-z]{12})/, '$1-$2-$3-$4-$5'); return input.replace(/([0-z]{8})([0-z]{4})([0-z]{4})([0-z]{4})([0-z]{12})/, '$1-$2-$3-$4-$5');
} }
/**
* Triggers a show-message event.
* @param {Object} syncPlayManager The SyncPlay manager.
* @param {string} message The message name.
* @param {Array} args Extra data needed for the message, optional.
*/
export function showMessage(syncPlayManager, message, args = []) {
Events.trigger(syncPlayManager, 'show-message', [{
message: message,
args: args
}]);
}
export function getItemsForPlayback(apiClient, query) { export function getItemsForPlayback(apiClient, query) {
if (query.Ids && query.Ids.split(',').length === 1) { if (query.Ids && query.Ids.split(',').length === 1) {
const itemId = query.Ids.split(','); const itemId = query.Ids.split(',');

View file

@ -9,6 +9,8 @@ import TimeSyncCore from './timeSync/TimeSyncCore';
import PlaybackCore from './PlaybackCore'; import PlaybackCore from './PlaybackCore';
import QueueCore from './QueueCore'; import QueueCore from './QueueCore';
import Controller from './Controller'; import Controller from './Controller';
import toast from '../../toast/toast';
import globalize from '../../../scripts/globalize';
/** /**
* Class that manages the SyncPlay feature. * Class that manages the SyncPlay feature.
@ -183,17 +185,17 @@ class Manager {
this.queueCore.updatePlayQueue(apiClient, cmd.Data); this.queueCore.updatePlayQueue(apiClient, cmd.Data);
break; break;
case 'UserJoined': case 'UserJoined':
Helper.showMessage(this, 'MessageSyncPlayUserJoined', [cmd.Data]); toast(globalize.translate('MessageSyncPlayUserJoined', cmd.Data));
break; break;
case 'UserLeft': case 'UserLeft':
Helper.showMessage(this, 'MessageSyncPlayUserLeft', [cmd.Data]); toast(globalize.translate('MessageSyncPlayUserLeft', cmd.Data));
break; break;
case 'GroupJoined': case 'GroupJoined':
cmd.Data.LastUpdatedAt = new Date(cmd.Data.LastUpdatedAt); cmd.Data.LastUpdatedAt = new Date(cmd.Data.LastUpdatedAt);
this.enableSyncPlay(apiClient, cmd.Data, true); this.enableSyncPlay(apiClient, cmd.Data, true);
break; break;
case 'SyncPlayIsDisabled': case 'SyncPlayIsDisabled':
Helper.showMessage(this, 'MessageSyncPlayIsDisabled'); toast(globalize.translate('MessageSyncPlayIsDisabled'));
break; break;
case 'NotInGroup': case 'NotInGroup':
case 'GroupLeft': case 'GroupLeft':
@ -208,16 +210,16 @@ class Manager {
console.debug(`SyncPlay processGroupUpdate: state changed to ${cmd.Data.State} because ${cmd.Data.Reason}.`); console.debug(`SyncPlay processGroupUpdate: state changed to ${cmd.Data.State} because ${cmd.Data.Reason}.`);
break; break;
case 'GroupDoesNotExist': case 'GroupDoesNotExist':
Helper.showMessage(this, 'MessageSyncPlayGroupDoesNotExist'); toast(globalize.translate('MessageSyncPlayGroupDoesNotExist'));
break; break;
case 'CreateGroupDenied': case 'CreateGroupDenied':
Helper.showMessage(this, 'MessageSyncPlayCreateGroupDenied'); toast(globalize.translate('MessageSyncPlayCreateGroupDenied'));
break; break;
case 'JoinGroupDenied': case 'JoinGroupDenied':
Helper.showMessage(this, 'MessageSyncPlayJoinGroupDenied'); toast(globalize.translate('MessageSyncPlayJoinGroupDenied'));
break; break;
case 'LibraryAccessDenied': case 'LibraryAccessDenied':
Helper.showMessage(this, 'MessageSyncPlayLibraryAccessDenied'); toast(globalize.translate('MessageSyncPlayLibraryAccessDenied'));
break; break;
default: default:
console.error(`SyncPlay processGroupUpdate: command ${cmd.Type} not recognised.`); console.error(`SyncPlay processGroupUpdate: command ${cmd.Type} not recognised.`);
@ -371,7 +373,7 @@ class Manager {
this.timeSyncCore.forceUpdate(); this.timeSyncCore.forceUpdate();
if (showMessage) { if (showMessage) {
Helper.showMessage(this, 'MessageSyncPlayEnabled'); toast(globalize.translate('MessageSyncPlayEnabled'));
} }
} }
@ -390,7 +392,7 @@ class Manager {
this.playerWrapper.unbindFromPlayer(); this.playerWrapper.unbindFromPlayer();
if (showMessage) { if (showMessage) {
Helper.showMessage(this, 'MessageSyncPlayDisabled'); toast(globalize.translate('MessageSyncPlayDisabled'));
} }
} }

View file

@ -3,6 +3,8 @@
* @module components/syncPlay/core/QueueCore * @module components/syncPlay/core/QueueCore
*/ */
import globalize from '../../../scripts/globalize';
import toast from '../../toast/toast';
import * as Helper from './Helper'; import * as Helper from './Helper';
/** /**
@ -185,7 +187,7 @@ class QueueCore {
}).catch((error) => { }).catch((error) => {
console.error('Error while waiting for `playbackstart` event!', origin, error); console.error('Error while waiting for `playbackstart` event!', origin, error);
if (!this.manager.isSyncPlayEnabled()) { if (!this.manager.isSyncPlayEnabled()) {
Helper.showMessage(this.manager, 'MessageSyncPlayErrorMedia'); toast(globalize.translate('MessageSyncPlayErrorMedia'));
} }
this.manager.haltGroupPlayback(apiClient); this.manager.haltGroupPlayback(apiClient);
@ -234,7 +236,7 @@ class QueueCore {
this.scheduleReadyRequestOnPlaybackStart(apiClient, 'startPlayback'); this.scheduleReadyRequestOnPlaybackStart(apiClient, 'startPlayback');
}).catch((error) => { }).catch((error) => {
console.error(error); console.error(error);
Helper.showMessage(this.manager, 'MessageSyncPlayErrorMedia'); toast(globalize.translate('MessageSyncPlayErrorMedia'));
}); });
} }

View file

@ -1,34 +0,0 @@
/**
* Module that notifies user about SyncPlay messages using toasts.
* @module components/syncPlay/syncPlayToasts
*/
import { Events } from 'jellyfin-apiclient';
import toast from '../../toast/toast';
import globalize from '../../../scripts/globalize';
import SyncPlay from '../core';
/**
* Class that notifies user about SyncPlay messages using toasts.
*/
class SyncPlayToasts {
constructor() {
// Do nothing.
}
/**
* Listens for messages to show.
*/
init() {
Events.on(SyncPlay.Manager, 'show-message', (event, data) => {
const { message, args = [] } = data;
toast({
text: globalize.translate(message, ...args)
});
});
}
}
/** SyncPlayToasts singleton. */
const syncPlayToasts = new SyncPlayToasts();
export default syncPlayToasts;

View file

@ -33,7 +33,6 @@ import '../legacy/focusPreventScroll';
import '../legacy/vendorStyles'; import '../legacy/vendorStyles';
import SyncPlay from '../components/syncPlay/core'; import SyncPlay from '../components/syncPlay/core';
import { playbackManager } from '../components/playback/playbackmanager'; import { playbackManager } from '../components/playback/playbackmanager';
import SyncPlayToasts from '../components/syncPlay/ui/syncPlayToasts';
import SyncPlayNoActivePlayer from '../components/syncPlay/ui/players/NoActivePlayer'; import SyncPlayNoActivePlayer from '../components/syncPlay/ui/players/NoActivePlayer';
import SyncPlayHtmlVideoPlayer from '../components/syncPlay/ui/players/HtmlVideoPlayer'; import SyncPlayHtmlVideoPlayer from '../components/syncPlay/ui/players/HtmlVideoPlayer';
import SyncPlayHtmlAudioPlayer from '../components/syncPlay/ui/players/HtmlAudioPlayer'; import SyncPlayHtmlAudioPlayer from '../components/syncPlay/ui/players/HtmlAudioPlayer';
@ -169,7 +168,6 @@ function initSyncPlay() {
// Start SyncPlay. // Start SyncPlay.
const apiClient = ServerConnections.currentApiClient(); const apiClient = ServerConnections.currentApiClient();
if (apiClient) SyncPlay.Manager.init(apiClient); if (apiClient) SyncPlay.Manager.init(apiClient);
SyncPlayToasts.init();
// FIXME: Multiple apiClients? // FIXME: Multiple apiClients?
Events.on(ServerConnections, 'apiclientcreated', (e, newApiClient) => SyncPlay.Manager.init(newApiClient)); Events.on(ServerConnections, 'apiclientcreated', (e, newApiClient) => SyncPlay.Manager.init(newApiClient));