This commit is contained in:
Henry Jameson 2026-06-04 21:59:09 +03:00
commit 3d19008f0c
58 changed files with 114 additions and 155 deletions

View file

@ -1,7 +1,7 @@
import { readFile } from 'node:fs/promises' import { readFile } from 'node:fs/promises'
import { exactRegex } from '@rolldown/pluginutils'
import { dirname, resolve } from 'node:path' import { dirname, resolve } from 'node:path'
import { fileURLToPath } from 'node:url' import { fileURLToPath } from 'node:url'
import { exactRegex } from '@rolldown/pluginutils'
import { build } from 'vite' import { build } from 'vite'
import { import {
@ -15,7 +15,6 @@ const getSWMessagesAsText = async () => {
} }
const projectRoot = dirname(dirname(fileURLToPath(import.meta.url))) const projectRoot = dirname(dirname(fileURLToPath(import.meta.url)))
// Idea taken from // Idea taken from
// https://github.com/vite-pwa/vite-plugin-pwa/blob/main/src/plugins/build.ts // https://github.com/vite-pwa/vite-plugin-pwa/blob/main/src/plugins/build.ts
// rollup does not support compiling to iife if we want to code-split; // rollup does not support compiling to iife if we want to code-split;
@ -27,13 +26,13 @@ export const buildSwPlugin = ({ swSrc, swDest }) => {
const swEnvName = 'virtual:pleroma-fe/service_worker_env' const swEnvName = 'virtual:pleroma-fe/service_worker_env'
const swEnvNameResolved = '\0' + swEnvName const swEnvNameResolved = '\0' + swEnvName
let rootConfig, config let config
return { return {
name: 'build-sw-plugin', name: 'build-sw-plugin',
enforce: 'post', enforce: 'post',
configResolved(resolvedConfig) { configResolved(resolvedConfig) {
rootConfig = resolvedConfig resolvedConfig
config = { config = {
define: resolvedConfig.define, define: resolvedConfig.define,
resolve: resolvedConfig.resolve, resolve: resolvedConfig.resolve,
@ -44,14 +43,14 @@ export const buildSwPlugin = ({ swSrc, swDest }) => {
emptyOutDir: false, emptyOutDir: false,
rolldownOptions: { rolldownOptions: {
input: { input: {
main: swSrc main: swSrc,
}, },
context: 'self', context: 'self',
output: { output: {
entryFileNames: swDest, entryFileNames: swDest,
codeSplitting: false, codeSplitting: false,
format: 'iife', format: 'iife',
} },
}, },
}, },
configFile: false, configFile: false,
@ -76,7 +75,7 @@ export const buildSwPlugin = ({ swSrc, swDest }) => {
filter: { id: exactRegex(swEnvNameResolved) }, filter: { id: exactRegex(swEnvNameResolved) },
handler() { handler() {
return `self.serviceWorkerOption = { assets: ${JSON.stringify(assets)} };` return `self.serviceWorkerOption = { assets: ${JSON.stringify(assets)} };`
} },
}, },
}) })
}, },
@ -85,7 +84,7 @@ export const buildSwPlugin = ({ swSrc, swDest }) => {
filter: { id: new RegExp(swDest) }, filter: { id: new RegExp(swDest) },
handler() { handler() {
return swFullSrc return swFullSrc
} },
}, },
load: { load: {
filter: { id: new RegExp(swFullSrc) }, filter: { id: new RegExp(swFullSrc) },
@ -100,12 +99,12 @@ export const buildSwPlugin = ({ swSrc, swDest }) => {
load: { load: {
filter: { id: exactRegex(swEnvNameResolved) }, filter: { id: exactRegex(swEnvNameResolved) },
handler: () => 'self.serviceWorkerOption = { assets: [] }', handler: () => 'self.serviceWorkerOption = { assets: [] }',
} },
}) })
const swBundle = await build(config) const swBundle = await build(config)
return swBundle.output[0] return swBundle.output[0]
} },
}, },
closeBundle: { closeBundle: {
order: 'post', order: 'post',

View file

@ -38,13 +38,14 @@ export default {
InstanceSpecificPanel, InstanceSpecificPanel,
FeaturesPanel, FeaturesPanel,
WhoToFollowPanel: defineAsyncComponent( WhoToFollowPanel: defineAsyncComponent(
() => import('src/components/who_to_follow_panel/who_to_follow_panel.vue'), () =>
import('src/components/who_to_follow_panel/who_to_follow_panel.vue'),
), ),
ShoutPanel: defineAsyncComponent( ShoutPanel: defineAsyncComponent(
() => import('src/components/shout_panel/shout_panel.vue'), () => import('src/components/shout_panel/shout_panel.vue'),
), ),
MediaModal: defineAsyncComponent( MediaModal: defineAsyncComponent(
() => import( 'src/components/media_modal/media_modal.vue'), () => import('src/components/media_modal/media_modal.vue'),
), ),
MobilePostStatusButton, MobilePostStatusButton,
MobileNav, MobileNav,
@ -53,13 +54,15 @@ export default {
() => import('src/components/settings_modal/settings_modal.vue'), () => import('src/components/settings_modal/settings_modal.vue'),
), ),
UpdateNotification: defineAsyncComponent( UpdateNotification: defineAsyncComponent(
() => import('src/components/update_notification/update_notification.vue'), () =>
import('src/components/update_notification/update_notification.vue'),
), ),
PostStatusModal: defineAsyncComponent( PostStatusModal: defineAsyncComponent(
() => import('src/components/post_status_modal/post_status_modal.vue'), () => import('src/components/post_status_modal/post_status_modal.vue'),
), ),
UserReportingModal: defineAsyncComponent( UserReportingModal: defineAsyncComponent(
() => import('src/components/user_reporting_modal/user_reporting_modal.vue') () =>
import('src/components/user_reporting_modal/user_reporting_modal.vue'),
), ),
EditStatusModal: defineAsyncComponent( EditStatusModal: defineAsyncComponent(
() => import('src/components/edit_status_modal/edit_status_modal.vue'), () => import('src/components/edit_status_modal/edit_status_modal.vue'),

View file

@ -6,8 +6,8 @@ import { createRouter, createWebHistory } from 'vue-router'
import VueVirtualScroller from 'vue-virtual-scroller' import VueVirtualScroller from 'vue-virtual-scroller'
import 'vue-virtual-scroller/dist/vue-virtual-scroller.css' import 'vue-virtual-scroller/dist/vue-virtual-scroller.css'
import Status from 'src/components/status/status.vue'
import RichContent from 'src/components/rich_content/rich_content.jsx' import RichContent from 'src/components/rich_content/rich_content.jsx'
import Status from 'src/components/status/status.vue'
import StillImage from 'src/components/still-image/still-image.vue' import StillImage from 'src/components/still-image/still-image.vue'
import { config } from '@fortawesome/fontawesome-svg-core' import { config } from '@fortawesome/fontawesome-svg-core'

View file

@ -1,9 +1,9 @@
import { mapState } from 'pinia' import { mapState } from 'pinia'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import ProgressButton from 'src/components/progress_button/progress_button.vue' import ProgressButton from 'src/components/progress_button/progress_button.vue'
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'
@ -30,7 +30,10 @@ const AccountActions = {
() => import('src/components/confirm_modal/confirm_modal.vue'), () => import('src/components/confirm_modal/confirm_modal.vue'),
), ),
UserTimedFilterModal: defineAsyncComponent( UserTimedFilterModal: defineAsyncComponent(
() => import( 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'), () =>
import(
'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
),
), ),
}, },
methods: { methods: {

View file

@ -1,15 +1,13 @@
import { mapState } from 'vuex' import { mapState } from 'vuex'
import localeService from '../../services/locale/locale.service.js'
import AnnouncementEditor from 'src/components/announcement_editor/announcement_editor.vue' import AnnouncementEditor from 'src/components/announcement_editor/announcement_editor.vue'
import localeService from '../../services/locale/locale.service.js'
import { useAnnouncementsStore } from 'src/stores/announcements.js' import { useAnnouncementsStore } from 'src/stores/announcements.js'
const Announcement = { const Announcement = {
components: { components: {
AnnouncementEditor, AnnouncementEditor,
}, },
data() { data() {
return { return {

View file

@ -1,10 +1,9 @@
import { mapState } from 'pinia' import { mapState } from 'pinia'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import nsfwImage from '../../assets/nsfw.png'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import VideoAttachment from 'src/components/video_attachment/video_attachment.vue' import VideoAttachment from 'src/components/video_attachment/video_attachment.vue'
import nsfwImage from '../../assets/nsfw.png'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js'
@ -69,12 +68,10 @@ const Attachment = {
} }
}, },
components: { components: {
Flash: defineAsyncComponent( Flash: defineAsyncComponent(() => import('src/components/flash/flash.vue')),
() => import( 'src/components/flash/flash.vue'),
),
VideoAttachment: defineAsyncComponent( VideoAttachment: defineAsyncComponent(
() => import( 'src/components/video_attachment/video_attachment.vue'), () => import('src/components/video_attachment/video_attachment.vue'),
), ),
Popover, Popover,
}, },

View file

@ -1,4 +1,3 @@
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserLink from 'src/components/user_link/user_link.vue' import UserLink from 'src/components/user_link/user_link.vue'
import UserPopover from 'src/components/user_popover/user_popover.vue' import UserPopover from 'src/components/user_popover/user_popover.vue'

View file

@ -1,7 +1,7 @@
import { mapState } from 'pinia' import { mapState } from 'pinia'
import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue' import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue'
import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js'

View file

@ -1,5 +1,5 @@
import apiService from '../../services/api/api.service'
import EmojiPicker from 'src/components/emoji_picker/emoji_picker.vue' import EmojiPicker from 'src/components/emoji_picker/emoji_picker.vue'
import apiService from '../../services/api/api.service'
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js' import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js'
import { useInterfaceStore } from 'src/stores/interface.js' import { useInterfaceStore } from 'src/stores/interface.js'

View file

@ -2,13 +2,13 @@ import { throttle } from 'lodash'
import { mapState as mapPiniaState } from 'pinia' import { mapState as mapPiniaState } from 'pinia'
import { mapGetters, mapState } from 'vuex' import { mapGetters, mapState } from 'vuex'
import ChatMessage from 'src/components/chat_message/chat_message.vue'
import ChatTitle from 'src/components/chat_title/chat_title.vue'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import { WSConnectionStatus } from '../../services/api/api.service.js' import { WSConnectionStatus } from '../../services/api/api.service.js'
import chatService from '../../services/chat_service/chat_service.js' import chatService from '../../services/chat_service/chat_service.js'
import { buildFakeMessage } from '../../services/chat_utils/chat_utils.js' import { buildFakeMessage } from '../../services/chat_utils/chat_utils.js'
import { promiseInterval } from '../../services/promise_interval/promise_interval.js' import { promiseInterval } from '../../services/promise_interval/promise_interval.js'
import ChatMessage from 'src/components/chat_message/chat_message.vue'
import ChatTitle from 'src/components/chat_title/chat_title.vue'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import { import {
getNewTopPosition, getNewTopPosition,
getScrollPosition, getScrollPosition,

View file

@ -1,15 +1,15 @@
import { mapState as mapPiniaState } from 'pinia' import { mapState as mapPiniaState } from 'pinia'
import { mapGetters, mapState } from 'vuex'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import { mapGetters, mapState } from 'vuex'
import Attachment from 'src/components/attachment/attachment.vue' import Attachment from 'src/components/attachment/attachment.vue'
import ChatMessageDate from 'src/components/chat_message_date/chat_message_date.vue' import ChatMessageDate from 'src/components/chat_message_date/chat_message_date.vue'
import Gallery from 'src/components/gallery/gallery.vue'
import LinkPreview from 'src/components/link-preview/link-preview.vue' import LinkPreview from 'src/components/link-preview/link-preview.vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import StatusContent from 'src/components/status_content/status_content.vue' import StatusContent from 'src/components/status_content/status_content.vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserPopover from 'src/components/user_popover/user_popover.vue' import UserPopover from 'src/components/user_popover/user_popover.vue'
import Gallery from 'src/components/gallery/gallery.vue'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
import { useInterfaceStore } from 'src/stores/interface' import { useInterfaceStore } from 'src/stores/interface'

View file

@ -1,6 +1,5 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserPopover from 'src/components/user_popover/user_popover.vue' import UserPopover from 'src/components/user_popover/user_popover.vue'

View file

@ -66,8 +66,8 @@
<script> <script>
import { throttle } from 'lodash' import { throttle } from 'lodash'
import { hex2rgb } from '../../services/color_convert/color_convert.js'
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.vue'
import { hex2rgb } from '../../services/color_convert/color_convert.js'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { faEyeDropper } from '@fortawesome/free-solid-svg-icons' import { faEyeDropper } from '@fortawesome/free-solid-svg-icons'

View file

@ -2,11 +2,10 @@ import { clone, filter, findIndex, get, reduce } from 'lodash'
import { mapState as mapPiniaState } from 'pinia' import { mapState as mapPiniaState } from 'pinia'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import { WSConnectionStatus } from '../../services/api/api.service.js'
import QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_settings.vue' import QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_settings.vue'
import QuickViewSettings from 'src/components/quick_view_settings/quick_view_settings.vue' import QuickViewSettings from 'src/components/quick_view_settings/quick_view_settings.vue'
import ThreadTree from 'src/components/thread_tree/thread_tree.vue' import ThreadTree from 'src/components/thread_tree/thread_tree.vue'
import { WSConnectionStatus } from '../../services/api/api.service.js'
import { useInterfaceStore } from 'src/stores/interface' import { useInterfaceStore } from 'src/stores/interface'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'

View file

@ -1,9 +1,9 @@
import { cloneDeep } from 'lodash' import { cloneDeep } from 'lodash'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import StatusContent from 'src/components/status_content/status_content.vue'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import Gallery from 'src/components/gallery/gallery.vue' import Gallery from 'src/components/gallery/gallery.vue'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import StatusContent from 'src/components/status_content/status_content.vue'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'

View file

@ -1,4 +1,5 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'
const DraftCloser = { const DraftCloser = {

View file

@ -1,5 +1,5 @@
import statusPosterService from '../../services/status_poster/status_poster.service.js'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue' import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import statusPosterService from '../../services/status_poster/status_poster.service.js'
const EditStatusForm = { const EditStatusForm = {
components: { components: {

View file

@ -8,7 +8,7 @@ import { useEditStatusStore } from 'src/stores/editStatus.js'
const EditStatusModal = { const EditStatusModal = {
components: { components: {
EditStatusForm: defineAsyncComponent( EditStatusForm: defineAsyncComponent(
() => import( 'src/components/edit_status_form/edit_status_form.vue'), () => import('src/components/edit_status_form/edit_status_form.vue'),
), ),
Modal, Modal,
}, },

View file

@ -1,10 +1,9 @@
import { chunk, debounce, trim } from 'lodash' import { chunk, debounce, trim } from 'lodash'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import Checkbox from 'src/components/checkbox/checkbox.vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import { ensureFinalFallback } from '../../i18n/languages.js' import { ensureFinalFallback } from '../../i18n/languages.js'
import Checkbox from 'src/components/checkbox/checkbox.vue'
import { useEmojiStore } from 'src/stores/emoji.js' import { useEmojiStore } from 'src/stores/emoji.js'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'

View file

@ -1,4 +1,3 @@
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserListPopover from 'src/components/user_list_popover/user_list_popover.vue' import UserListPopover from 'src/components/user_list_popover/user_list_popover.vue'
@ -17,7 +16,6 @@ const EmojiReactions = {
components: { components: {
UserAvatar, UserAvatar,
UserListPopover, UserListPopover,
}, },
props: ['status'], props: ['status'],
data: () => ({ data: () => ({

View file

@ -1,7 +1,7 @@
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import LocalSettingIndicator from 'src/components/settings_modal/helpers/local_setting_indicator.vue'
import Select from 'src/components/select/select.vue' import Select from 'src/components/select/select.vue'
import LocalSettingIndicator from 'src/components/settings_modal/helpers/local_setting_indicator.vue'
import { useInterfaceStore } from 'src/stores/interface.js' import { useInterfaceStore } from 'src/stores/interface.js'

View file

@ -1,5 +1,5 @@
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import Notifications from 'src/components/notifications/notifications.vue' import Notifications from 'src/components/notifications/notifications.vue'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
const tabModeDict = { const tabModeDict = {
mentions: ['mention'], mentions: ['mention'],

View file

@ -1,7 +1,7 @@
import { v4 as uuidv4 } from 'uuid' import { v4 as uuidv4 } from 'uuid'
import localeService from '../../services/locale/locale.service.js'
import Select from 'src/components/select/select.vue' import Select from 'src/components/select/select.vue'
import localeService from '../../services/locale/locale.service.js'
export default { export default {
components: { components: {

View file

@ -1,10 +1,10 @@
import { mapState as mapPiniaState } from 'pinia' import { mapState as mapPiniaState } from 'pinia'
import { mapGetters, mapState } from 'vuex' import { mapGetters, mapState } from 'vuex'
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue' import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue'
import ListsUserSearch from 'src/components/lists_user_search/lists_user_search.vue' import ListsUserSearch from 'src/components/lists_user_search/lists_user_search.vue'
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import { useInterfaceStore } from 'src/stores/interface.js' import { useInterfaceStore } from 'src/stores/interface.js'

View file

@ -1,10 +1,10 @@
import GestureService from '../../services/gesture_service/gesture_service'
import { useMediaViewerStore } from 'src/stores/media_viewer.js'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import Modal from 'src/components/modal/modal.vue' import Modal from 'src/components/modal/modal.vue'
import StillImage from 'src/components/still-image/still-image.vue' import StillImage from 'src/components/still-image/still-image.vue'
import GestureService from '../../services/gesture_service/gesture_service'
import { useMediaViewerStore } from 'src/stores/media_viewer.js'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { import {
@ -18,20 +18,17 @@ library.add(faChevronLeft, faChevronRight, faCircleNotch, faTimes)
const MediaModal = { const MediaModal = {
components: { components: {
VideoAttachment: defineAsyncComponent( VideoAttachment: defineAsyncComponent(
() => import( 'src/components/video_attachment/video_attachment.vue'), () => import('src/components/video_attachment/video_attachment.vue'),
), ),
PinchZoom: defineAsyncComponent( PinchZoom: defineAsyncComponent(
() => import( 'src/components/pinch_zoom/pinch_zoom.vue'), () => import('src/components/pinch_zoom/pinch_zoom.vue'),
), ),
SwipeClick: defineAsyncComponent( SwipeClick: defineAsyncComponent(
() => import( 'src/components/swipe_click/swipe_click.vue'), () => import('src/components/swipe_click/swipe_click.vue'),
), ),
Modal, Modal,
Flash: defineAsyncComponent( Flash: defineAsyncComponent(() => import('src/components/flash/flash.vue')),
() => import( 'src/components/flash/flash.vue'),
),
}, },
data() { data() {
return { return {

View file

@ -1,5 +1,5 @@
import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue' import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue'
import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
const MuteCard = { const MuteCard = {
props: ['userId'], props: ['userId'],

View file

@ -12,7 +12,6 @@ import {
TIMELINES, TIMELINES,
} from 'src/components/navigation/navigation.js' } from 'src/components/navigation/navigation.js'
import { useAnnouncementsStore } from 'src/stores/announcements' import { useAnnouncementsStore } from 'src/stores/announcements'
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders' import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
@ -54,9 +53,7 @@ const NavPanel = {
return routeTo(item, this.currentUser) return routeTo(item, this.currentUser)
}, },
}, },
components: { components: {},
},
computed: { computed: {
getters() { getters() {
return this.$store.getters return this.$store.getters

View file

@ -1,25 +1,22 @@
import { defineAsyncComponent } from 'vue'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import Report from 'src/components/report/report.vue'
import StatusContent from 'src/components/status_content/status_content.vue'
import Timeago from 'src/components/timeago/timeago.vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserLink from 'src/components/user_link/user_link.vue'
import UserPopover from 'src/components/user_popover/user_popover.vue'
import { isStatusNotification } from '../../services/notification_utils/notification_utils.js' import { isStatusNotification } from '../../services/notification_utils/notification_utils.js'
import { import {
highlightClass, highlightClass,
highlightStyle, highlightStyle,
} from '../../services/user_highlighter/user_highlighter.js' } from '../../services/user_highlighter/user_highlighter.js'
import Report from 'src/components/report/report.vue'
import StatusContent from 'src/components/status_content/status_content.vue'
import Timeago from 'src/components/timeago/timeago.vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserLink from 'src/components/user_link/user_link.vue'
import UserPopover from 'src/components/user_popover/user_popover.vue'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'
import { useUserHighlightStore } from 'src/stores/user_highlight.js' import { useUserHighlightStore } from 'src/stores/user_highlight.js'
import { defineAsyncComponent } from 'vue'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator' import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
@ -70,8 +67,9 @@ const Notification = {
UserPopover, UserPopover,
UserLink, UserLink,
ConfirmModal: defineAsyncComponent(() => import('src/components/confirm_modal/confirm_modal.vue')), ConfirmModal: defineAsyncComponent(
() => import('src/components/confirm_modal/confirm_modal.vue'),
),
}, },
mounted() { mounted() {
document.addEventListener('selectionchange', this.onContentSelect) document.addEventListener('selectionchange', this.onContentSelect)

View file

@ -2,6 +2,8 @@ import { mapState } from 'pinia'
import { computed } from 'vue' import { computed } from 'vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import ExtraNotifications from 'src/components/extra_notifications/extra_notifications.vue'
import Notification from 'src/components/notification/notification.vue'
import FaviconService from '../../services/favicon_service/favicon_service.js' import FaviconService from '../../services/favicon_service/favicon_service.js'
import { import {
ACTIONABLE_NOTIFICATION_TYPES, ACTIONABLE_NOTIFICATION_TYPES,
@ -11,8 +13,6 @@ import {
unseenNotificationsFromStore, unseenNotificationsFromStore,
} from '../../services/notification_utils/notification_utils.js' } from '../../services/notification_utils/notification_utils.js'
import notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js' import notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'
import ExtraNotifications from 'src/components/extra_notifications/extra_notifications.vue'
import Notification from 'src/components/notification/notification.vue'
import NotificationFilters from './notification_filters.vue' import NotificationFilters from './notification_filters.vue'
import { useAnnouncementsStore } from 'src/stores/announcements.js' import { useAnnouncementsStore } from 'src/stores/announcements.js'

View file

@ -1,5 +1,4 @@
import Checkbox from 'components/checkbox/checkbox.vue' import Checkbox from 'components/checkbox/checkbox.vue'
import Timeago from 'components/timeago/timeago.vue' import Timeago from 'components/timeago/timeago.vue'
import genRandomSeed from '../../services/random_seed/random_seed.service.js' import genRandomSeed from '../../services/random_seed/random_seed.service.js'

View file

@ -1,13 +1,14 @@
import { debounce, map, reject, uniqBy } from 'lodash' import { debounce, map, reject, uniqBy } from 'lodash'
import { mapActions, mapState } from 'pinia' import { mapActions, mapState } from 'pinia'
import { mapGetters } from 'vuex'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import { mapGetters } from 'vuex'
import Attachment from 'src/components/attachment/attachment.vue' import Attachment from 'src/components/attachment/attachment.vue'
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.vue'
import DraftCloser from 'src/components/draft_closer/draft_closer.vue' import DraftCloser from 'src/components/draft_closer/draft_closer.vue'
import EmojiInput from 'src/components/emoji_input/emoji_input.vue' import EmojiInput from 'src/components/emoji_input/emoji_input.vue'
import suggestor from 'src/components/emoji_input/suggestor.js' import suggestor from 'src/components/emoji_input/suggestor.js'
import Gallery from 'src/components/gallery/gallery.vue'
import MediaUpload from 'src/components/media_upload/media_upload.vue' import MediaUpload from 'src/components/media_upload/media_upload.vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import ScopeSelector from 'src/components/scope_selector/scope_selector.vue' import ScopeSelector from 'src/components/scope_selector/scope_selector.vue'
@ -17,7 +18,6 @@ import { propsToNative } from '../../services/attributes_helper/attributes_helpe
import { findOffset } from '../../services/offset_finder/offset_finder.service.js' import { findOffset } from '../../services/offset_finder/offset_finder.service.js'
import genRandomSeed from '../../services/random_seed/random_seed.service.js' import genRandomSeed from '../../services/random_seed/random_seed.service.js'
import statusPoster from '../../services/status_poster/status_poster.service.js' import statusPoster from '../../services/status_poster/status_poster.service.js'
import Gallery from 'src/components/gallery/gallery.vue'
import { useEmojiStore } from 'src/stores/emoji.js' import { useEmojiStore } from 'src/stores/emoji.js'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
@ -141,10 +141,10 @@ const PostStatusForm = {
MediaUpload, MediaUpload,
EmojiInput, EmojiInput,
PollForm: defineAsyncComponent( PollForm: defineAsyncComponent(
() => import( 'src/components/poll/poll_form.vue') () => import('src/components/poll/poll_form.vue'),
), ),
QuoteForm: defineAsyncComponent( QuoteForm: defineAsyncComponent(
() => import( 'src/components/quote/quote_form.vue') () => import('src/components/quote/quote_form.vue'),
), ),
ScopeSelector, ScopeSelector,
Checkbox, Checkbox,

View file

@ -1,15 +1,12 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { faCircleNotch } from '@fortawesome/free-solid-svg-icons' import { faCircleNotch } from '@fortawesome/free-solid-svg-icons'
library.add(faCircleNotch) library.add(faCircleNotch)
export default { export default {
components: { components: {},
},
name: 'Quote', name: 'Quote',
props: { props: {
visible: { visible: {

View file

@ -3,9 +3,9 @@ import { required, requiredIf, sameAs } from '@vuelidate/validators'
import { mapState as mapPiniaState } from 'pinia' import { mapState as mapPiniaState } from 'pinia'
import { mapActions, mapState } from 'vuex' import { mapActions, mapState } from 'vuex'
import localeService from '../../services/locale/locale.service.js'
import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue' import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'
import TermsOfServicePanel from 'src/components/terms_of_service_panel/terms_of_service_panel.vue' import TermsOfServicePanel from 'src/components/terms_of_service_panel/terms_of_service_panel.vue'
import localeService from '../../services/locale/locale.service.js'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'

View file

@ -1,4 +1,3 @@
import Select from 'src/components/select/select.vue' import Select from 'src/components/select/select.vue'
import StatusContent from 'src/components/status_content/status_content.vue' import StatusContent from 'src/components/status_content/status_content.vue'
import Timeago from 'src/components/timeago/timeago.vue' import Timeago from 'src/components/timeago/timeago.vue'
@ -14,7 +13,6 @@ const Report = {
Select, Select,
StatusContent, StatusContent,
Timeago, Timeago,
}, },
computed: { computed: {
report() { report() {

View file

@ -3,7 +3,7 @@ import { flattenDeep, unescape as ldUnescape } from 'lodash'
import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue' import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'
import { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.js' import { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.js'
import MentionsLine from 'src/components/mentions_line/mentions_line.vue' import MentionsLine from 'src/components/mentions_line/mentions_line.vue'
import StillImage from 'src/components/still-image/still-image.vue'
import StillImageEmojiPopover from 'src/components/still-image/still-image-emoji-popover.vue' import StillImageEmojiPopover from 'src/components/still-image/still-image-emoji-popover.vue'
import { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js' import { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js'

View file

@ -1,9 +1,8 @@
import { map, uniqBy } from 'lodash' import { map, uniqBy } from 'lodash'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import Conversation from 'src/components/conversation/conversation.vue' import Conversation from 'src/components/conversation/conversation.vue'
import FollowCard from 'src/components/follow_card/follow_card.vue' import FollowCard from 'src/components/follow_card/follow_card.vue'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { faCircleNotch, faSearch } from '@fortawesome/free-solid-svg-icons' import { faCircleNotch, faSearch } from '@fortawesome/free-solid-svg-icons'

View file

@ -151,7 +151,6 @@
<script> <script>
import Popover from 'components/popover/popover.vue' import Popover from 'components/popover/popover.vue'
import SelectComponent from 'components/select/select.vue' import SelectComponent from 'components/select/select.vue'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
export default { export default {

View file

@ -1,9 +1,9 @@
import { mapActions, mapState } from 'pinia' import { mapActions, mapState } from 'pinia'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import UserCard from 'src/components/user_card/user_card.vue'
import { USERNAME_ROUTES } from 'src/components/navigation/navigation.js' import { USERNAME_ROUTES } from 'src/components/navigation/navigation.js'
import UserCard from 'src/components/user_card/user_card.vue'
import GestureService from '../../services/gesture_service/gesture_service' import GestureService from '../../services/gesture_service/gesture_service'
import { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils' import { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'

View file

@ -1,4 +1,4 @@
import { map, groupBy } from 'lodash' import { groupBy, map } from 'lodash'
import { mapGetters, mapState } from 'vuex' import { mapGetters, mapState } from 'vuex'
import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue' import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue'

View file

@ -5,15 +5,15 @@ import AvatarList from 'src/components/avatar_list/avatar_list.vue'
import EmojiReactions from 'src/components/emoji_reactions/emoji_reactions.vue' import EmojiReactions from 'src/components/emoji_reactions/emoji_reactions.vue'
import MentionLink from 'src/components/mention_link/mention_link.vue' import MentionLink from 'src/components/mention_link/mention_link.vue'
import MentionsLine from 'src/components/mentions_line/mentions_line.vue' import MentionsLine from 'src/components/mentions_line/mentions_line.vue'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import StatusActionButtons from 'src/components/status_action_buttons/status_action_buttons.vue' import StatusActionButtons from 'src/components/status_action_buttons/status_action_buttons.vue'
import StatusContent from 'src/components/status_content/status_content.vue' import StatusContent from 'src/components/status_content/status_content.vue'
import StatusPopover from 'src/components/status_popover/status_popover.vue'
import Timeago from 'src/components/timeago/timeago.vue' import Timeago from 'src/components/timeago/timeago.vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserLink from 'src/components/user_link/user_link.vue' import UserLink from 'src/components/user_link/user_link.vue'
import UserListPopover from 'src/components/user_list_popover/user_list_popover.vue' import UserListPopover from 'src/components/user_list_popover/user_list_popover.vue'
import UserPopover from 'src/components/user_popover/user_popover.vue' import UserPopover from 'src/components/user_popover/user_popover.vue'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import StatusPopover from 'src/components/status_popover/status_popover.vue'
import { muteFilterHits } from '../../services/status_parser/status_parser.js' import { muteFilterHits } from '../../services/status_parser/status_parser.js'
import { import {
highlightClass, highlightClass,

View file

@ -1,6 +1,7 @@
import { defineAsyncComponent } from 'vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import ActionButton from './action_button.vue' import ActionButton from './action_button.vue'
import { defineAsyncComponent } from 'vue'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { import {
@ -16,10 +17,13 @@ export default {
ActionButton, ActionButton,
Popover, Popover,
MuteConfirm: defineAsyncComponent( MuteConfirm: defineAsyncComponent(
() => import( 'src/components/confirm_modal/mute_confirm.vue'), () => import('src/components/confirm_modal/mute_confirm.vue'),
), ),
UserTimedFilterModal: defineAsyncComponent( UserTimedFilterModal: defineAsyncComponent(
() => import( 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'), () =>
import(
'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
),
), ),
}, },
props: ['button', 'status'], props: ['button', 'status'],

View file

@ -1,7 +1,5 @@
import { mapState } from 'pinia' import { mapState } from 'pinia'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
@ -113,9 +111,7 @@ const StatusBody = {
}, },
...mapState(useMergedConfigStore, ['mergedConfig']), ...mapState(useMergedConfigStore, ['mergedConfig']),
}, },
components: { components: {},
},
mounted() { mounted() {
this.status.attentions && this.status.attentions &&
this.status.attentions.forEach((attn) => { this.status.attentions.forEach((attn) => {

View file

@ -2,7 +2,6 @@ import { mapState } from 'pinia'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js' import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
@ -18,7 +17,6 @@ const StatusBookmarkFolderMenu = {
}, },
components: { components: {
Popover, Popover,
}, },
computed: { computed: {
...mapState(useBookmarkFoldersStore, { ...mapState(useBookmarkFoldersStore, {

View file

@ -1,12 +1,12 @@
import { mapState as mapPiniaState } from 'pinia' import { mapState as mapPiniaState } from 'pinia'
import { mapGetters, mapState } from 'vuex'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import { mapGetters, mapState } from 'vuex'
import StatusBody from 'src/components/status_body/status_body.vue'
import Attachment from 'src/components/attachment/attachment.vue' import Attachment from 'src/components/attachment/attachment.vue'
import Gallery from 'src/components/gallery/gallery.vue'
import LinkPreview from 'src/components/link-preview/link-preview.vue' import LinkPreview from 'src/components/link-preview/link-preview.vue'
import Poll from 'src/components/poll/poll.vue' import Poll from 'src/components/poll/poll.vue'
import Gallery from 'src/components/gallery/gallery.vue' import StatusBody from 'src/components/status_body/status_body.vue'
import { useMediaViewerStore } from 'src/stores/media_viewer.js' import { useMediaViewerStore } from 'src/stores/media_viewer.js'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'

View file

@ -2,13 +2,11 @@ import { get } from 'lodash'
import Modal from 'src/components/modal/modal.vue' import Modal from 'src/components/modal/modal.vue'
import { useStatusHistoryStore } from 'src/stores/statusHistory.js' import { useStatusHistoryStore } from 'src/stores/statusHistory.js'
const StatusHistoryModal = { const StatusHistoryModal = {
components: { components: {
Modal, Modal,
}, },
data() { data() {
return { return {

View file

@ -2,8 +2,6 @@ import Popover from 'components/popover/popover.vue'
import SelectComponent from 'components/select/select.vue' import SelectComponent from 'components/select/select.vue'
import { mapState } from 'pinia' import { mapState } from 'pinia'
import { useEmojiStore } from 'src/stores/emoji' import { useEmojiStore } from 'src/stores/emoji'
import { useInterfaceStore } from 'src/stores/interface' import { useInterfaceStore } from 'src/stores/interface'

View file

@ -1,5 +1,3 @@
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { import {
faAngleDoubleDown, faAngleDoubleDown,
@ -9,9 +7,7 @@ import {
library.add(faAngleDoubleDown, faAngleDoubleRight) library.add(faAngleDoubleDown, faAngleDoubleRight)
const ThreadTree = { const ThreadTree = {
components: { components: {},
},
name: 'ThreadTree', name: 'ThreadTree',
props: { props: {
depth: Number, depth: Number,

View file

@ -5,7 +5,6 @@ import Conversation from 'src/components/conversation/conversation.vue'
import QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_settings.vue' import QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_settings.vue'
import QuickViewSettings from 'src/components/quick_view_settings/quick_view_settings.vue' import QuickViewSettings from 'src/components/quick_view_settings/quick_view_settings.vue'
import ScrollTopButton from 'src/components/scroll_top_button/scroll_top_button.vue' import ScrollTopButton from 'src/components/scroll_top_button/scroll_top_button.vue'
import TimelineMenu from 'src/components/timeline_menu/timeline_menu.vue' import TimelineMenu from 'src/components/timeline_menu/timeline_menu.vue'
import { useInterfaceStore } from 'src/stores/interface.js' import { useInterfaceStore } from 'src/stores/interface.js'
@ -52,7 +51,6 @@ const Timeline = {
} }
}, },
components: { components: {
ScrollTopButton, ScrollTopButton,
Conversation, Conversation,
TimelineMenu, TimelineMenu,

View file

@ -1,11 +1,11 @@
import { mapState as mapPiniaState } from 'pinia' import { mapState as mapPiniaState } from 'pinia'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import BookmarkFoldersMenuContent from 'src/components/bookmark_folders_menu/bookmark_folders_menu_content.vue'
import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'
import { filterNavigation } from 'src/components/navigation/filter.js' import { filterNavigation } from 'src/components/navigation/filter.js'
import { TIMELINES } from 'src/components/navigation/navigation.js' import { TIMELINES } from 'src/components/navigation/navigation.js'
import NavigationEntry from 'src/components/navigation/navigation_entry.vue' import NavigationEntry from 'src/components/navigation/navigation_entry.vue'
import BookmarkFoldersMenuContent from 'src/components/bookmark_folders_menu/bookmark_folders_menu_content.vue'
import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders' import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders'

View file

@ -1,5 +1,3 @@
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
import { useInterfaceStore } from 'src/stores/interface.js' import { useInterfaceStore } from 'src/stores/interface.js'
@ -41,9 +39,7 @@ const UserAvatar = {
betterShadow: useInterfaceStore().browserSupport.cssFilter, betterShadow: useInterfaceStore().browserSupport.cssFilter,
} }
}, },
components: { components: {},
},
methods: { methods: {
imgSrc(src) { imgSrc(src) {
return !src || this.showPlaceholder ? this.defaultAvatar : src return !src || this.showPlaceholder ? this.defaultAvatar : src

View file

@ -8,14 +8,13 @@ import { mapState } from 'pinia'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.vue'
import ColorInput from 'src/components/color_input/color_input.vue'
import EmojiInput from 'src/components/emoji_input/emoji_input.vue' import EmojiInput from 'src/components/emoji_input/emoji_input.vue'
import suggestor from 'src/components/emoji_input/suggestor.js' import suggestor from 'src/components/emoji_input/suggestor.js'
import ProgressButton from 'src/components/progress_button/progress_button.vue' import ProgressButton from 'src/components/progress_button/progress_button.vue'
import Select from 'src/components/select/select.vue' import Select from 'src/components/select/select.vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserLink from 'src/components/user_link/user_link.vue' import UserLink from 'src/components/user_link/user_link.vue'
import ColorInput from 'src/components/color_input/color_input.vue'
import { useEmojiStore } from 'src/stores/emoji.js' import { useEmojiStore } from 'src/stores/emoji.js'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
@ -118,35 +117,38 @@ export default {
}, },
components: { components: {
DialogModal: defineAsyncComponent( DialogModal: defineAsyncComponent(
() => import( 'src/components/dialog_modal/dialog_modal.vue'), () => import('src/components/dialog_modal/dialog_modal.vue'),
), ),
UserAvatar, UserAvatar,
Checkbox, Checkbox,
RemoteFollow: defineAsyncComponent( RemoteFollow: defineAsyncComponent(
() => import( 'src/components/remote_follow/remote_follow.vue'), () => import('src/components/remote_follow/remote_follow.vue'),
), ),
ModerationTools: defineAsyncComponent( ModerationTools: defineAsyncComponent(
() => import( 'src/components/moderation_tools/moderation_tools.vue'), () => import('src/components/moderation_tools/moderation_tools.vue'),
), ),
AccountActions: defineAsyncComponent( AccountActions: defineAsyncComponent(
() => import( 'src/components/account_actions/account_actions.vue'), () => import('src/components/account_actions/account_actions.vue'),
), ),
ProgressButton, ProgressButton,
FollowButton: defineAsyncComponent( FollowButton: defineAsyncComponent(
() => import( 'src/components/follow_button/follow_button.vue'), () => import('src/components/follow_button/follow_button.vue'),
), ),
Select, Select,
UserLink, UserLink,
UserNote: defineAsyncComponent( UserNote: defineAsyncComponent(
() => import( 'src/components/user_note/user_note.vue'), () => import('src/components/user_note/user_note.vue'),
), ),
UserTimedFilterModal: defineAsyncComponent( UserTimedFilterModal: defineAsyncComponent(
() => import( 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'), () =>
import(
'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
),
), ),
ColorInput, ColorInput,
EmojiInput, EmojiInput,
ImageCropper: defineAsyncComponent( ImageCropper: defineAsyncComponent(
() => import( 'src/components/image_cropper/image_cropper.vue'), () => import('src/components/image_cropper/image_cropper.vue'),
), ),
}, },
data() { data() {

View file

@ -1,8 +1,8 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import UnicodeDomainIndicator from 'src/components/unicode_domain_indicator/unicode_domain_indicator.vue' import UnicodeDomainIndicator from 'src/components/unicode_domain_indicator/unicode_domain_indicator.vue'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'

View file

@ -1,5 +1,6 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue' import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import UserCard from 'src/components/user_card/user_card.vue' import UserCard from 'src/components/user_card/user_card.vue'

View file

@ -1,14 +1,13 @@
import { get } from 'lodash' import { get } from 'lodash'
import { mapState } from 'pinia' import { mapState } from 'pinia'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import withLoadMore from '../../hocs/with_load_more/with_load_more'
import Conversation from 'src/components/conversation/conversation.vue' import Conversation from 'src/components/conversation/conversation.vue'
import FollowCard from 'src/components/follow_card/follow_card.vue' import FollowCard from 'src/components/follow_card/follow_card.vue'
import List from 'src/components/list/list.vue' import List from 'src/components/list/list.vue'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import Timeline from 'src/components/timeline/timeline.vue' import Timeline from 'src/components/timeline/timeline.vue'
import UserCard from 'src/components/user_card/user_card.vue' import UserCard from 'src/components/user_card/user_card.vue'
import withLoadMore from '../../hocs/with_load_more/with_load_more'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js' import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js'
@ -203,7 +202,6 @@ const UserProfile = {
FollowCard, FollowCard,
TabSwitcher, TabSwitcher,
Conversation, Conversation,
}, },
} }

View file

@ -1,14 +1,12 @@
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.vue'
import List from 'src/components/list/list.vue' import List from 'src/components/list/list.vue'
import Modal from 'src/components/modal/modal.vue' import Modal from 'src/components/modal/modal.vue'
import UserLink from 'src/components/user_link/user_link.vue' import UserLink from 'src/components/user_link/user_link.vue'
import { useReportsStore } from 'src/stores/reports.js' import { useReportsStore } from 'src/stores/reports.js'
const UserReportingModal = { const UserReportingModal = {
components: { components: {
List, List,
Checkbox, Checkbox,
Modal, Modal,

View file

@ -1,5 +1,5 @@
import apiService from '../../services/api/api.service.js'
import FollowCard from 'src/components/follow_card/follow_card.vue' import FollowCard from 'src/components/follow_card/follow_card.vue'
import apiService from '../../services/api/api.service.js'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'

View file

@ -1,6 +1,6 @@
import { mount, shallowMount } from '@vue/test-utils' import { mount, shallowMount } from '@vue/test-utils'
import RichContent from 'src/components/rich_content/rich_content.jsx'
const attentions = [] const attentions = []
const global = { const global = {

View file

@ -12,10 +12,7 @@ import { getCommitHash } from './build/commit_hash.js'
import copyPlugin from './build/copy_plugin.js' import copyPlugin from './build/copy_plugin.js'
import emojisPlugin from './build/emojis_plugin.js' import emojisPlugin from './build/emojis_plugin.js'
import mswPlugin from './build/msw_plugin.js' import mswPlugin from './build/msw_plugin.js'
import { import { buildSwPlugin, swMessagesPlugin } from './build/sw_plugin.js'
buildSwPlugin,
swMessagesPlugin,
} from './build/sw_plugin.js'
const localConfigPath = '<projectRoot>/config/local.json' const localConfigPath = '<projectRoot>/config/local.json'
const normalizeTarget = (target) => { const normalizeTarget = (target) => {