diff --git a/src/components/syncPlay/core/Helper.js b/src/components/syncPlay/core/Helper.js index 53b47c47d..95d34b7b1 100644 --- a/src/components/syncPlay/core/Helper.js +++ b/src/components/syncPlay/core/Helper.js @@ -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'); } -/** - * 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) { if (query.Ids && query.Ids.split(',').length === 1) { const itemId = query.Ids.split(','); diff --git a/src/components/syncPlay/core/Manager.js b/src/components/syncPlay/core/Manager.js index f792fee09..70513b3b3 100644 --- a/src/components/syncPlay/core/Manager.js +++ b/src/components/syncPlay/core/Manager.js @@ -9,6 +9,8 @@ import TimeSyncCore from './timeSync/TimeSyncCore'; import PlaybackCore from './PlaybackCore'; import QueueCore from './QueueCore'; import Controller from './Controller'; +import toast from '../../toast/toast'; +import globalize from '../../../scripts/globalize'; /** * Class that manages the SyncPlay feature. @@ -183,17 +185,17 @@ class Manager { this.queueCore.updatePlayQueue(apiClient, cmd.Data); break; case 'UserJoined': - Helper.showMessage(this, 'MessageSyncPlayUserJoined', [cmd.Data]); + toast(globalize.translate('MessageSyncPlayUserJoined', cmd.Data)); break; case 'UserLeft': - Helper.showMessage(this, 'MessageSyncPlayUserLeft', [cmd.Data]); + toast(globalize.translate('MessageSyncPlayUserLeft', cmd.Data)); break; case 'GroupJoined': cmd.Data.LastUpdatedAt = new Date(cmd.Data.LastUpdatedAt); this.enableSyncPlay(apiClient, cmd.Data, true); break; case 'SyncPlayIsDisabled': - Helper.showMessage(this, 'MessageSyncPlayIsDisabled'); + toast(globalize.translate('MessageSyncPlayIsDisabled')); break; case 'NotInGroup': case 'GroupLeft': @@ -208,16 +210,16 @@ class Manager { console.debug(`SyncPlay processGroupUpdate: state changed to ${cmd.Data.State} because ${cmd.Data.Reason}.`); break; case 'GroupDoesNotExist': - Helper.showMessage(this, 'MessageSyncPlayGroupDoesNotExist'); + toast(globalize.translate('MessageSyncPlayGroupDoesNotExist')); break; case 'CreateGroupDenied': - Helper.showMessage(this, 'MessageSyncPlayCreateGroupDenied'); + toast(globalize.translate('MessageSyncPlayCreateGroupDenied')); break; case 'JoinGroupDenied': - Helper.showMessage(this, 'MessageSyncPlayJoinGroupDenied'); + toast(globalize.translate('MessageSyncPlayJoinGroupDenied')); break; case 'LibraryAccessDenied': - Helper.showMessage(this, 'MessageSyncPlayLibraryAccessDenied'); + toast(globalize.translate('MessageSyncPlayLibraryAccessDenied')); break; default: console.error(`SyncPlay processGroupUpdate: command ${cmd.Type} not recognised.`); @@ -371,7 +373,7 @@ class Manager { this.timeSyncCore.forceUpdate(); if (showMessage) { - Helper.showMessage(this, 'MessageSyncPlayEnabled'); + toast(globalize.translate('MessageSyncPlayEnabled')); } } @@ -390,7 +392,7 @@ class Manager { this.playerWrapper.unbindFromPlayer(); if (showMessage) { - Helper.showMessage(this, 'MessageSyncPlayDisabled'); + toast(globalize.translate('MessageSyncPlayDisabled')); } } diff --git a/src/components/syncPlay/core/QueueCore.js b/src/components/syncPlay/core/QueueCore.js index ba9bb754f..30fddf5f2 100644 --- a/src/components/syncPlay/core/QueueCore.js +++ b/src/components/syncPlay/core/QueueCore.js @@ -3,6 +3,8 @@ * @module components/syncPlay/core/QueueCore */ +import globalize from '../../../scripts/globalize'; +import toast from '../../toast/toast'; import * as Helper from './Helper'; /** @@ -185,7 +187,7 @@ class QueueCore { }).catch((error) => { console.error('Error while waiting for `playbackstart` event!', origin, error); if (!this.manager.isSyncPlayEnabled()) { - Helper.showMessage(this.manager, 'MessageSyncPlayErrorMedia'); + toast(globalize.translate('MessageSyncPlayErrorMedia')); } this.manager.haltGroupPlayback(apiClient); @@ -234,7 +236,7 @@ class QueueCore { this.scheduleReadyRequestOnPlaybackStart(apiClient, 'startPlayback'); }).catch((error) => { console.error(error); - Helper.showMessage(this.manager, 'MessageSyncPlayErrorMedia'); + toast(globalize.translate('MessageSyncPlayErrorMedia')); }); } diff --git a/src/components/syncPlay/ui/syncPlayToasts.js b/src/components/syncPlay/ui/syncPlayToasts.js deleted file mode 100644 index 8c8d4c085..000000000 --- a/src/components/syncPlay/ui/syncPlayToasts.js +++ /dev/null @@ -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; diff --git a/src/scripts/site.js b/src/scripts/site.js index ba11ef33d..2b8e110d3 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -33,7 +33,6 @@ import '../legacy/focusPreventScroll'; import '../legacy/vendorStyles'; import SyncPlay from '../components/syncPlay/core'; import { playbackManager } from '../components/playback/playbackmanager'; -import SyncPlayToasts from '../components/syncPlay/ui/syncPlayToasts'; import SyncPlayNoActivePlayer from '../components/syncPlay/ui/players/NoActivePlayer'; import SyncPlayHtmlVideoPlayer from '../components/syncPlay/ui/players/HtmlVideoPlayer'; import SyncPlayHtmlAudioPlayer from '../components/syncPlay/ui/players/HtmlAudioPlayer'; @@ -169,7 +168,6 @@ function initSyncPlay() { // Start SyncPlay. const apiClient = ServerConnections.currentApiClient(); if (apiClient) SyncPlay.Manager.init(apiClient); - SyncPlayToasts.init(); // FIXME: Multiple apiClients? Events.on(ServerConnections, 'apiclientcreated', (e, newApiClient) => SyncPlay.Manager.init(newApiClient));