diff --git a/front/package.json b/front/package.json
index b0f97b813..5d860c08c 100644
--- a/front/package.json
+++ b/front/package.json
@@ -42,7 +42,7 @@
"vue-plyr": "7.0.0",
"vue-router": "4.0.14",
"vue-tsc": "0.34.7",
- "vue-upload-component": "2.8.22",
+ "vue-upload-component": "3.1.2",
"vue3-gettext": "2.2.0-alpha.1",
"vue3-lazyload": "0.2.5-beta",
"vuedraggable": "4.1.0",
@@ -55,27 +55,26 @@
"@types/jquery": "3.5.14",
"@types/lodash-es": "4.17.6",
"@types/qs": "6.9.7",
- "@typescript-eslint/eslint-plugin": "5.19.0",
+ "@typescript-eslint/eslint-plugin": "5.21.0",
"@vitejs/plugin-vue": "2.3.1",
"@vue/compiler-sfc": "3.2.33",
"@vue/eslint-config-standard": "6.1.0",
"@vue/eslint-config-typescript": "10.0.0",
"@vue/test-utils": "1.3.0",
- "autoprefixer": "10.4.4",
"chai": "4.3.6",
"easygettext": "2.17.0",
- "eslint": "8.11.0",
- "eslint-config-standard": "16.0.3",
+ "eslint": "8.14.0",
+ "eslint-config-standard": "17.0.0",
"eslint-plugin-html": "6.2.0",
- "eslint-plugin-import": "2.25.4",
+ "eslint-plugin-import": "2.26.0",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-promise": "6.0.0",
- "eslint-plugin-vue": "7.20.0",
+ "eslint-plugin-vue": "8.7.1",
"jest-cli": "27.5.1",
"moxios": "0.4.0",
"sinon": "13.0.2",
"ts-jest": "27.1.4",
- "typescript": "^4.6.3",
+ "typescript": "4.6.3",
"vite": "2.8.6",
"vite-plugin-pwa": "0.12.0",
"vue-jest": "3.0.7",
diff --git a/front/src/App.vue b/front/src/App.vue
index f9d5e620a..f1e82687d 100644
--- a/front/src/App.vue
+++ b/front/src/App.vue
@@ -12,7 +12,6 @@ import ReportModal from '~/components/moderation/ReportModal.vue'
import { useIntervalFn, useToggle, useWindowSize } from '@vueuse/core'
import { computed, nextTick, onMounted, ref, watchEffect } from 'vue'
-import store from '~/store'
import {
ListenWSEvent,
PendingReviewEditsWSEvent,
@@ -21,8 +20,11 @@ import {
Track
} from '~/types'
import useWebSocketHandler from '~/composables/useWebSocketHandler'
-import { getClientOnlyRadio } from '~/radios'
+import { CLIENT_RADIOS } from '~/utils/clientRadios'
import onKeyboardShortcut from '~/composables/onKeyboardShortcut'
+import { useStore } from '~/store'
+
+const store = useStore()
// Tracks
const currentTrack = computed(() => store.getters['queue/currentTrack'])
@@ -49,7 +51,7 @@ watchEffect(() => {
// Styles
const customStylesheets = computed(() => {
- return store.state.instance?.frontSettings?.additionalStylesheets ?? []
+ return store.state.instance.frontSettings.additionalStylesheets ?? []
})
// Fake content
@@ -93,10 +95,10 @@ useWebSocketHandler('user_request.created', (event) => {
useWebSocketHandler('Listen', (event) => {
if (store.state.radios.current && store.state.radios.running) {
- const { current } = store.state.radios
+ const current = store.state.radios.current
- if (current.clientOnly && current.type === 'account') {
- getClientOnlyRadio(current).handleListen(current, event as ListenWSEvent, store)
+ if (current?.clientOnly) {
+ CLIENT_RADIOS[current.type].handleListen(current, event as ListenWSEvent, store)
}
}
})
diff --git a/front/src/components/Queue.vue b/front/src/components/Queue.vue
index ab7474eb0..988affb13 100644
--- a/front/src/components/Queue.vue
+++ b/front/src/components/Queue.vue
@@ -345,7 +345,8 @@
+
+
+
+
+
+
diff --git a/front/src/components/moderation/FilterModal.vue b/front/src/components/moderation/FilterModal.vue
index 336121394..81044ec3b 100644
--- a/front/src/components/moderation/FilterModal.vue
+++ b/front/src/components/moderation/FilterModal.vue
@@ -90,11 +90,12 @@