logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://anongit.hacktivis.me/git/pleroma-fe.git/
commit: d1ea5895314220288d2e1b41024caccfbb351621
parent d9aca590bbee3b416e362fc8ada93a66cdbebbe0
Author: Henry Jameson <me@hjkos.com>
Date:   Tue,  4 Feb 2025 15:23:21 +0200

manual lint --fix

Diffstat:

Msrc/App.js4++--
Msrc/boot/after_store.js2+-
Msrc/boot/routes.js2+-
Msrc/components/attachment/attachment.js4++--
Msrc/components/chat_list_item/chat_list_item.js2+-
Msrc/components/checkbox/checkbox.vue2+-
Msrc/components/conversation/conversation.js13+++++--------
Msrc/components/emoji_input/emoji_input.js2+-
Msrc/components/emoji_input/suggestor.js2--
Msrc/components/emoji_picker/emoji_picker.js2+-
Msrc/components/emoji_reactions/emoji_reactions.js2+-
Msrc/components/list/list.vue2+-
Msrc/components/lists_edit/lists_edit.js4++--
Msrc/components/mention_link/mention_link.js2++
Msrc/components/modal/modal.vue1+
Msrc/components/moderation_tools/moderation_tools.js2+-
Msrc/components/palette_editor/palette_editor.vue4++--
Msrc/components/poll/poll.js2+-
Msrc/components/poll/poll_form.js2+-
Msrc/components/popover/popover.js14+++++++-------
Msrc/components/post_status_form/post_status_form.js8++++----
Msrc/components/remote_follow/remote_follow.js1-
Msrc/components/settings_modal/admin_tabs/emoji_tab.js8++++----
Msrc/components/settings_modal/tabs/appearance_tab.js10+++++-----
Msrc/components/settings_modal/tabs/data_import_export_tab.js3+--
Msrc/components/settings_modal/tabs/mutes_and_blocks_tab.js3+--
Msrc/components/settings_modal/tabs/profile_tab.js7+++----
Msrc/components/settings_modal/tabs/security_tab/mfa.js2+-
Msrc/components/settings_modal/tabs/security_tab/security_tab.js2+-
Msrc/components/settings_modal/tabs/style_tab/style_tab.js6+++---
Msrc/components/settings_modal/tabs/theme_tab/theme_tab.js6+++---
Msrc/components/shadow_control/shadow_control.js2+-
Msrc/components/shout_panel/shout_panel.js2+-
Msrc/components/status_action_buttons/buttons_definitions.js6+++---
Msrc/components/status_popover/status_popover.js4++--
Msrc/components/thread_tree/thread_tree.js2+-
Msrc/components/timeline/timeline.js2+-
Msrc/components/user_card/user_card.js1-
Msrc/components/user_list_menu/user_list_menu.js2+-
Msrc/components/video_attachment/video_attachment.js2+-
Msrc/components/who_to_follow/who_to_follow.js2+-
Msrc/components/who_to_follow_panel/who_to_follow_panel.js4++--
Msrc/i18n/service_worker_messages.js1-
Msrc/lib/event_target_polyfill.js10++++++----
Msrc/main.js1+
Msrc/modules/adminSettings.js12++++++------
Msrc/modules/api.js4++--
Msrc/modules/auth_flow.js18+++++++++---------
Msrc/modules/chats.js22+++++++++++-----------
Msrc/modules/config.js12++++++------
Msrc/modules/notifications.js15+++++++++------
Msrc/modules/profileConfig.js2+-
Msrc/modules/serverSideStorage.js15++++++++++-----
Msrc/modules/statuses.js24++++++++++++------------
Msrc/modules/users.js4++--
Msrc/services/desktop_notification_utils/desktop_notification_utils.js2+-
Msrc/services/errors/errors.js2+-
Msrc/services/export_import/export_import.js2+-
Msrc/services/follow_manipulate/follow_manipulate.js4++--
Msrc/services/gesture_service/gesture_service.js2+-
Msrc/services/html_converter/utility.service.js2+-
Msrc/services/lists_fetcher/lists_fetcher.service.js2+-
Msrc/services/style_setter/style_setter.js14+++++++-------
Msrc/services/sw/sw.js2+-
Msrc/services/theme_data/iss_deserializer.js2+-
Msrc/services/theme_data/iss_serializer.js2+-
Msrc/services/theme_data/iss_utils.js2+-
Msrc/services/theme_data/theme3_slot_functions.js2+-
Msrc/services/theme_data/theme_data.service.js18+++++++++---------
Msrc/services/theme_data/theme_data_3.service.js4++--
Msrc/stores/interface.js2+-
Msrc/stores/lists.js4++--
Msrc/stores/polls.js2+-
Msrc/sw.js2+-
Mtest/unit/specs/components/user_profile.spec.js2+-
Mtest/unit/specs/services/html_converter/html_line_converter.spec.js2+-
76 files changed, 187 insertions(+), 184 deletions(-)

diff --git a/src/App.js b/src/App.js @@ -47,10 +47,10 @@ export default { mobileActivePanel: 'timeline' }), watch: { - themeApplied (value) { + themeApplied () { this.removeSplash() }, - layoutType (value) { + layoutType () { document.getElementById('modal').classList = ['-' + this.layoutType] } }, diff --git a/src/boot/after_store.js b/src/boot/after_store.js @@ -79,7 +79,7 @@ const getInstanceConfig = async ({ store }) => { } } -const getBackendProvidedConfig = async ({ store }) => { +const getBackendProvidedConfig = async () => { try { const res = await window.fetch('/api/pleroma/frontend_configurations') if (res.ok) { diff --git a/src/boot/routes.js b/src/boot/routes.js @@ -43,7 +43,7 @@ export default (store) => { { name: 'root', path: '/', - redirect: _to => { + redirect: () => { return (store.state.users.currentUser ? store.state.instance.redirectRootLogin : store.state.instance.redirectRootNoLogin) || '/main/all' diff --git a/src/components/attachment/attachment.js b/src/components/attachment/attachment.js @@ -145,7 +145,7 @@ const Attachment = { window.open(target.href, '_blank') } }, - openModal (event) { + openModal () { if (this.useModal) { this.$emit('setMedia') useMediaViewerStore().setCurrentMedia(this.attachment) @@ -153,7 +153,7 @@ const Attachment = { window.open(this.attachment.url) } }, - openModalForce (event) { + openModalForce () { this.$emit('setMedia') useMediaViewerStore().setCurrentMedia(this.attachment) }, diff --git a/src/components/chat_list_item/chat_list_item.js b/src/components/chat_list_item/chat_list_item.js @@ -52,7 +52,7 @@ const ChatListItem = { } }, methods: { - openChat (_e) { + openChat () { if (this.chat.id) { this.$router.push({ name: 'chat', diff --git a/src/components/checkbox/checkbox.vue b/src/components/checkbox/checkbox.vue @@ -53,7 +53,7 @@ export default { } }, methods: { - onTransitionEnd (e) { + onTransitionEnd () { if (!this.indeterminate) { this.indeterminateTransitionFix = false } diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js @@ -114,7 +114,7 @@ const conversation = { suspendable () { if (this.isTreeView) { return Object.entries(this.statusContentProperties) - .every(([k, prop]) => !prop.replying && prop.mediaPlaying.length === 0) + .every(([, prop]) => !prop.replying && prop.mediaPlaying.length === 0) } if (this.$refs.statusComponent && this.$refs.statusComponent[0]) { return this.$refs.statusComponent.every(s => s.suspendable) @@ -272,11 +272,8 @@ const conversation = { }, replies () { let i = 1 - - return reduce(this.conversation, (result, { id, in_reply_to_status_id }) => { - - const irid = in_reply_to_status_id - + + return reduce(this.conversation, (result, { id, in_reply_to_status_id: irid }) => { if (irid) { result[irid] = result[irid] || [] result[irid].push({ @@ -381,7 +378,7 @@ const conversation = { this.resetDisplayState() } }, - virtualHidden (value) { + virtualHidden () { this.$store.dispatch( 'setVirtualHeight', { statusId: this.statusId, height: `${this.$el.clientHeight}px` } @@ -477,7 +474,7 @@ const conversation = { // nothing found, fall back to toplevel return this.topLevel[0] ? this.topLevel[0].id : undefined }, - diveIntoStatus (id, preventScroll) { + diveIntoStatus (id) { this.tryScrollTo(id) }, diveToTopLevel () { diff --git a/src/components/emoji_input/emoji_input.js b/src/components/emoji_input/emoji_input.js @@ -265,7 +265,7 @@ const EmojiInput = { } }, watch: { - showSuggestions: function (newValue, oldValue) { + showSuggestions: function (newValue) { this.$emit('shown', newValue) if (newValue) { this.$refs.suggestorPopover.showPopover() diff --git a/src/components/emoji_input/suggestor.js b/src/components/emoji_input/suggestor.js @@ -116,7 +116,6 @@ export const suggestUsers = ({ dispatch, state }) => { const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1 return diff + nameAlphabetically + screenNameAlphabetically - }).map((user) => ({ user, displayText: user.screen_name_ui, @@ -124,7 +123,6 @@ export const suggestUsers = ({ dispatch, state }) => { imageUrl: user.profile_image_url_original, replacement: '@' + user.screen_name + ' ' })) - suggestions = newSuggestions || [] return suggestions diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js @@ -352,7 +352,7 @@ const EmojiPicker = { }, allEmojiGroups () { return Object.entries(this.allCustomGroups) - .map(([_, v]) => v) + .map(([, v]) => v) .concat(this.unicodeEmojiGroups) }, stickerPickerEnabled () { diff --git a/src/components/emoji_reactions/emoji_reactions.js b/src/components/emoji_reactions/emoji_reactions.js @@ -71,7 +71,7 @@ const EmojiReactions = { unreact (emoji) { this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji }) }, - async emojiOnClick (emoji, event) { + async emojiOnClick (emoji) { if (!this.loggedIn) return await this.fetchEmojiReactionsByIfMissing() diff --git a/src/components/list/list.vue b/src/components/list/list.vue @@ -37,7 +37,7 @@ export default { }, getClass: { type: Function, - default: item => '' + default: () => '' }, nonInteractive: { type: Boolean, diff --git a/src/components/lists_edit/lists_edit.js b/src/components/lists_edit/lists_edit.js @@ -104,10 +104,10 @@ const ListsNew = { removeUser (userId) { useListsStore().removeListAccount({ accountId: userId, listId: this.id }) }, - onSearchLoading (results) { + onSearchLoading () { this.searchLoading = true }, - onSearchLoadingDone (results) { + onSearchLoadingDone () { this.searchLoading = false }, onSearchResults (results) { diff --git a/src/components/mention_link/mention_link.js b/src/components/mention_link/mention_link.js @@ -96,12 +96,14 @@ const MentionLink = { }, style () { if (this.highlight) { + /* eslint-disable no-unused-vars */ const { backgroundColor, backgroundPosition, backgroundImage, ...rest } = highlightStyle(this.highlight) + /* eslint-enable no-unused-vars */ return rest } }, diff --git a/src/components/modal/modal.vue b/src/components/modal/modal.vue @@ -25,6 +25,7 @@ export default { default: false } }, + emits: ['backdropClicked'], computed: { classes () { return { diff --git a/src/components/moderation_tools/moderation_tools.js b/src/components/moderation_tools/moderation_tools.js @@ -100,7 +100,7 @@ const ModerationTools = { const user = this.user const { id, name } = user store.state.api.backendInteractor.deleteUser({ user }) - .then(e => { + .then(() => { this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id) const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile' const isTargetUser = this.$route.params.name === name || this.$route.params.id === id diff --git a/src/components/palette_editor/palette_editor.vue b/src/components/palette_editor/palette_editor.vue @@ -87,7 +87,7 @@ const paletteExporter = newExporter({ }) const paletteImporter = newImporter({ accept: '.json', - onImport (parsed, filename) { + onImport (parsed) { emit('update:modelValue', parsed) } }) @@ -100,7 +100,7 @@ const importPalette = () => { paletteImporter.importData() } -const applyPalette = (data) => { +const applyPalette = () => { emit('applyPalette', getExportedObject()) } diff --git a/src/components/poll/poll.js b/src/components/poll/poll.js @@ -107,7 +107,7 @@ export default { this.loading = true usePollsStore().votePoll( { id: this.statusId, pollId: this.poll.id, choices: this.choiceIndices } - ).then(poll => { + ).then(() => { this.loading = false }) } diff --git a/src/components/poll/poll_form.js b/src/components/poll/poll_form.js @@ -105,7 +105,7 @@ export default { } return false }, - deleteOption (index, event) { + deleteOption (index) { if (this.options.length > 2) { this.options.splice(index, 1) } diff --git a/src/components/popover/popover.js b/src/components/popover/popover.js @@ -280,7 +280,7 @@ const Popover = { this.updateStyles() }, 1) }, - onMouseenter (e) { + onMouseenter () { if (this.trigger === 'hover') { this.lockReEntry = false clearTimeout(this.graceTimeout) @@ -288,12 +288,12 @@ const Popover = { this.showPopover() } }, - onMouseleave (e) { + onMouseleave () { if (this.trigger === 'hover' && this.childrenShown.size === 0) { this.graceTimeout = setTimeout(() => this.hidePopover(), 1) } }, - onMouseenterContent (e) { + onMouseenterContent () { if (this.trigger === 'hover' && !this.lockReEntry) { this.lockReEntry = true clearTimeout(this.graceTimeout) @@ -301,12 +301,12 @@ const Popover = { this.showPopover() } }, - onMouseleaveContent (e) { + onMouseleaveContent () { if (this.trigger === 'hover' && this.childrenShown.size === 0) { this.graceTimeout = setTimeout(() => this.hidePopover(), 1) } }, - onClick (e) { + onClick () { if (this.trigger === 'click') { if (this.hidden) { this.showPopover() @@ -324,10 +324,10 @@ const Popover = { this.hidePopover() if (this.parentPopover) this.parentPopover.onClickOutside(e) }, - onScroll (e) { + onScroll () { this.updateStyles() }, - onResize (e) { + onResize () { const content = this.$refs.content if (!content) return if (this.oldSize.width !== content.offsetWidth || this.oldSize.height !== content.offsetHeight) { diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js @@ -433,7 +433,7 @@ const PostStatusForm = { if (this.preview) this.previewStatus() this.saveable = false }, - async postStatus (event, newStatus, opts = {}) { + async postStatus (event, newStatus) { if (this.posting && !this.optimisticPosting) { return } if (this.disableSubmit) { return } if (this.emojiInputShown) { return } @@ -459,7 +459,7 @@ const PostStatusForm = { try { await this.setAllMediaDescriptions() - } catch (e) { + } catch { this.error = this.$t('post_status.media_description_error') this.posting = false return @@ -603,7 +603,7 @@ const PostStatusForm = { this.showDropIcon = 'hide' } }, - fileDragStop (e) { + fileDragStop () { // The false-setting is done with delay because just using leave-events // directly caused unwanted flickering, this is not perfect either but // much less noticable. @@ -618,7 +618,7 @@ const PostStatusForm = { this.showDropIcon = 'show' } }, - onEmojiInputInput (e) { + onEmojiInputInput () { this.$nextTick(() => { this.resize(this.$refs.textarea) }) diff --git a/src/components/remote_follow/remote_follow.js b/src/components/remote_follow/remote_follow.js @@ -2,7 +2,6 @@ export default { props: ['user'], computed: { subscribeUrl () { - const serverUrl = new URL(this.user.statusnet_profile_url) return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus` } diff --git a/src/components/settings_modal/admin_tabs/emoji_tab.js b/src/components/settings_modal/admin_tabs/emoji_tab.js @@ -93,7 +93,7 @@ const EmojiTab = { this.displayError(resp.error) return Promise.reject(resp) } - }).then(done => { + }).then(() => { this.$refs.createPackPopover.hidePopover() this.packName = this.newPackName @@ -110,7 +110,7 @@ const EmojiTab = { this.displayError(resp.error) return Promise.reject(resp) } - }).then(done => { + }).then(() => { delete this.editedMetadata[this.packName] this.deleteModalVisible = false @@ -167,7 +167,7 @@ const EmojiTab = { return resultingPromise }) - .then(finished => allPacks) + .then(() => allPacks) .catch(data => { this.displayError(data) }) @@ -226,7 +226,7 @@ const EmojiTab = { this.displayError(resp.error) return Promise.reject(resp) } - }).then(done => { + }).then(() => { this.packName = this.remotePackDownloadAs this.remotePackDownloadAs = '' }) diff --git a/src/components/settings_modal/tabs/appearance_tab.js b/src/components/settings_modal/tabs/appearance_tab.js @@ -67,7 +67,7 @@ const AppearanceTab = { value: i - 1, label: this.$t(`settings.style.themes3.hacks.forced_roundness_mode_${mode}`) })), - underlayOverrideModes: ['none', 'opaque', 'transparent'].map((mode, i) => ({ + underlayOverrideModes: ['none', 'opaque', 'transparent'].map((mode) => ({ key: mode, value: mode, label: this.$t(`settings.style.themes3.hacks.underlay_override_mode_${mode}`) @@ -234,7 +234,7 @@ const AppearanceTab = { cOrange, wallpaper } - return Object.fromEntries(Object.entries(result).filter(([k, v]) => v)) + return Object.fromEntries(Object.entries(result).filter(([, v]) => v)) }) return result }, @@ -276,7 +276,7 @@ const AppearanceTab = { const { customTheme, customThemeSource } = this.mergedConfig return customTheme != null || customThemeSource != null }, - isCustomStyleUsed (name) { + isCustomStyleUsed () { const { styleCustomData } = this.mergedConfig return styleCustomData != null }, @@ -348,7 +348,7 @@ const AppearanceTab = { useInterfaceStore().setPaletteCustom(data) this.userPalette = data }, - resetTheming (name) { + resetTheming () { useInterfaceStore().setStyle('stock') }, previewTheme (key, version, input) { @@ -378,7 +378,7 @@ const AppearanceTab = { directives: Object.fromEntries( Object .entries(directives) - .filter(([k, v]) => k && k !== 'name') + .filter(([k]) => k && k !== 'name') .map(([k, v]) => ['--' + k, 'color | ' + v]) ) } diff --git a/src/components/settings_modal/tabs/data_import_export_tab.js b/src/components/settings_modal/tabs/data_import_export_tab.js @@ -72,7 +72,6 @@ const DataImportExportTab = { // check is it's a local user if (user && user.is_local) { // append the instance address - return user.screen_name + '@' + location.hostname } return user.screen_name @@ -80,7 +79,7 @@ const DataImportExportTab = { }, addBackup () { this.$store.state.api.backendInteractor.addBackup() - .then((res) => { + .then(() => { this.addedBackup = true this.addBackupError = false }) diff --git a/src/components/settings_modal/tabs/mutes_and_blocks_tab.js b/src/components/settings_modal/tabs/mutes_and_blocks_tab.js @@ -85,7 +85,6 @@ const MutesAndBlocks = { // check is it's a local user if (user && user.is_local) { // append the instance address - return user.screen_name + '@' + location.hostname } return user.screen_name @@ -126,7 +125,7 @@ const MutesAndBlocks = { return urls.filter(url => !this.user.domainMutes.includes(url)) }, queryKnownDomains (query) { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { resolve(this.knownDomains.filter(url => url.toLowerCase().includes(query))) }) }, diff --git a/src/components/settings_modal/tabs/profile_tab.js b/src/components/settings_modal/tabs/profile_tab.js @@ -133,15 +133,14 @@ const ProfileTab = { const params = { note: this.newBio, locked: this.newLocked, + // Backend notation. - display_name: this.newName, fields_attributes: this.newFields.filter(el => el != null), actor_type: this.actorType, show_role: this.showRole, birthday: this.newBirthday || '', show_birthday: this.showBirthday - } if (this.emailLanguage) { @@ -167,7 +166,7 @@ const ProfileTab = { } return false }, - deleteField (index, event) { + deleteField (index) { this.newFields.splice(index, 1) }, uploadFile (slot, e) { @@ -190,7 +189,7 @@ const ProfileTab = { }) return } - + const reader = new FileReader() reader.onload = ({ target }) => { const img = target.result diff --git a/src/components/settings_modal/tabs/security_tab/mfa.js b/src/components/settings_modal/tabs/security_tab/mfa.js @@ -89,7 +89,7 @@ const Mfa = { this.backupCodes.getNewCodes = true }, confirmBackupCodes () { // confirm getting new backup codes - this.fetchBackupCodes().then((res) => { + this.fetchBackupCodes().then(() => { this.backupCodes.getNewCodes = false }) }, diff --git a/src/components/settings_modal/tabs/security_tab/security_tab.js b/src/components/settings_modal/tabs/security_tab/security_tab.js @@ -124,7 +124,7 @@ const SecurityTab = { }, addAlias () { this.$store.state.api.backendInteractor.addAlias({ alias: this.addAliasTarget }) - .then((res) => { + .then(() => { this.addedAlias = true this.addAliasError = false this.addAliasTarget = '' diff --git a/src/components/settings_modal/tabs/style_tab/style_tab.js b/src/components/settings_modal/tabs/style_tab/style_tab.js @@ -78,14 +78,14 @@ export default { Preview, VirtualDirectivesTab }, - setup (props, context) { + setup () { const exports = {} const interfaceStore = useInterfaceStore() // All rules that are made by editor const allEditedRules = ref(interfaceStore.styleDataUsed || {}) const styleDataUsed = computed(() => interfaceStore.styleDataUsed) - watch([styleDataUsed], (value) => { + watch([styleDataUsed], () => { onImport(interfaceStore.styleDataUsed) }, { once: true }) @@ -227,7 +227,7 @@ export default { componentKeysAll .map( key => [key, componentsContext(key).default] - ).filter(([key, component]) => !component.virtual && !component.notEditable) + ).filter(([, component]) => !component.virtual && !component.notEditable) ) exports.componentsMap = componentsMap const componentKeys = [...componentsMap.keys()] diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.js b/src/components/settings_modal/tabs/theme_tab/theme_tab.js @@ -480,7 +480,7 @@ export default { } this.dismissWarning() }, - loadThemeFromLocalStorage (confirmLoadSource = false, forceSnapshot = false) { + loadThemeFromLocalStorage (confirmLoadSource = false) { const theme = this.themeDataUsed?.source if (theme) { this.loadTheme( @@ -536,7 +536,7 @@ export default { this.tempImportFile = parsed this.loadTheme(parsed, 'file', forceSource) }, - onImportFailure (result) { + onImportFailure () { useInterfaceStore().pushGlobalNotice({ messageKey: 'settings.invalid_theme_imported', level: 'error' }) }, importValidator (parsed) { @@ -757,7 +757,7 @@ export default { } }, selected () { - this.selectedTheme = Object.entries(this.availableStyles).find(([k, s]) => { + this.selectedTheme = Object.entries(this.availableStyles).find(([, s]) => { if (Array.isArray(s)) { return s[0] === this.selected } else { diff --git a/src/components/shadow_control/shadow_control.js b/src/components/shadow_control/shadow_control.js @@ -151,7 +151,7 @@ export default { } }, watch: { - selected (value) { + selected () { this.$emit('subShadowSelected', this.selectedId) } }, diff --git a/src/components/shout_panel/shout_panel.js b/src/components/shout_panel/shout_panel.js @@ -38,7 +38,7 @@ const shoutPanel = { } }, watch: { - messages (newVal) { + messages () { const scrollEl = this.$el.querySelector('.chat-window') if (!scrollEl) return if (scrollEl.scrollTop + scrollEl.offsetHeight + 20 > scrollEl.scrollHeight) { diff --git a/src/components/status_action_buttons/buttons_definitions.js b/src/components/status_action_buttons/buttons_definitions.js @@ -109,7 +109,7 @@ export const BUTTONS = [{ status.user.id === currentUser.id && PUBLIC_SCOPES.has(status.visibility) }, - action ({ status, dispatch, emit }) { + action ({ status, dispatch }) { if (status.pinned) { return dispatch('unpinStatus', { id: status.id }) } else { @@ -130,7 +130,7 @@ export const BUTTONS = [{ ? 'status.unbookmark' : 'status.bookmark', if: ({ loggedIn }) => loggedIn, - action ({ status, dispatch, emit }) { + action ({ status, dispatch }) { if (status.bookmarked) { return dispatch('unbookmark', { id: status.id }) } else { @@ -175,7 +175,7 @@ export const BUTTONS = [{ currentUser.privileges.includes('messages_delete') ) }, - confirm: ({ status, getters }) => getters.mergedConfig.modalOnDelete, + confirm: ({ getters }) => getters.mergedConfig.modalOnDelete, confirmStrings: { title: 'status.delete_confirm_title', body: 'status.delete_confirm', diff --git a/src/components/status_popover/status_popover.js b/src/components/status_popover/status_popover.js @@ -34,8 +34,8 @@ const StatusPopover = { return } this.$store.dispatch('fetchStatus', this.statusId) - .then(data => (this.error = false)) - .catch(e => (this.error = true)) + .then(() => (this.error = false)) + .catch(() => (this.error = true)) } } }, diff --git a/src/components/thread_tree/thread_tree.js b/src/components/thread_tree/thread_tree.js @@ -81,7 +81,7 @@ const ThreadTree = { toggleCurrentProp (name) { this.toggleStatusContentProperty(this.status.id, name) }, - setCurrentProp (name, newVal) { + setCurrentProp (name) { this.setStatusContentProperty(this.status.id, name) } } diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js @@ -241,7 +241,7 @@ const Timeline = { // statuses will be nearby statuses before and after it this.virtualScrollIndex = approxIndex }, - scrollLoad (e) { + scrollLoad () { const bodyBRect = document.body.getBoundingClientRect() const height = Math.max(bodyBRect.height, -(bodyBRect.y)) if (this.timeline.loading === false && diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js @@ -85,7 +85,6 @@ export default { return this.user.id !== this.$store.state.users.currentUser.id }, subscribeUrl () { - const serverUrl = new URL(this.user.statusnet_profile_url) return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus` }, diff --git a/src/components/user_list_menu/user_list_menu.js b/src/components/user_list_menu/user_list_menu.js @@ -81,7 +81,7 @@ const UserListMenu = { const user = this.user const { id, name } = user store.state.api.backendInteractor.deleteUser({ user }) - .then(e => { + .then(() => { this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id) const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile' const isTargetUser = this.$route.params.name === name || this.$route.params.id === id diff --git a/src/components/video_attachment/video_attachment.js b/src/components/video_attachment/video_attachment.js @@ -24,7 +24,7 @@ const VideoAttachment = { } this.$emit('play') }, - onPaused (e) { + onPaused () { this.$emit('pause') }, setHasAudio (e) { diff --git a/src/components/who_to_follow/who_to_follow.js b/src/components/who_to_follow/who_to_follow.js @@ -15,7 +15,7 @@ const WhoToFollow = { }, methods: { showWhoToFollow (reply) { - reply.forEach((i, index) => { + reply.forEach((i) => { this.$store.state.api.backendInteractor.fetchUser({ id: i.acct }) .then((externalUser) => { if (!externalUser.error) { diff --git a/src/components/who_to_follow_panel/who_to_follow_panel.js b/src/components/who_to_follow_panel/who_to_follow_panel.js @@ -54,7 +54,7 @@ const WhoToFollowPanel = { } }, watch: { - user: function (user, oldUser) { + user: function () { if (this.suggestionsEnabled) { getWhoToFollow(this) } @@ -62,7 +62,7 @@ const WhoToFollowPanel = { }, mounted: function () { - this.usersToFollow = new Array(3).fill().map(x => ( + this.usersToFollow = new Array(3).fill().map(() => ( { img: this.$store.state.instance.defaultAvatar, name: '', diff --git a/src/i18n/service_worker_messages.js b/src/i18n/service_worker_messages.js @@ -1,4 +1,3 @@ -/* eslint-disable import/no-webpack-loader-syntax */ // This module exports only the notification part of the i18n, // which is useful for the service worker diff --git a/src/lib/event_target_polyfill.js b/src/lib/event_target_polyfill.js @@ -1,9 +1,11 @@ import EventTargetPolyfill from '@ungap/event-target' try { - - new EventTarget() - -} catch (e) { + // for some reason eslint both likes and dislikes + // no-new here so we just call something useless + // so it stops reporting this file + const et = new EventTarget() + et.dispatchEvent() +} catch { window.EventTarget = EventTargetPolyfill } diff --git a/src/main.js b/src/main.js @@ -1,3 +1,4 @@ +/* global process */ import { createStore } from 'vuex' import { createPinia } from 'pinia' diff --git a/src/modules/adminSettings.js b/src/modules/adminSettings.js @@ -60,7 +60,7 @@ const adminSettingsStorage = { } }, actions: { - loadFrontendsStuff ({ state, rootState, dispatch, commit }) { + loadFrontendsStuff ({ rootState, commit }) { rootState.api.backendInteractor.fetchAvailableFrontends() .then(frontends => commit('setAvailableFrontends', { frontends })) }, @@ -84,7 +84,7 @@ const adminSettingsStorage = { .then(backendDescriptions => dispatch('setInstanceAdminDescriptions', { backendDescriptions })) } }, - setInstanceAdminSettings ({ state, commit, dispatch }, { backendDbConfig }) { + setInstanceAdminSettings ({ state, commit }, { backendDbConfig }) { const config = state.config || {} const modifiedPaths = new Set() backendDbConfig.configs.forEach(c => { @@ -108,7 +108,7 @@ const adminSettingsStorage = { commit('updateAdminSettings', { config, modifiedPaths }) commit('resetAdminDraft') }, - setInstanceAdminDescriptions ({ state, commit, dispatch }, { backendDescriptions }) { + setInstanceAdminDescriptions ({ commit }, { backendDescriptions }) { const convert = ({ children, description, label, key = '<ROOT>', group, suggestions }, path, acc) => { const newPath = group ? [group, key] : [key] const obj = { description, label, suggestions } @@ -127,7 +127,7 @@ const adminSettingsStorage = { // This action takes draft state, diffs it with live config state and then pushes // only differences between the two. Difference detection only work up to subkey (third) level. - pushAdminDraft ({ rootState, state, commit, dispatch }) { + pushAdminDraft ({ rootState, state, dispatch }) { // TODO cleanup paths in modifiedPaths const convert = (value) => { if (typeof value !== 'object') { @@ -177,7 +177,7 @@ const adminSettingsStorage = { .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig()) .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig })) }, - pushAdminSetting ({ rootState, state, commit, dispatch }, { path, value }) { + pushAdminSetting ({ rootState, dispatch }, { path, value }) { const [group, key, ...rest] = Array.isArray(path) ? path : path.split(/\./g) const clone = {} // not actually cloning the entire thing to avoid excessive writes set(clone, rest, value) @@ -205,7 +205,7 @@ const adminSettingsStorage = { .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig()) .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig })) }, - resetAdminSetting ({ rootState, state, commit, dispatch }, { path }) { + resetAdminSetting ({ rootState, state, dispatch }, { path }) { const [group, key, subkey] = path.split(/\./g) state.modifiedPaths.delete(path) diff --git a/src/modules/api.js b/src/modules/api.js @@ -27,7 +27,7 @@ const api = { addFetcher (state, { fetcherName, fetcher }) { state.fetchers[fetcherName] = fetcher }, - removeFetcher (state, { fetcherName, fetcher }) { + removeFetcher (state, { fetcherName }) { state.fetchers[fetcherName].stop() delete state.fetchers[fetcherName] }, @@ -294,7 +294,7 @@ const api = { setWsToken (store, token) { store.commit('setWsToken', token) }, - initializeSocket ({ dispatch, commit, state, rootState }) { + initializeSocket ({ commit, state, rootState }) { // Set up websocket connection const token = state.wsToken if (rootState.instance.shoutAvailable && typeof token !== 'undefined' && state.socket === null) { diff --git a/src/modules/auth_flow.js b/src/modules/auth_flow.js @@ -19,19 +19,19 @@ const resetState = (state) => { // getters const getters = { - settings: (state, getters) => { + settings: (state) => { return state.settings }, - requiredPassword: (state, getters, rootState) => { + requiredPassword: (state) => { return state.strategy === PASSWORD_STRATEGY }, - requiredToken: (state, getters, rootState) => { + requiredToken: (state) => { return state.strategy === TOKEN_STRATEGY }, - requiredTOTP: (state, getters, rootState) => { + requiredTOTP: (state) => { return state.strategy === TOTP_STRATEGY }, - requiredRecovery: (state, getters, rootState) => { + requiredRecovery: (state) => { return state.strategy === RECOVERY_STRATEGY } } @@ -67,10 +67,10 @@ const mutations = { // actions const actions = { - - async login ({ state, dispatch, commit }, { access_token }) { - commit('setToken', access_token, { root: true }) - await dispatch('loginUser', access_token, { root: true }) + + async login ({ state, dispatch, commit }, { access_token: accessToken }) { + commit('setToken', accessToken, { root: true }) + await dispatch('loginUser', accessToken, { root: true }) resetState(state) } } diff --git a/src/modules/chats.js b/src/modules/chats.js @@ -53,7 +53,7 @@ const chats = { stopFetchingChats ({ commit }) { commit('setChatListFetcher', { fetcher: undefined }) }, - fetchChats ({ dispatch, rootState, commit }, params = {}) { + fetchChats ({ dispatch, rootState }) { return rootState.api.backendInteractor.chats() .then(({ chats }) => { dispatch('addNewChats', { chats }) @@ -73,13 +73,13 @@ const chats = { }, // Opened Chats - startFetchingCurrentChat ({ commit, dispatch }, { fetcher }) { + startFetchingCurrentChat ({ dispatch }, { fetcher }) { dispatch('setCurrentChatFetcher', { fetcher }) }, - setCurrentChatFetcher ({ rootState, commit }, { fetcher }) { + setCurrentChatFetcher ({ commit }, { fetcher }) { commit('setCurrentChatFetcher', { fetcher }) }, - addOpenedChat ({ rootState, commit, dispatch }, { chat }) { + addOpenedChat ({ commit, dispatch }, { chat }) { commit('addOpenedChat', { dispatch, chat: parseChat(chat) }) dispatch('addNewUsers', [chat.account]) }, @@ -89,7 +89,7 @@ const chats = { resetChatNewMessageCount ({ commit }, value) { commit('resetChatNewMessageCount', value) }, - clearCurrentChat ({ rootState, commit, dispatch }, value) { + clearCurrentChat ({ commit }) { commit('setCurrentChatId', { chatId: undefined }) commit('setCurrentChatFetcher', { fetcher: undefined }) }, @@ -111,7 +111,7 @@ const chats = { dispatch('clearCurrentChat') commit('resetChats', { commit }) }, - clearOpenedChats ({ rootState, commit, dispatch, rootGetters }) { + clearOpenedChats ({ commit }) { commit('clearOpenedChats', { commit }) }, handleMessageError ({ commit }, value) { @@ -122,7 +122,7 @@ const chats = { } }, mutations: { - setChatListFetcher (state, { commit, fetcher }) { + setChatListFetcher (state, { fetcher }) { const prevFetcher = state.chatListFetcher if (prevFetcher) { prevFetcher.stop() @@ -136,7 +136,7 @@ const chats = { } state.fetcher = fetcher && fetcher() }, - addOpenedChat (state, { _dispatch, chat }) { + addOpenedChat (state, { chat }) { state.currentChatId = chat.id state.openedChats[chat.id] = chat @@ -165,7 +165,7 @@ const chats = { } }) }, - updateChat (state, { _dispatch, chat: updatedChat, _rootGetters }) { + updateChat (state, { chat: updatedChat }) { const chat = getChatById(state, updatedChat.id) if (chat) { chat.lastMessage = updatedChat.lastMessage @@ -175,7 +175,7 @@ const chats = { if (!chat) { state.chatList.data.unshift(updatedChat) } state.chatList.idStore[updatedChat.id] = updatedChat }, - deleteChat (state, { _dispatch, id, _rootGetters }) { + deleteChat (state, { id }) { state.chats.data = state.chats.data.filter(conversation => conversation.last_status.id !== id ) @@ -206,7 +206,7 @@ const chats = { chatService.deleteMessage(chatMessageService, messageId) } }, - resetChatNewMessageCount (state, _value) { + resetChatNewMessageCount (state) { const chatMessageService = state.openedChatMessageServices[state.currentChatId] chatService.resetNewMessageCount(chatMessageService) }, diff --git a/src/modules/config.js b/src/modules/config.js @@ -38,13 +38,13 @@ export const multiChoiceProperties = [ // caching the instance default properties export const instanceDefaultProperties = Object.entries(defaultState) - .filter(([key, value]) => value === undefined) - .map(([key, value]) => key) + .filter(([, value]) => value === undefined) + .map(([key]) => key) const config = { state: { ...defaultState }, getters: { - defaultConfig (state, getters, rootState, rootGetters) { + defaultConfig (state, getters, rootState) { const { instance } = rootState return { ...defaultState, @@ -58,7 +58,7 @@ const config = { return { ...defaultConfig, // Do not override with undefined - ...Object.fromEntries(Object.entries(state).filter(([k, v]) => v !== undefined)) + ...Object.fromEntries(Object.entries(state).filter(([, v]) => v !== undefined)) } } }, @@ -94,10 +94,10 @@ const config = { name => dispatch('setOption', { name, value: data[name] }) ) }, - setHighlight ({ commit, dispatch }, { user, color, type }) { + setHighlight ({ commit }, { user, color, type }) { commit('setHighlight', { user, color, type }) }, - setOptionTemporarily ({ commit, dispatch, state, rootState }, { name, value }) { + setOptionTemporarily ({ commit, dispatch, state }, { name, value }) { if (useInterfaceStore().temporaryChangesTimeoutId !== null) { console.warn('Can\'t track more than one temporary change') return diff --git a/src/modules/notifications.js b/src/modules/notifications.js @@ -36,7 +36,10 @@ export const notifications = { }) }, clearNotifications (state) { - state = emptyNotifications() + const blankState = defaultState() + Object.keys(state).forEach(k => { + state[k] = blankState[k] + }) }, updateNotificationsMinMaxId (state, id) { state.maxId = id > state.maxId ? id : state.maxId @@ -67,7 +70,7 @@ export const notifications = { } }, actions: { - addNewNotifications (store, { notifications, older }) { + addNewNotifications (store, { notifications }) { const { commit, dispatch, state, rootState } = store const validNotifications = notifications.filter((notification) => { // If invalid notification, update ids but don't add it to store @@ -130,10 +133,10 @@ export const notifications = { } } }, - setNotificationsLoading ({ rootState, commit }, { value }) { + setNotificationsLoading ({ commit }, { value }) { commit('setNotificationsLoading', { value }) }, - setNotificationsSilence ({ rootState, commit }, { value }) { + setNotificationsSilence ({ commit }, { value }) { commit('setNotificationsSilence', { value }) }, markNotificationsAsSeen ({ rootState, state, commit }) { @@ -155,14 +158,14 @@ export const notifications = { closeDesktopNotification(rootState, { id }) }) }, - dismissNotificationLocal ({ rootState, commit }, { id }) { + dismissNotificationLocal ({ commit }, { id }) { commit('dismissNotification', { id }) }, dismissNotification ({ rootState, commit }, { id }) { commit('dismissNotification', { id }) rootState.api.backendInteractor.dismissNotification({ id }) }, - updateNotification ({ rootState, commit }, { id, updater }) { + updateNotification ({ commit }, { id, updater }) { commit('updateNotification', { id, updater }) } } diff --git a/src/modules/profileConfig.js b/src/modules/profileConfig.js @@ -118,7 +118,7 @@ const profileConfig = { } }, actions: { - setProfileOption ({ rootState, state, commit, dispatch }, { name, value }) { + setProfileOption ({ rootState, state, commit }, { name, value }) { const oldValue = get(state, name) const map = settingsMap[name] if (!map) throw new Error('Invalid server-side setting') diff --git a/src/modules/serverSideStorage.js b/src/modules/serverSideStorage.js @@ -200,7 +200,7 @@ const _mergeJournal = (...journals) => { .sort((a, b) => a.timestamp > b.timestamp ? 1 : -1) } -export const _mergePrefs = (recent, stale, allFlagKeys) => { +export const _mergePrefs = (recent, stale) => { if (!stale) return recent if (!recent) return stale const { _journal: recentJournal, ...recentData } = recent @@ -217,7 +217,7 @@ export const _mergePrefs = (recent, stale, allFlagKeys) => { */ const resultOutput = { ...recentData } const totalJournal = _mergeJournal(staleJournal, recentJournal) - totalJournal.forEach(({ path, timestamp, operation, command, args }) => { + totalJournal.forEach(({ path, operation, args }) => { if (path.startsWith('_')) { console.error(`journal contains entry to edit internal (starts with _) field '${path}', something is incorrect here, ignoring.`) return @@ -303,10 +303,13 @@ export const _doMigrations = (cache) => { } export const mutations = { - clearServerSideStorage (state, userData) { - state = { ...cloneDeep(defaultState) } + clearServerSideStorage (state) { + const blankState = { ...cloneDeep(defaultState) } + Object.keys(state).forEach(k => { + state[k] = blankState[k] + }) }, - setServerSideStorage (state, userData, test) { + setServerSideStorage (state, userData) { const live = userData.storage state.raw = live let cache = state.cache @@ -334,8 +337,10 @@ export const mutations = { if (!needUpload && recent && stale) { console.debug('Checking if data needs merging...') // discarding timestamps and versions + /* eslint-disable no-unused-vars */ const { _timestamp: _0, _version: _1, ...recentData } = recent const { _timestamp: _2, _version: _3, ...staleData } = stale + /* eslint-enable no-unused-vars */ dirty = !isEqual(recentData, staleData) console.debug(`Data ${dirty ? 'needs' : 'doesn\'t need'} merging`) } diff --git a/src/modules/statuses.js b/src/modules/statuses.js @@ -223,7 +223,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us return status } - const favoriteStatus = (favorite, counter) => { + const favoriteStatus = (favorite) => { const status = find(allStatuses, { id: favorite.in_reply_to_status_id }) if (status) { // This is our favorite, so the relevant bit. @@ -273,7 +273,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us favoriteStatus(favorite) } }, - follow: (follow) => { + follow: () => { // NOOP, it is known status but we don't do anything about it for now }, default: (unknown) => { @@ -433,7 +433,7 @@ export const mutations = { newStatus.fave_num = newStatus.favoritedBy.length newStatus.favorited = !!newStatus.favoritedBy.find(({ id }) => currentUser.id === id) }, - addEmojiReactionsBy (state, { id, emojiReactions, currentUser }) { + addEmojiReactionsBy (state, { id, emojiReactions }) { const status = state.allStatusesObject[id] status.emoji_reactions = emojiReactions }, @@ -492,22 +492,22 @@ export const mutations = { const statuses = { state: defaultState(), actions: { - addNewStatuses ({ rootState, commit, dispatch, state }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) { + addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) { commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, pagination }) }, fetchStatus ({ rootState, dispatch }, id) { return rootState.api.backendInteractor.fetchStatus({ id }) .then((status) => dispatch('addNewStatuses', { statuses: [status] })) }, - fetchStatusSource ({ rootState, dispatch }, status) { + fetchStatusSource ({ rootState }, status) { return apiService.fetchStatusSource({ id: status.id, credentials: rootState.users.currentUser.credentials }) }, - fetchStatusHistory ({ rootState, dispatch }, status) { + fetchStatusHistory (_, status) { return apiService.fetchStatusHistory({ status }) }, - deleteStatus ({ rootState, commit, dispatch }, status) { + deleteStatus ({ rootState, commit }, status) { apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials }) - .then((_) => { + .then(() => { commit('setDeleted', { status }) }) .catch((e) => { @@ -584,10 +584,10 @@ const statuses = { commit('setBookmarkedConfirm', { status }) }) }, - queueFlush ({ rootState, commit }, { timeline, id }) { + queueFlush ({ commit }, { timeline, id }) { commit('queueFlush', { timeline, id }) }, - queueFlushAll ({ rootState, commit }) { + queueFlushAll ({ commit }) { commit('queueFlushAll') }, fetchFavsAndRepeats ({ rootState, commit }, id) { @@ -605,7 +605,7 @@ const statuses = { commit('addOwnReaction', { id, emoji, currentUser }) rootState.api.backendInteractor.reactWithEmoji({ id, emoji }).then( - ok => { + () => { dispatch('fetchEmojiReactionsBy', id) } ) @@ -616,7 +616,7 @@ const statuses = { commit('removeOwnReaction', { id, emoji, currentUser }) rootState.api.backendInteractor.unreactWithEmoji({ id, emoji }).then( - ok => { + () => { dispatch('fetchEmojiReactionsBy', id) } ) diff --git a/src/modules/users.js b/src/modules/users.js @@ -509,8 +509,8 @@ const users = { const notificationsObject = store.rootState.notifications.idStore const relevantNotifications = Object.entries(notificationsObject) - .filter(([k, val]) => notificationIds.includes(k)) - .map(([k, val]) => val) + .filter(([k]) => notificationIds.includes(k)) + .map(([, val]) => val) // Reconnect users to notifications each(relevantNotifications, (notification) => { diff --git a/src/services/desktop_notification_utils/desktop_notification_utils.js b/src/services/desktop_notification_utils/desktop_notification_utils.js @@ -29,7 +29,7 @@ export const closeDesktopNotification = (rootState, { id }) => { } } -export const closeAllDesktopNotifications = (rootState) => { +export const closeAllDesktopNotifications = () => { if (!('Notification' in window && window.Notification.permission === 'granted')) return if (isSWSupported()) { diff --git a/src/services/errors/errors.js b/src/services/errors/errors.js @@ -48,7 +48,7 @@ export class RegistrationError extends Error { } else { this.message = error } - } catch (e) { + } catch { // can't parse it, so just treat it like a string this.message = error } diff --git a/src/services/export_import/export_import.js b/src/services/export_import/export_import.js @@ -42,7 +42,7 @@ export const newImporter = ({ filePicker.addEventListener('change', event => { if (event.target.files[0]) { const filename = event.target.files[0].name - + const reader = new FileReader() reader.onload = ({ target }) => { try { diff --git a/src/services/follow_manipulate/follow_manipulate.js b/src/services/follow_manipulate/follow_manipulate.js @@ -16,7 +16,7 @@ const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reje } }) -export const requestFollow = (userId, store) => new Promise((resolve, reject) => { +export const requestFollow = (userId, store) => new Promise((resolve) => { store.state.api.backendInteractor.followUser({ id: userId }) .then((updated) => { store.commit('updateUserRelationship', [updated]) @@ -41,7 +41,7 @@ export const requestFollow = (userId, store) => new Promise((resolve, reject) => }) }) -export const requestUnfollow = (userId, store) => new Promise((resolve, reject) => { +export const requestUnfollow = (userId, store) => new Promise((resolve) => { store.state.api.backendInteractor.unfollowUser({ id: userId }) .then((updated) => { store.commit('updateUserRelationship', [updated]) diff --git a/src/services/gesture_service/gesture_service.js b/src/services/gesture_service/gesture_service.js @@ -184,7 +184,7 @@ class SwipeAndClickGesture { } } - click (event) { + click () { if (!this._preventNextClick) { this.swipelessClickCallback() } diff --git a/src/services/html_converter/utility.service.js b/src/services/html_converter/utility.service.js @@ -23,7 +23,7 @@ export const getAttrs = (tag, filter) => { .replace(/\/?$/, '') .trim() const attrs = Array.from(innertag.matchAll(/([a-z]+[a-z0-9-]*)(?:=("[^"]+?"|'[^']+?'))?/gi)) - .map(([trash, key, value]) => [key, value]) + .map(([, key, value]) => [key, value]) .map(([k, v]) => { if (!v) return [k, true] return [k, v.substring(1, v.length - 1)] diff --git a/src/services/lists_fetcher/lists_fetcher.service.js b/src/services/lists_fetcher/lists_fetcher.service.js @@ -2,7 +2,7 @@ import { useListsStore } from 'src/stores/lists.js' import apiService from '../api/api.service.js' import { promiseInterval } from '../promise_interval/promise_interval.js' -const fetchAndUpdate = ({ store, credentials }) => { +const fetchAndUpdate = ({ credentials }) => { return apiService.fetchLists({ credentials }) .then(lists => { useListsStore().setLists(lists) diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js @@ -48,7 +48,7 @@ const adoptStyleSheets = (styles) => { export const generateTheme = (inputRuleset, callbacks, debug) => { const { - onNewRule = (rule, isLazy) => {}, + onNewRule = () => {}, onLazyFinished = () => {}, onEagerFinished = () => {} } = callbacks @@ -123,8 +123,8 @@ export const tryLoadCache = async () => { export const applyTheme = ( input, - onEagerFinish = data => {}, - onFinish = data => {}, + onEagerFinish = () => {}, + onFinish = () => {}, debug ) => { const eagerStyles = createStyleSheet(EAGER_STYLE_ID) @@ -217,7 +217,7 @@ const extractStyleConfig = ({ console.log(defaultState) const defaultStyleConfig = extractStyleConfig(defaultState) -export const applyConfig = (input, i18n) => { +export const applyConfig = (input) => { const config = extractStyleConfig(input) if (config === defaultStyleConfig) { @@ -228,7 +228,7 @@ export const applyConfig = (input, i18n) => { const rules = Object .entries(config) - .filter(([k, v]) => v) + .filter(([, v]) => v) .map(([k, v]) => `--${k}: ${v}`).join(';') document.getElementById('style-config')?.remove() @@ -283,7 +283,7 @@ export const getResourcesIndex = async (url, parser = JSON.parse) => { const builtinData = await window.fetch(url, { cache }) const builtinResources = await builtinData.json() builtin = resourceTransform(builtinResources) - } catch (e) { + } catch { builtin = [] console.warn(`Builtin resources at ${url} unavailable`) } @@ -292,7 +292,7 @@ export const getResourcesIndex = async (url, parser = JSON.parse) => { const customData = await window.fetch(customUrl, { cache }) const customResources = await customData.json() custom = resourceTransform(customResources) - } catch (e) { + } catch { custom = [] console.warn(`Custom resources at ${customUrl} unavailable`) } diff --git a/src/services/sw/sw.js b/src/services/sw/sw.js @@ -138,7 +138,7 @@ export function unregisterPushNotifications (token) { .then((registration) => { return unsubscribePush(registration).then((result) => [registration, result]) }) - .then(([registration, unsubResult]) => { + .then(([, unsubResult]) => { if (!unsubResult) { console.warn('Push subscription cancellation wasn\'t successful') } diff --git a/src/services/theme_data/iss_deserializer.js b/src/services/theme_data/iss_deserializer.js @@ -45,7 +45,7 @@ export const deserializeShadow = string => { } else { return [mode, result[i]] } - }).filter(([k, v]) => v !== false).slice(1)) + }).filter(([, v]) => v !== false).slice(1)) return { x, y, blur, spread, color, alpha, inset, name } } diff --git a/src/services/theme_data/iss_serializer.js b/src/services/theme_data/iss_serializer.js @@ -1,7 +1,7 @@ import { unroll } from './iss_utils.js' import { deserializeShadow } from './iss_deserializer.js' -export const serializeShadow = (s, throwOnInvalid) => { +export const serializeShadow = (s) => { if (typeof s === 'object') { const inset = s.inset ? 'inset ' : '' const name = s.name ? ` #${s.name} ` : '' diff --git a/src/services/theme_data/iss_utils.js b/src/services/theme_data/iss_utils.js @@ -100,7 +100,7 @@ export const genericRuleToSelector = components => (rule, ignoreOutOfTreeSelecto let arraySelector = Array.isArray(selector) ? selector : [selector] if (ignoreOutOfTreeSelector || liteMode) arraySelector = [arraySelector[0]] arraySelector - .sort((a, b) => { + .sort((a) => { if (a.startsWith(':')) return 1 if (/^[a-z]/.exec(a)) return -1 else return 0 diff --git a/src/services/theme_data/theme3_slot_functions.js b/src/services/theme_data/theme3_slot_functions.js @@ -131,7 +131,7 @@ export const shadowFunctions = { '[alpha]: (Optional) border opacity, defaults to 1 (fully opaque)', '[inset]: (Optional) whether border should be on the inside or outside, defaults to inside' ], - exec: (args, { findColor }) => { + exec: (args) => { const [color, side, alpha = '1', widthArg = '1', inset = 'inset'] = args const width = Number(widthArg) diff --git a/src/services/theme_data/theme_data.service.js b/src/services/theme_data/theme_data.service.js @@ -218,7 +218,7 @@ export const getLayerSlot = ( */ export const SLOT_ORDERED = topoSort( Object.entries(SLOT_INHERITANCE) - .sort(([aK, aV], [bK, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0)) + .sort(([, aV], [, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0)) .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {}) ) @@ -226,7 +226,7 @@ export const SLOT_ORDERED = topoSort( * All opacity slots used in color slots, their default values and affected * color slots. */ -export const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k, v]) => { +export const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k]) => { const opacity = getOpacitySlot(k, SLOT_INHERITANCE, getDependencies) if (opacity) { return { @@ -489,7 +489,7 @@ export const generateColors = (themeData) => { return { rules: { colors: Object.entries(htmlColors.complete) - .filter(([k, v]) => v) + .filter(([, v]) => v) .map(([k, v]) => `--${k}: ${v}`) .join(';') }, @@ -506,10 +506,10 @@ export const generateRadii = (input) => { if (typeof input.btnRadius !== 'undefined') { inputRadii = Object .entries(input) - .filter(([k, v]) => k.endsWith('Radius')) + .filter(([k]) => k.endsWith('Radius')) .reduce((acc, e) => { acc[e[0].split('Radius')[0]] = e[1]; return acc }, {}) } - const radii = Object.entries(inputRadii).filter(([k, v]) => v).reduce((acc, [k, v]) => { + const radii = Object.entries(inputRadii).filter(([, v]) => v).reduce((acc, [k, v]) => { acc[k] = v return acc }, { @@ -526,7 +526,7 @@ export const generateRadii = (input) => { return { rules: { - radii: Object.entries(radii).filter(([k, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';') + radii: Object.entries(radii).filter(([, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';') }, theme: { radii @@ -535,8 +535,8 @@ export const generateRadii = (input) => { } export const generateFonts = (input) => { - const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => { - acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => { + const fonts = Object.entries(input.fonts || {}).filter(([, v]) => v).reduce((acc, [k, v]) => { + acc[k] = Object.entries(v).filter(([, v]) => v).reduce((acc, [k, v]) => { acc[k] = v return acc }, acc[k]) @@ -560,7 +560,7 @@ export const generateFonts = (input) => { rules: { fonts: Object .entries(fonts) - .filter(([k, v]) => v) + .filter(([, v]) => v) .map(([k, v]) => `--${k}Font: ${v.family}`).join(';') }, theme: { diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js @@ -117,7 +117,7 @@ export const findColor = (color, { dynamicVars, staticVars }) => { Static: ${JSON.stringify(staticVars, null, 2)} Dynamic: -${JSON.stringify(dynamicVars, null, 2)}`) +${JSON.stringify(dynamicVars, null, 2)}`, e) } } @@ -417,7 +417,7 @@ export const init = ({ dynamicVars.stacked = stacked[selector] dynamicVars.background = computed[selector].background - const dynamicSlots = Object.entries(computedDirectives).filter(([k, v]) => k.startsWith('--')) + const dynamicSlots = Object.entries(computedDirectives).filter(([k]) => k.startsWith('--')) dynamicSlots.forEach(([k, v]) => { const [type, value] = v.split('|').map(x => x.trim()) // woah, Extreme! diff --git a/src/stores/interface.js b/src/stores/interface.js @@ -427,7 +427,7 @@ export const useInterfaceStore = defineStore('interface', { const cleanDirectives = Object.fromEntries( Object .entries(x.directives) - .filter(([k, v]) => k) + .filter(([k]) => k) ) return { name: x.variant, ...cleanDirectives } diff --git a/src/stores/lists.js b/src/stores/lists.js @@ -8,13 +8,13 @@ export const useListsStore = defineStore('lists', { allListsObject: {} }), getters: { - findListTitle (state) { + findListTitle () { return (id) => { if (!this.allListsObject[id]) return return this.allListsObject[id].title } }, - findListAccounts (state) { + findListAccounts () { return (id) => [...this.allListsObject[id].accountIds] } }, diff --git a/src/stores/polls.js b/src/stores/polls.js @@ -47,7 +47,7 @@ export const usePollsStore = defineStore('polls', { this.trackedPolls[pollId] = 0 } }, - votePoll ({ id, pollId, choices }) { + votePoll ({ pollId, choices }) { return window.vuex.state.api.backendInteractor.vote({ pollId, choices }).then(poll => { this.mergeOrAddPoll(poll) return poll diff --git a/src/sw.js b/src/sw.js @@ -33,7 +33,7 @@ const setSettings = async () => { state.allowedNotificationTypes = new Set( notificationsNativeArray - .filter(([k, v]) => v) + .filter(([, v]) => v) .map(([k]) => { switch (k) { case 'mentions': diff --git a/test/unit/specs/components/user_profile.spec.js b/test/unit/specs/components/user_profile.spec.js @@ -17,7 +17,7 @@ const testGetters = { findUser: state => getters.findUser(state.users), findUserByName: state => getters.findUserByName(state.users), relationship: state => getters.relationship(state.users), - mergedConfig: state => ({ + mergedConfig: () => ({ colors: '', highlight: {}, customTheme: { diff --git a/test/unit/specs/services/html_converter/html_line_converter.spec.js b/test/unit/specs/services/html_converter/html_line_converter.spec.js @@ -78,7 +78,7 @@ describe('html_line_converter', () => { }) }) describe('with processor that replaces lines with word "_" should match expected line when', () => { - const processorReplace = (line) => '_' + const processorReplace = () => '_' it('fed with regular HTML with newlines', () => { const input = '1<br/>2<p class="lol">3 4</p> 5 \n 6 <p > 7 <br> 8 </p> <br>\n<br/>' const output = '_<br/>_<p class="lol">_</p>_\n_<p >_<br>_</p> <br>\n<br/>'