diff --git a/src/App.js b/src/App.js index 271e14913..183b7cc0b 100644 --- a/src/App.js +++ b/src/App.js @@ -60,10 +60,11 @@ export default { UserReportingModal, PostStatusModal, EditStatusModal: defineAsyncComponent( - () => import( './components/edit_status_modal/edit_status_modal.vue'), + () => import('./components/edit_status_modal/edit_status_modal.vue'), ), StatusHistoryModal: defineAsyncComponent( - () => import( './components/status_history_modal/status_history_modal.vue'), + () => + import('./components/status_history_modal/status_history_modal.vue'), ), GlobalNoticeList, }, diff --git a/src/boot/routes.js b/src/boot/routes.js index b6ff1e193..4a075e955 100644 --- a/src/boot/routes.js +++ b/src/boot/routes.js @@ -1,16 +1,16 @@ +import { defineAsyncComponent } from 'vue' + import BookmarkTimeline from 'src/components/bookmark_timeline/bookmark_timeline.vue' import BubbleTimeline from 'src/components/bubble_timeline/bubble_timeline.vue' import ConversationPage from 'src/components/conversation-page/conversation-page.vue' import DMs from 'src/components/dm_timeline/dm_timeline.vue' import FriendsTimeline from 'src/components/friends_timeline/friends_timeline.vue' +import NavPanel from 'src/components/nav_panel/nav_panel.vue' import PublicAndExternalTimeline from 'src/components/public_and_external_timeline/public_and_external_timeline.vue' import PublicTimeline from 'src/components/public_timeline/public_timeline.vue' +import QuotesTimeline from 'src/components/quotes_timeline/quotes_timeline.vue' import RemoteUserResolver from 'src/components/remote_user_resolver/remote_user_resolver.vue' import TagTimeline from 'src/components/tag_timeline/tag_timeline.vue' -import { defineAsyncComponent } from 'vue' - -import NavPanel from 'src/components/nav_panel/nav_panel.vue' -import QuotesTimeline from 'src/components/quotes_timeline/quotes_timeline.vue' import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' @@ -141,14 +141,14 @@ export default (store) => { name: 'login', path: '/login', component: defineAsyncComponent( - () => import( 'src/components/auth_form/auth_form.js'), + () => import('src/components/auth_form/auth_form.js'), ), }, { name: 'shout-panel', path: '/shout-panel', component: defineAsyncComponent( - () => import( 'src/components/shout_panel/shout_panel.vue'), + () => import('src/components/shout_panel/shout_panel.vue'), ), props: () => ({ floating: false }), }, @@ -164,7 +164,7 @@ export default (store) => { name: 'search', path: '/search', component: defineAsyncComponent( - () => import( 'src/components/search/search.vue'), + () => import('src/components/search/search.vue'), ), props: (route) => ({ query: route.query.query }), }, @@ -172,7 +172,7 @@ export default (store) => { name: 'who-to-follow', path: '/who-to-follow', component: defineAsyncComponent( - () => import( 'src/components/who_to_follow/who_to_follow.vue'), + () => import('src/components/who_to_follow/who_to_follow.vue'), ), beforeEnter: validateAuthenticatedRoute, }, @@ -180,21 +180,22 @@ export default (store) => { name: 'about', path: '/about', component: defineAsyncComponent( - () => import( 'src/components/about/about.vue'), + () => import('src/components/about/about.vue'), ), }, { name: 'announcements', path: '/announcements', component: defineAsyncComponent( - () => import( 'src/components/announcements_page/announcements_page.vue'), + () => + import('src/components/announcements_page/announcements_page.vue'), ), }, { name: 'drafts', path: '/drafts', component: defineAsyncComponent( - () => import( 'src/components/drafts/drafts.vue'), + () => import('src/components/drafts/drafts.vue'), ), }, { @@ -215,28 +216,28 @@ export default (store) => { name: 'lists', path: '/lists', component: defineAsyncComponent( - () => import( 'src/components/lists/lists.vue'), + () => import('src/components/lists/lists.vue'), ), }, { name: 'lists-timeline', path: '/lists/:id', component: defineAsyncComponent( - () => import( 'src/components/lists_timeline/lists_timeline.vue'), + () => import('src/components/lists_timeline/lists_timeline.vue'), ), }, { name: 'lists-edit', path: '/lists/:id/edit', component: defineAsyncComponent( - () => import( 'src/components/lists_edit/lists_edit.vue'), + () => import('src/components/lists_edit/lists_edit.vue'), ), }, { name: 'lists-new', path: '/lists/new', component: defineAsyncComponent( - () => import( 'src/components/lists_edit/lists_edit.vue'), + () => import('src/components/lists_edit/lists_edit.vue'), ), }, { @@ -250,14 +251,17 @@ export default (store) => { name: 'bookmark-folders', path: '/bookmark_folders', component: defineAsyncComponent( - () => import( 'src/components/bookmark_folders/bookmark_folders.vue'), + () => import('src/components/bookmark_folders/bookmark_folders.vue'), ), }, { name: 'bookmark-folder-new', path: '/bookmarks/new-folder', component: defineAsyncComponent( - () => import( 'src/components/bookmark_folder_edit/bookmark_folder_edit.vue'), + () => + import( + 'src/components/bookmark_folder_edit/bookmark_folder_edit.vue' + ), ), }, { @@ -269,7 +273,10 @@ export default (store) => { name: 'bookmark-folder-edit', path: '/bookmarks/:id/edit', component: defineAsyncComponent( - () => import( 'src/components/bookmark_folder_edit/bookmark_folder_edit.vue'), + () => + import( + 'src/components/bookmark_folder_edit/bookmark_folder_edit.vue' + ), ), }, ] @@ -280,7 +287,7 @@ export default (store) => { name: 'chat', path: '/users/:username/chats/:recipient_id', component: defineAsyncComponent( - () => import( 'src/components/chat/chat.vue'), + () => import('src/components/chat/chat.vue'), ), meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute, @@ -289,7 +296,7 @@ export default (store) => { name: 'chats', path: '/users/:username/chats', component: defineAsyncComponent( - () => import( 'src/components/chat_list/chat_list.vue'), + () => import('src/components/chat_list/chat_list.vue'), ), meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute, diff --git a/src/components/account_actions/account_actions.js b/src/components/account_actions/account_actions.js index f204adbde..2f8f70764 100644 --- a/src/components/account_actions/account_actions.js +++ b/src/components/account_actions/account_actions.js @@ -1,8 +1,8 @@ import { mapState } from 'pinia' +import { defineAsyncComponent } from 'vue' import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue' import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue' -import ConfirmModal from '../confirm_modal/confirm_modal.vue' import Popover from '../popover/popover.vue' import ProgressButton from '../progress_button/progress_button.vue' @@ -27,7 +27,10 @@ const AccountActions = { ProgressButton, Popover, UserListMenu, - ConfirmModal, + ConfirmModal: defineAsyncComponent( + () => import('src/components/confirm_modal/confirm_modal.vue'), + ), + UserTimedFilterModal, }, methods: { diff --git a/src/components/account_actions/account_actions.vue b/src/components/account_actions/account_actions.vue index 94cb91ee0..0c93872de 100644 --- a/src/components/account_actions/account_actions.vue +++ b/src/components/account_actions/account_actions.vue @@ -94,7 +94,7 @@ - - + - - + import( 'src/components/flash/flash.vue'), - ), + Flash: defineAsyncComponent(() => import('src/components/flash/flash.vue')), StillImage, VideoAttachment: defineAsyncComponent( - () => import( 'src/components/video_attachment/video_attachment.vue'), + () => import('src/components/video_attachment/video_attachment.vue'), ), Popover, }, diff --git a/src/components/confirm_modal/mute_confirm.js b/src/components/confirm_modal/mute_confirm.js index ffd3a3076..c2f5ff888 100644 --- a/src/components/confirm_modal/mute_confirm.js +++ b/src/components/confirm_modal/mute_confirm.js @@ -1,7 +1,7 @@ import { mapState } from 'pinia' +import { defineAsyncComponent } from 'vue' import Select from 'src/components/select/select.vue' -import ConfirmModal from './confirm_modal.vue' import { useMergedConfigStore } from 'src/stores/merged_config.js' @@ -12,7 +12,10 @@ export default { showing: false, }), components: { - ConfirmModal, + ConfirmModal: defineAsyncComponent( + () => import('src/components/confirm_modal/confirm_modal.vue'), + ), + Select, }, computed: { diff --git a/src/components/confirm_modal/mute_confirm.vue b/src/components/confirm_modal/mute_confirm.vue index 7c754b006..108a72477 100644 --- a/src/components/confirm_modal/mute_confirm.vue +++ b/src/components/confirm_modal/mute_confirm.vue @@ -1,5 +1,5 @@ - + diff --git a/src/lib/persisted_state.js b/src/lib/persisted_state.js index 2f8892f27..f6375dfed 100644 --- a/src/lib/persisted_state.js +++ b/src/lib/persisted_state.js @@ -1,4 +1,4 @@ -import { cloneDeep, each, get, set, merge } from 'lodash' +import { cloneDeep, each, get, merge, set } from 'lodash' import { storage } from './storage.js' diff --git a/src/services/chat_service/chat_service.js b/src/services/chat_service/chat_service.js index 314f9bb0c..eec267dde 100644 --- a/src/services/chat_service/chat_service.js +++ b/src/services/chat_service/chat_service.js @@ -1,4 +1,4 @@ -import { maxBy, minBy } from 'lodash' +import { maxBy, minBy, orderBy, sortBy, uniqueId } from 'lodash' const empty = (chatId) => { return { @@ -57,7 +57,7 @@ const cullOlderMessages = (storage) => { const minIndex = maxIndex - 50 if (maxIndex <= 50) return - storage.messages = _.sortBy(storage.messages, ['id']) + storage.messages = sortBy(storage.messages, ['id']) storage.minId = storage.messages[minIndex].id for (const message of storage.messages) { if (message.id < storage.minId) { @@ -78,7 +78,7 @@ const handleMessageError = (storage, fakeId, isRetry) => { fakeMessage.pending = false if (!isRetry) { // Ensure the failed message doesn't stay at the bottom of the list. - const lastPersistedMessage = _.orderBy( + const lastPersistedMessage = orderBy( storage.messages, ['pending', 'id'], ['asc', 'desc'], @@ -166,11 +166,7 @@ const getView = (storage) => { } const result = [] - const messages = _.orderBy( - storage.messages, - ['pending', 'id'], - ['asc', 'asc'], - ) + const messages = orderBy(storage.messages, ['pending', 'id'], ['asc', 'asc']) const firstMessage = messages[0] let previousMessage = messages[messages.length - 1] let currentMessageChainId @@ -228,7 +224,7 @@ const getView = (storage) => { previousMessage.data.account_id) !== message.account_id || afterDate ) { - currentMessageChainId = _.uniqueId() + currentMessageChainId = uniqueId() object.isHead = true object.messageChainId = currentMessageChainId } diff --git a/src/services/notification_utils/notification_utils.js b/src/services/notification_utils/notification_utils.js index 1149d7b9b..e7987146a 100644 --- a/src/services/notification_utils/notification_utils.js +++ b/src/services/notification_utils/notification_utils.js @@ -87,10 +87,7 @@ export const maybeShowNotification = ( ) return - const notificationObject = prepareNotificationObject( - notification, - i18n, - ) + const notificationObject = prepareNotificationObject(notification, i18n) showDesktopNotification(rootState, notificationObject) } @@ -193,7 +190,11 @@ export const prepareNotificationObject = (notification, i18n) => { return notifObj } -export const countExtraNotifications = (store, mergedConfig, unreadAnnouncementCount) => { +export const countExtraNotifications = ( + store, + mergedConfig, + unreadAnnouncementCount, +) => { const rootGetters = store.rootGetters || store.getters if (!mergedConfig.showExtraNotifications) { diff --git a/src/services/sw/sw.js b/src/services/sw/sw.js index 797f4c448..e744e37aa 100644 --- a/src/services/sw/sw.js +++ b/src/services/sw/sw.js @@ -18,8 +18,7 @@ function isPushSupported() { function getOrCreateServiceWorker() { if (!isSWSupported()) return const swType = process.env.HAS_MODULE_SERVICE_WORKER ? 'module' : 'classic' - return navigator - .serviceWorker + return navigator.serviceWorker .register('/sw-pleroma.js', { type: swType }) .catch((err) => console.error('Unable to get or create a service worker.', err), diff --git a/vite.config.js b/vite.config.js index fec18577e..3ffc5e816 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,10 +1,9 @@ import { dirname, resolve } from 'node:path' import { fileURLToPath } from 'node:url' +import { DevTools } from '@vitejs/devtools' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import { defineConfig } from 'vite' -import { DevTools } from '@vitejs/devtools' - import eslint from 'vite-plugin-eslint2' import stylelint from 'vite-plugin-stylelint' import { configDefaults } from 'vitest/config'