diff --git a/.eslintrc.js b/.eslintrc.js index 324f3d3e44..cd714d6791 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -59,7 +59,8 @@ module.exports = { 'no-var': ['error'], 'space-before-blocks': ['error'], 'space-infix-ops': 'error', - 'yoda': 'error' + 'yoda': 'error', + 'no-void': ['error', { "allowAsStatement": true }] }, settings: { react: { diff --git a/src/components/accessSchedule/accessSchedule.js b/src/components/accessSchedule/accessSchedule.js index 38f0491850..4253247fa4 100644 --- a/src/components/accessSchedule/accessSchedule.js +++ b/src/components/accessSchedule/accessSchedule.js @@ -51,7 +51,8 @@ import template from './accessSchedule.template.html'; }; if (parseFloat(updatedSchedule.StartHour) >= parseFloat(updatedSchedule.EndHour)) { - return void alert(globalize.translate('ErrorStartHourGreaterThanEnd')); + alert(globalize.translate('ErrorStartHourGreaterThanEnd')); + return; } context.submitted = true; diff --git a/src/components/groupedcards.js b/src/components/groupedcards.js index 63cc39f99a..a90423a6b0 100644 --- a/src/components/groupedcards.js +++ b/src/components/groupedcards.js @@ -23,7 +23,8 @@ import ServerConnections from './ServerConnections'; if (!actionableParent || actionableParent.classList.contains('cardContent')) { apiClient.getJSON(apiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) { if (items.length === 1) { - return void appRouter.showItem(items[0]); + appRouter.showItem(items[0]); + return; } const url = 'details?id=' + itemId + '&serverId=' + serverId; diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.js b/src/components/libraryoptionseditor/libraryoptionseditor.js index 59478280a9..597d747840 100644 --- a/src/components/libraryoptionseditor/libraryoptionseditor.js +++ b/src/components/libraryoptionseditor/libraryoptionseditor.js @@ -323,7 +323,8 @@ import template from './libraryoptionseditor.template.html'; function onImageFetchersContainerClick(e) { const btnImageOptionsForType = dom.parentWithClass(e.target, 'btnImageOptionsForType'); if (btnImageOptionsForType) { - return void showImageOptionsForType(dom.parentWithClass(btnImageOptionsForType, 'imageFetcher').getAttribute('data-type')); + showImageOptionsForType(dom.parentWithClass(btnImageOptionsForType, 'imageFetcher').getAttribute('data-type')); + return; } onSortableContainerClick.call(this, e); } diff --git a/src/components/tvproviders/schedulesdirect.js b/src/components/tvproviders/schedulesdirect.js index a9135ad76c..239831ad8a 100644 --- a/src/components/tvproviders/schedulesdirect.js +++ b/src/components/tvproviders/schedulesdirect.js @@ -122,9 +122,10 @@ export default function (page, providerId, options) { const selectedListingsId = $('#selectListing', page).val(); if (!selectedListingsId) { - return void Dashboard.alert({ + Dashboard.alert({ message: globalize.translate('ErrorPleaseSelectLineup') }); + return; } loading.show(); @@ -168,7 +169,8 @@ export default function (page, providerId, options) { function refreshListings(value) { if (!value) { - return void $('#selectListing', page).html(''); + $('#selectListing', page).html(''); + return; } loading.show(); diff --git a/src/controllers/dashboard/dashboard.js b/src/controllers/dashboard/dashboard.js index b3cf1c0cde..a6fe46b295 100644 --- a/src/controllers/dashboard/dashboard.js +++ b/src/controllers/dashboard/dashboard.js @@ -175,7 +175,8 @@ import confirm from '../../components/confirm/confirm'; if (!result.Items.length) { view.querySelector('.activeRecordingsSection').classList.add('hide'); - return void(itemsContainer.innerHTML = ''); + itemsContainer.innerHTML = ''; + return; } view.querySelector('.activeRecordingsSection').classList.remove('hide'); diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 3f9448d5ad..ea01ea74e3 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -140,7 +140,8 @@ function renderSeriesTimerSchedule(page, apiClient, seriesTimerId) { function renderTimerEditor(page, item, apiClient, user) { if (item.Type !== 'Recording' || !user.Policy.EnableLiveTvManagement || !item.TimerId || item.Status !== 'InProgress') { - return void hideAll(page, 'btnCancelTimer'); + hideAll(page, 'btnCancelTimer'); + return; } hideAll(page, 'btnCancelTimer', true); @@ -148,7 +149,8 @@ function renderTimerEditor(page, item, apiClient, user) { function renderSeriesTimerEditor(page, item, apiClient, user) { if (item.Type !== 'SeriesTimer') { - return void hideAll(page, 'btnCancelSeriesTimer'); + hideAll(page, 'btnCancelSeriesTimer'); + return; } if (user.Policy.EnableLiveTvManagement) { @@ -160,11 +162,13 @@ function renderSeriesTimerEditor(page, item, apiClient, user) { page.querySelector('.seriesTimerScheduleSection').classList.remove('hide'); hideAll(page, 'btnCancelSeriesTimer', true); - return void renderSeriesTimerSchedule(page, apiClient, item.Id); + renderSeriesTimerSchedule(page, apiClient, item.Id); + return; } page.querySelector('.seriesTimerScheduleSection').classList.add('hide'); - return void hideAll(page, 'btnCancelSeriesTimer'); + hideAll(page, 'btnCancelSeriesTimer'); + return; } function renderTrackSelections(page, instance, item, forceReload) { @@ -808,7 +812,8 @@ function renderNextUp(page, item, user) { const section = page.querySelector('.nextUpSection'); if (item.Type != 'Series') { - return void section.classList.add('hide'); + section.classList.add('hide'); + return; } ServerConnections.getApiClient(item.ServerId).getNextUpEpisodes({ @@ -1115,7 +1120,8 @@ function renderMoreFromSeason(view, item, apiClient) { if (section) { if (item.Type !== 'Episode' || !item.SeasonId || !item.SeriesId) { - return void section.classList.add('hide'); + section.classList.add('hide'); + return; } const userId = apiClient.getCurrentUserId(); @@ -1125,7 +1131,8 @@ function renderMoreFromSeason(view, item, apiClient) { Fields: 'ItemCounts,PrimaryImageAspectRatio,BasicSyncInfo,CanDelete,MediaSourceCount' }).then(function (result) { if (result.Items.length < 2) { - return void section.classList.add('hide'); + section.classList.add('hide'); + return; } section.classList.remove('hide'); @@ -1160,10 +1167,12 @@ function renderMoreFromArtist(view, item, apiClient) { if (section) { if (item.Type === 'MusicArtist') { if (!apiClient.isMinServerVersion('3.4.1.19')) { - return void section.classList.add('hide'); + section.classList.add('hide'); + return; } } else if (item.Type !== 'MusicAlbum' || !item.AlbumArtists || !item.AlbumArtists.length) { - return void section.classList.add('hide'); + section.classList.add('hide'); + return; } const query = { @@ -1182,7 +1191,8 @@ function renderMoreFromArtist(view, item, apiClient) { apiClient.getItems(apiClient.getCurrentUserId(), query).then(function (result) { if (!result.Items.length) { - return void section.classList.add('hide'); + section.classList.add('hide'); + return; } section.classList.remove('hide'); @@ -1216,7 +1226,8 @@ function renderSimilarItems(page, item, context) { if (similarCollapsible) { if (item.Type != 'Movie' && item.Type != 'Trailer' && item.Type != 'Series' && item.Type != 'Program' && item.Type != 'Recording' && item.Type != 'MusicAlbum' && item.Type != 'MusicArtist' && item.Type != 'Playlist') { - return void similarCollapsible.classList.add('hide'); + similarCollapsible.classList.add('hide'); + return; } similarCollapsible.classList.remove('hide'); @@ -1233,7 +1244,8 @@ function renderSimilarItems(page, item, context) { apiClient.getSimilarItems(item.Id, options).then(function (result) { if (!result.Items.length) { - return void similarCollapsible.classList.add('hide'); + similarCollapsible.classList.add('hide'); + return; } similarCollapsible.classList.remove('hide'); @@ -1820,7 +1832,8 @@ function renderCast(page, item) { }); if (!people.length) { - return void page.querySelector('#castCollapsible').classList.add('hide'); + page.querySelector('#castCollapsible').classList.add('hide'); + return; } page.querySelector('#castCollapsible').classList.remove('hide'); @@ -1915,11 +1928,12 @@ export default function (view, params) { if (item.Type === 'Program') { const apiClient = ServerConnections.getApiClient(item.ServerId); - return void apiClient.getLiveTvChannel(item.ChannelId, apiClient.getCurrentUserId()).then(function (channel) { + apiClient.getLiveTvChannel(item.ChannelId, apiClient.getCurrentUserId()).then(function (channel) { playbackManager.play({ items: [channel] }); }); + return; } playItem(item, item.UserData && mode === 'resume' ? item.UserData.PlaybackPositionTicks : 0); diff --git a/src/controllers/list.js b/src/controllers/list.js index fb11a48ae5..b880502828 100644 --- a/src/controllers/list.js +++ b/src/controllers/list.js @@ -721,7 +721,7 @@ class ItemsView { return globalize.translate('Videos'); } - return void 0; + return; } function play() { diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index 7b408a566a..a4c29d1268 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -55,14 +55,16 @@ import LibraryMenu from '../../../scripts/libraryMenu'; recordingButtonManager = null; } - return void view.querySelector('.btnRecord').classList.add('hide'); + view.querySelector('.btnRecord').classList.add('hide'); + return; } ServerConnections.getApiClient(item.ServerId).getCurrentUser().then(function (user) { if (user.Policy.EnableLiveTvManagement) { import('../../../components/recordingcreator/recordingbutton').then(({default: RecordingButton}) => { if (recordingButtonManager) { - return void recordingButtonManager.refreshItem(item); + recordingButtonManager.refreshItem(item); + return; } recordingButtonManager = new RecordingButton({ @@ -1450,7 +1452,8 @@ import LibraryMenu from '../../../scripts/libraryMenu'; /* eslint-disable-next-line compat/compat */ dom.addEventListener(view, window.PointerEvent ? 'pointerdown' : 'click', function (e) { if (dom.parentWithClass(e.target, ['videoOsdBottom', 'upNextContainer'])) { - return void showOsd(); + showOsd(); + return; } const pointerType = e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse'); diff --git a/src/controllers/session/forgotPassword/index.js b/src/controllers/session/forgotPassword/index.js index 344f5c9e1b..208e54d063 100644 --- a/src/controllers/session/forgotPassword/index.js +++ b/src/controllers/session/forgotPassword/index.js @@ -5,17 +5,19 @@ import Dashboard from '../../../utils/dashboard'; function processForgotPasswordResult(result) { if (result.Action == 'ContactAdmin') { - return void Dashboard.alert({ + Dashboard.alert({ message: globalize.translate('MessageContactAdminToResetPassword'), title: globalize.translate('ButtonForgotPassword') }); + return; } if (result.Action == 'InNetworkRequired') { - return void Dashboard.alert({ + Dashboard.alert({ message: globalize.translate('MessageForgotPasswordInNetworkRequired'), title: globalize.translate('ButtonForgotPassword') }); + return; } if (result.Action == 'PinCode') { @@ -26,13 +28,14 @@ import Dashboard from '../../../utils/dashboard'; msg += '
'; msg += result.PinFile; msg += '
'; - return void Dashboard.alert({ + Dashboard.alert({ message: msg, title: globalize.translate('ButtonForgotPassword'), callback: function () { Dashboard.navigate('forgotpasswordpin.html'); } }); + return; } } diff --git a/src/controllers/session/resetPassword/index.js b/src/controllers/session/resetPassword/index.js index c954bb4510..ef311ff88c 100644 --- a/src/controllers/session/resetPassword/index.js +++ b/src/controllers/session/resetPassword/index.js @@ -9,13 +9,14 @@ import Dashboard from '../../../utils/dashboard'; msg += '
'; msg += '
'; msg += result.UsersReset.join('
'); - return void Dashboard.alert({ + Dashboard.alert({ message: msg, title: globalize.translate('HeaderPasswordReset'), callback: function () { window.location.href = 'index.html'; } }); + return; } Dashboard.alert({ diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index e33f9f5d1f..f80c1ca30c 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -646,7 +646,8 @@ import { getParameterByName } from '../utils/url.ts'; if (!user) { showBySelector('.libraryMenuDownloads', false); showBySelector('.lnkSyncToOtherDevices', false); - return void showBySelector('.userMenuOptions', false); + showBySelector('.userMenuOptions', false); + return; } if (user.Policy.EnableContentDownloading) { @@ -958,7 +959,8 @@ import { getParameterByName } from '../utils/url.ts'; function setTitle (title) { if (title == null) { - return void LibraryMenu.setDefaultTitle(); + LibraryMenu.setDefaultTitle(); + return; } if (title === '-') {