Merge branch 'optimize' into shigusegubu-themes3

This commit is contained in:
Henry Jameson 2026-06-04 20:53:03 +03:00
commit 3ed79de625
39 changed files with 93 additions and 96 deletions

View file

@ -6,6 +6,10 @@ 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 StillImage from 'src/components/still-image/still-image.vue'
import { config } from '@fortawesome/fontawesome-svg-core' import { config } from '@fortawesome/fontawesome-svg-core'
import { import {
FontAwesomeIcon, FontAwesomeIcon,
@ -611,6 +615,9 @@ const afterStoreSetup = async ({ pinia, store, storageError, i18n }) => {
app.component('FAIcon', FontAwesomeIcon) app.component('FAIcon', FontAwesomeIcon)
app.component('FALayers', FontAwesomeLayers) app.component('FALayers', FontAwesomeLayers)
app.component('Status', Status)
app.component('RichContent', RichContent)
app.component('StillImage', StillImage)
// remove after vue 3.3 // remove after vue 3.3
app.config.unwrapInjectedRef = true app.config.unwrapInjectedRef = true

View file

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

View file

@ -3,7 +3,7 @@ import { defineAsyncComponent } from 'vue'
import nsfwImage from '../../assets/nsfw.png' import nsfwImage from '../../assets/nsfw.png'
import Popover from '../popover/popover.vue' import Popover from '../popover/popover.vue'
import StillImage from '../still-image/still-image.vue'
import VideoAttachment from '../video_attachment/video_attachment.vue' import VideoAttachment from '../video_attachment/video_attachment.vue'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
@ -69,10 +69,12 @@ const Attachment = {
} }
}, },
components: { components: {
Flash: defineAsyncComponent(() => import('src/components/flash/flash.vue')), Flash: defineAsyncComponent(
StillImage, () => 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,4 @@
import RichContent from 'src/components/rich_content/rich_content.jsx'
import UserAvatar from '../user_avatar/user_avatar.vue' import UserAvatar from '../user_avatar/user_avatar.vue'
import UserLink from '../user_link/user_link.vue' import UserLink from '../user_link/user_link.vue'
import UserPopover from '../user_popover/user_popover.vue' import UserPopover from '../user_popover/user_popover.vue'
@ -13,7 +13,7 @@ const BasicUserCard = {
components: { components: {
UserPopover, UserPopover,
UserAvatar, UserAvatar,
RichContent,
UserLink, UserLink,
}, },
methods: { methods: {

View file

@ -9,6 +9,7 @@ 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'
@ -34,9 +35,7 @@ const ChatMessage = {
Attachment, Attachment,
StatusContent, StatusContent,
UserAvatar, UserAvatar,
Gallery: defineAsyncComponent( Gallery,
() => import( 'src/components/gallery/gallery.vue'),
),
LinkPreview, LinkPreview,
ChatMessageDate, ChatMessageDate,
UserPopover, UserPopover,

View file

@ -1,6 +1,6 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import RichContent from 'src/components/rich_content/rich_content.jsx'
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'
@ -10,7 +10,7 @@ export default {
name: 'ChatTitle', name: 'ChatTitle',
components: { components: {
UserAvatar, UserAvatar,
RichContent,
UserPopover, UserPopover,
}, },
props: ['user', 'withAvatar'], props: ['user', 'withAvatar'],

View file

@ -5,7 +5,7 @@ import { mapState } from 'vuex'
import { WSConnectionStatus } from '../../services/api/api.service.js' import { WSConnectionStatus } from '../../services/api/api.service.js'
import QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue' import QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'
import QuickViewSettings from '../quick_view_settings/quick_view_settings.vue' import QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'
import Status from '../status/status.vue'
import ThreadTree from '../thread_tree/thread_tree.vue' import ThreadTree from '../thread_tree/thread_tree.vue'
import { useInterfaceStore } from 'src/stores/interface' import { useInterfaceStore } from 'src/stores/interface'
@ -402,7 +402,6 @@ const conversation = {
}), }),
}, },
components: { components: {
Status,
ThreadTree, ThreadTree,
QuickFilterSettings, QuickFilterSettings,
QuickViewSettings, QuickViewSettings,

View file

@ -3,6 +3,7 @@ import { defineAsyncComponent } from 'vue'
import StatusContent from 'src/components/status_content/status_content.vue' import StatusContent from 'src/components/status_content/status_content.vue'
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 Gallery from 'src/components/gallery/gallery.vue'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'
@ -21,9 +22,7 @@ const Draft = {
() => import('src/components/confirm_modal/confirm_modal.vue'), () => import('src/components/confirm_modal/confirm_modal.vue'),
), ),
StatusContent, StatusContent,
Gallery: defineAsyncComponent( Gallery,
() => import( 'src/components/gallery/gallery.vue')
),
}, },
props: { props: {
draft: { draft: {

View file

@ -4,7 +4,7 @@ import { defineAsyncComponent } from '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 '../checkbox/checkbox.vue' import Checkbox from '../checkbox/checkbox.vue'
import StillImage from '../still-image/still-image.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'
@ -142,7 +142,7 @@ const EmojiPicker = {
() => import('src/components/sticker_picker/sticker_picker.vue'), () => import('src/components/sticker_picker/sticker_picker.vue'),
), ),
Checkbox, Checkbox,
StillImage,
Popover, Popover,
}, },
methods: { methods: {

View file

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

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,18 +18,20 @@ library.add(faChevronLeft, faChevronRight, faCircleNotch, faTimes)
const MediaModal = { const MediaModal = {
components: { components: {
StillImage,
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(() => import('src/components/flash/flash.vue')), Flash: defineAsyncComponent(
() => import( 'src/components/flash/flash.vue'),
),
}, },
data() { data() {
return { return {

View file

@ -11,7 +11,7 @@ import {
routeTo, routeTo,
TIMELINES, TIMELINES,
} from 'src/components/navigation/navigation.js' } from 'src/components/navigation/navigation.js'
import StillImage from 'src/components/still-image/still-image.vue'
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'
@ -55,7 +55,7 @@ const NavPanel = {
}, },
}, },
components: { components: {
StillImage,
}, },
computed: { computed: {
getters() { getters() {

View file

@ -1,14 +1,14 @@
import { defineAsyncComponent } from 'vue'
import { mapState } from 'vuex' import { mapState } from 'vuex'
import RichContent from 'src/components/rich_content/rich_content.jsx'
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 '../report/report.vue' import Report from '../report/report.vue'
import Status from '../status/status.vue'
import StatusContent from '../status_content/status_content.vue' import StatusContent from '../status_content/status_content.vue'
import Timeago from '../timeago/timeago.vue' import Timeago from '../timeago/timeago.vue'
import UserAvatar from '../user_avatar/user_avatar.vue' import UserAvatar from '../user_avatar/user_avatar.vue'
@ -19,6 +19,7 @@ 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'
@ -64,14 +65,13 @@ const Notification = {
StatusContent, StatusContent,
UserAvatar, UserAvatar,
Timeago, Timeago,
Status,
Report, Report,
RichContent,
UserPopover, UserPopover,
UserLink, UserLink,
ConfirmModal: defineAsyncComponent( ConfirmModal: defineAsyncComponent(() => import('src/components/confirm_modal/confirm_modal.vue')),
() => import('src/components/confirm_modal/confirm_modal.vue'),
),
}, },
mounted() { mounted() {
document.addEventListener('selectionchange', this.onContentSelect) document.addEventListener('selectionchange', this.onContentSelect)

View file

@ -1,5 +1,5 @@
import Checkbox from 'components/checkbox/checkbox.vue' import Checkbox from 'components/checkbox/checkbox.vue'
import RichContent from 'components/rich_content/rich_content.jsx'
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'
@ -12,7 +12,7 @@ export default {
props: ['basePoll', 'emoji'], props: ['basePoll', 'emoji'],
components: { components: {
Timeago, Timeago,
RichContent,
Checkbox, Checkbox,
}, },
data() { data() {

View file

@ -17,6 +17,7 @@ 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'
@ -150,9 +151,7 @@ const PostStatusForm = {
Select, Select,
Attachment, Attachment,
StatusContent, StatusContent,
Gallery: defineAsyncComponent( Gallery,
() => import( 'src/components/gallery/gallery.vue')
),
DraftCloser, DraftCloser,
Popover, Popover,
}, },

View file

@ -1,6 +1,5 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import Status from '../status/status.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'
@ -9,7 +8,7 @@ library.add(faCircleNotch)
export default { export default {
components: { components: {
Status,
}, },
name: 'Quote', name: 'Quote',
props: { props: {

View file

@ -1,4 +1,4 @@
import RichContent from 'src/components/rich_content/rich_content.jsx'
import Select from '../select/select.vue' import Select from '../select/select.vue'
import StatusContent from '../status_content/status_content.vue' import StatusContent from '../status_content/status_content.vue'
import Timeago from '../timeago/timeago.vue' import Timeago from '../timeago/timeago.vue'
@ -14,7 +14,7 @@ const Report = {
Select, Select,
StatusContent, StatusContent,
Timeago, Timeago,
RichContent,
}, },
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

@ -3,7 +3,7 @@ import { map, uniqBy } from 'lodash'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx' import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import Conversation from '../conversation/conversation.vue' import Conversation from '../conversation/conversation.vue'
import FollowCard from '../follow_card/follow_card.vue' import FollowCard from '../follow_card/follow_card.vue'
import Status from '../status/status.vue'
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'
@ -14,7 +14,7 @@ const Search = {
components: { components: {
FollowCard, FollowCard,
Conversation, Conversation,
Status,
TabSwitcher, TabSwitcher,
}, },
props: ['query'], props: ['query'],

View file

@ -151,7 +151,7 @@
<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 StillImage from 'components/still-image/still-image.vue'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
export default { export default {
@ -160,7 +160,7 @@ export default {
ConfirmModal: defineAsyncComponent( ConfirmModal: defineAsyncComponent(
() => import('src/components/confirm_modal/confirm_modal.vue'), () => import('src/components/confirm_modal/confirm_modal.vue'),
), ),
StillImage,
SelectComponent, SelectComponent,
}, },

View file

@ -1,6 +1,7 @@
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 GestureService from '../../services/gesture_service/gesture_service' import GestureService from '../../services/gesture_service/gesture_service'
@ -65,9 +66,7 @@ const SideDrawer = {
} }
}, },
components: { components: {
UserCard: defineAsyncComponent( UserCard,
() => import('src/components/user_card/user_card.vue'),
),
}, },
computed: { computed: {
currentUser() { currentUser() {

View file

@ -5,7 +5,6 @@ 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 RichContent from 'src/components/rich_content/rich_content.jsx'
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 Timeago from 'src/components/timeago/timeago.vue' import Timeago from 'src/components/timeago/timeago.vue'
@ -14,6 +13,7 @@ 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 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,
@ -120,13 +120,10 @@ const Status = {
UserAvatar, UserAvatar,
AvatarList, AvatarList,
Timeago, Timeago,
StatusPopover: defineAsyncComponent( StatusPopover,
() => import('src/components/status_popover/status_popover.vue'),
),
UserListPopover, UserListPopover,
EmojiReactions, EmojiReactions,
StatusContent, StatusContent,
RichContent,
MentionLink, MentionLink,
MentionsLine, MentionsLine,
UserPopover, UserPopover,

View file

@ -1,6 +1,7 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import EmojiPicker from '../emoji_picker/emoji_picker.vue'
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'
@ -75,9 +76,7 @@ export default {
'src/components/status_bookmark_folder_menu/status_bookmark_folder_menu.vue' 'src/components/status_bookmark_folder_menu/status_bookmark_folder_menu.vue'
), ),
), ),
EmojiPicker: defineAsyncComponent( EmojiPicker,
() => import('src/components/emoji_picker/emoji_picker.vue'),
),
Popover, Popover,
}, },
data: () => ({ data: () => ({

View file

@ -1,6 +1,6 @@
import { mapState } from 'pinia' import { mapState } from 'pinia'
import RichContent from 'src/components/rich_content/rich_content.jsx'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'
@ -114,7 +114,7 @@ const StatusBody = {
...mapState(useMergedConfigStore, ['mergedConfig']), ...mapState(useMergedConfigStore, ['mergedConfig']),
}, },
components: { components: {
RichContent,
}, },
mounted() { mounted() {
this.status.attentions && this.status.attentions &&

View file

@ -1,7 +1,7 @@
import { mapState } from 'pinia' import { mapState } from 'pinia'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import StillImage from 'src/components/still-image/still-image.vue'
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js' import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js'
@ -18,7 +18,7 @@ const StatusBookmarkFolderMenu = {
}, },
components: { components: {
Popover, Popover,
StillImage,
}, },
computed: { computed: {
...mapState(useBookmarkFoldersStore, { ...mapState(useBookmarkFoldersStore, {

View file

@ -6,6 +6,7 @@ import StatusBody from 'src/components/status_body/status_body.vue'
import Attachment from '../attachment/attachment.vue' import Attachment from '../attachment/attachment.vue'
import LinkPreview from '../link-preview/link-preview.vue' import LinkPreview from '../link-preview/link-preview.vue'
import Poll from '../poll/poll.vue' import Poll from '../poll/poll.vue'
import Gallery from 'src/components/gallery/gallery.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'
@ -132,9 +133,7 @@ const StatusContent = {
components: { components: {
Attachment, Attachment,
Poll, Poll,
Gallery: defineAsyncComponent( Gallery,
() => import( 'src/components/gallery/gallery.vue')
),
LinkPreview, LinkPreview,
StatusBody, StatusBody,
}, },

View file

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

View file

@ -22,7 +22,6 @@ const StatusPopover = {
}, },
}, },
components: { components: {
Status,
Popover, Popover,
}, },
methods: { methods: {

View file

@ -2,13 +2,13 @@ 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 StillImage from './still-image.vue'
import { useEmojiStore } from 'src/stores/emoji' import { useEmojiStore } from 'src/stores/emoji'
import { useInterfaceStore } from 'src/stores/interface' import { useInterfaceStore } from 'src/stores/interface'
export default { export default {
components: { StillImage, Popover, SelectComponent }, components: { Popover, SelectComponent },
props: { props: {
shortcode: { shortcode: {
type: String, type: String,

View file

@ -1,4 +1,4 @@
import Status from '../status/status.vue'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { import {
@ -10,7 +10,7 @@ library.add(faAngleDoubleDown, faAngleDoubleRight)
const ThreadTree = { const ThreadTree = {
components: { components: {
Status,
}, },
name: 'ThreadTree', name: 'ThreadTree',
props: { props: {

View file

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

View file

@ -1,4 +1,4 @@
import StillImage from '../still-image/still-image.vue'
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'
@ -42,7 +42,7 @@ const UserAvatar = {
} }
}, },
components: { components: {
StillImage,
}, },
methods: { methods: {
imgSrc(src) { imgSrc(src) {

View file

@ -11,7 +11,7 @@ import AccountActions from 'src/components/account_actions/account_actions.vue'
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.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 RichContent from 'src/components/rich_content/rich_content.jsx'
import FollowButton from '../follow_button/follow_button.vue' import FollowButton from '../follow_button/follow_button.vue'
import ProgressButton from '../progress_button/progress_button.vue' import ProgressButton from '../progress_button/progress_button.vue'
import RemoteFollow from '../remote_follow/remote_follow.vue' import RemoteFollow from '../remote_follow/remote_follow.vue'
@ -134,7 +134,7 @@ export default {
ProgressButton, ProgressButton,
FollowButton, FollowButton,
Select, Select,
RichContent,
UserLink, UserLink,
UserNote, UserNote,
UserTimedFilterModal: defineAsyncComponent( UserTimedFilterModal: defineAsyncComponent(

View file

@ -669,6 +669,7 @@
</template> </template>
<teleport to="#modal"> <teleport to="#modal">
<UserTimedFilterModal <UserTimedFilterModal
v-if="isOtherUser"
ref="timedMuteDialog" ref="timedMuteDialog"
:user="user" :user="user"
:is-mute="true" :is-mute="true"

View file

@ -1,8 +1,7 @@
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import Popover from 'src/components/popover/popover.vue'
import RichContent from 'src/components/rich_content/rich_content.jsx'
import UserAvatar from 'src/components/user_avatar/user_avatar.vue' import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import Popover from 'src/components/popover/popover.vue'
import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue' import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'
import { useInstanceStore } from 'src/stores/instance.js' import { useInstanceStore } from 'src/stores/instance.js'
@ -19,7 +18,6 @@ const UserListPopover = {
name: 'UserListPopover', name: 'UserListPopover',
props: ['users'], props: ['users'],
components: { components: {
RichContent,
UnicodeDomainIndicator, UnicodeDomainIndicator,
Popover, Popover,
UserAvatar, UserAvatar,

View file

@ -2,6 +2,7 @@ import { mapState } from 'pinia'
import { defineAsyncComponent } from 'vue' import { defineAsyncComponent } from 'vue'
import Popover from 'src/components/popover/popover.vue' import Popover from 'src/components/popover/popover.vue'
import UserCard from 'src/components/user_card/user_card.vue'
import { useMergedConfigStore } from 'src/stores/merged_config.js' import { useMergedConfigStore } from 'src/stores/merged_config.js'
@ -9,9 +10,7 @@ const UserPopover = {
name: 'UserPopover', name: 'UserPopover',
props: ['userId', 'overlayCenters', 'disabled', 'overlayCentersSelector'], props: ['userId', 'overlayCenters', 'disabled', 'overlayCentersSelector'],
components: { components: {
UserCard: defineAsyncComponent( UserCard,
() => import('src/components/user_card/user_card.vue'),
),
Popover, Popover,
}, },
computed: mapState(useMergedConfigStore, { computed: mapState(useMergedConfigStore, {

View file

@ -1,7 +1,7 @@
import { get } from 'lodash' import { get } from 'lodash'
import { mapState } from 'pinia' import { mapState } from 'pinia'
import RichContent from 'src/components/rich_content/rich_content.jsx'
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx' import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
import withLoadMore from '../../hocs/with_load_more/with_load_more' import withLoadMore from '../../hocs/with_load_more/with_load_more'
import Conversation from '../conversation/conversation.vue' import Conversation from '../conversation/conversation.vue'
@ -209,7 +209,7 @@ const UserProfile = {
FollowCard, FollowCard,
TabSwitcher, TabSwitcher,
Conversation, Conversation,
RichContent,
}, },
} }

View file

@ -1,14 +1,14 @@
import Checkbox from '../checkbox/checkbox.vue' import Checkbox from '../checkbox/checkbox.vue'
import List from '../list/list.vue' import List from '../list/list.vue'
import Modal from '../modal/modal.vue' import Modal from '../modal/modal.vue'
import Status from '../status/status.vue'
import UserLink from '../user_link/user_link.vue' import UserLink from '../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: {
Status,
List, List,
Checkbox, Checkbox,
Modal, Modal,

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 = {