diff --git a/src/App.js b/src/App.js
index 4f9d7bc3a..9a7d4c7da 100644
--- a/src/App.js
+++ b/src/App.js
@@ -11,7 +11,6 @@ import MobileNav from './components/mobile_nav/mobile_nav.vue'
import MobilePostStatusButton from './components/mobile_post_status_button/mobile_post_status_button.vue'
import NavPanel from './components/nav_panel/nav_panel.vue'
import PostStatusModal from './components/post_status_modal/post_status_modal.vue'
-import SideDrawer from './components/side_drawer/side_drawer.vue'
import UserPanel from './components/user_panel/user_panel.vue'
import UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue'
import WhoToFollowPanel from './components/who_to_follow_panel/who_to_follow_panel.vue'
@@ -47,7 +46,6 @@ export default {
() => import('src/components/shout_panel/shout_panel.vue'),
),
MediaModal,
- SideDrawer,
MobilePostStatusButton,
MobileNav,
DesktopNav,
diff --git a/src/components/account_actions/account_actions.js b/src/components/account_actions/account_actions.js
index 2f8f70764..cb4ac61eb 100644
--- a/src/components/account_actions/account_actions.js
+++ b/src/components/account_actions/account_actions.js
@@ -2,7 +2,6 @@ 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 Popover from '../popover/popover.vue'
import ProgressButton from '../progress_button/progress_button.vue'
@@ -30,8 +29,9 @@ const AccountActions = {
ConfirmModal: defineAsyncComponent(
() => import('src/components/confirm_modal/confirm_modal.vue'),
),
-
- UserTimedFilterModal,
+ UserTimedFilterModal: defineAsyncComponent(
+ () => import( 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'),
+ ),
},
methods: {
showConfirmRemoveUserFromFollowers() {
diff --git a/src/components/chat_message/chat_message.js b/src/components/chat_message/chat_message.js
index 11dedfca7..c6cff649a 100644
--- a/src/components/chat_message/chat_message.js
+++ b/src/components/chat_message/chat_message.js
@@ -1,9 +1,9 @@
import { mapState as mapPiniaState } from 'pinia'
import { mapGetters, mapState } from 'vuex'
+import { defineAsyncComponent } from 'vue'
import Attachment from 'src/components/attachment/attachment.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 Popover from 'src/components/popover/popover.vue'
import StatusContent from 'src/components/status_content/status_content.vue'
@@ -34,7 +34,9 @@ const ChatMessage = {
Attachment,
StatusContent,
UserAvatar,
- Gallery,
+ Gallery: defineAsyncComponent(
+ () => import( 'src/components/gallery/gallery.vue'),
+ ),
LinkPreview,
ChatMessageDate,
UserPopover,
diff --git a/src/components/draft/draft.js b/src/components/draft/draft.js
index 50758c731..412a72d08 100644
--- a/src/components/draft/draft.js
+++ b/src/components/draft/draft.js
@@ -1,8 +1,8 @@
import { cloneDeep } from 'lodash'
import { defineAsyncComponent } from 'vue'
-import Gallery from 'src/components/gallery/gallery.vue'
import StatusContent from 'src/components/status_content/status_content.vue'
+import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
import { useMergedConfigStore } from 'src/stores/merged_config.js'
@@ -13,18 +13,17 @@ library.add(faPollH)
const Draft = {
components: {
- PostStatusForm: defineAsyncComponent(
- () => import('src/components/post_status_form/post_status_form.vue'),
- ),
+ PostStatusForm,
EditStatusForm: defineAsyncComponent(
() => import('src/components/edit_status_form/edit_status_form.vue'),
),
ConfirmModal: defineAsyncComponent(
() => import('src/components/confirm_modal/confirm_modal.vue'),
),
-
StatusContent,
- Gallery,
+ Gallery: defineAsyncComponent(
+ () => import( 'src/components/gallery/gallery.vue')
+ ),
},
props: {
draft: {
diff --git a/src/components/draft/draft.vue b/src/components/draft/draft.vue
index c8d72f821..c91675e35 100644
--- a/src/components/draft/draft.vue
+++ b/src/components/draft/draft.vue
@@ -39,7 +39,7 @@
class="faint"
>{{ $t('drafts.empty') }}
- import('src/components/dialog_modal/dialog_modal.vue'),
+ ),
},
emits: ['save', 'discard'],
computed: {
diff --git a/src/components/draft_closer/draft_closer.vue b/src/components/draft_closer/draft_closer.vue
index 1afb1f44d..bb8e5ec55 100644
--- a/src/components/draft_closer/draft_closer.vue
+++ b/src/components/draft_closer/draft_closer.vue
@@ -1,6 +1,6 @@
-
-
+
diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js
index 36b669622..0ba717c0b 100644
--- a/src/components/emoji_picker/emoji_picker.js
+++ b/src/components/emoji_picker/emoji_picker.js
@@ -139,7 +139,7 @@ const EmojiPicker = {
},
components: {
StickerPicker: defineAsyncComponent(
- () => import('../sticker_picker/sticker_picker.vue'),
+ () => import('src/components/sticker_picker/sticker_picker.vue'),
),
Checkbox,
StillImage,
diff --git a/src/components/mobile_nav/mobile_nav.js b/src/components/mobile_nav/mobile_nav.js
index fc77b0b12..41cc4f457 100644
--- a/src/components/mobile_nav/mobile_nav.js
+++ b/src/components/mobile_nav/mobile_nav.js
@@ -3,7 +3,6 @@ import { defineAsyncComponent } from 'vue'
import { mapGetters } from 'vuex'
import NavigationPins from 'src/components/navigation/navigation_pins.vue'
-import SideDrawer from 'src/components/side_drawer/side_drawer.vue'
import GestureService from '../../services/gesture_service/gesture_service'
import {
countExtraNotifications,
@@ -28,7 +27,9 @@ library.add(faTimes, faBell, faBars, faArrowUp, faMinus, faCheckDouble)
const MobileNav = {
components: {
- SideDrawer,
+ SideDrawer: defineAsyncComponent(
+ () => import('src/components/side_drawer/side_drawer.vue'),
+ ),
Notifications: defineAsyncComponent(
() => import('src/components/notifications/notifications.vue'),
),
diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
index cdd8ef773..b2ea91d60 100644
--- a/src/components/post_status_form/post_status_form.js
+++ b/src/components/post_status_form/post_status_form.js
@@ -1,17 +1,15 @@
import { debounce, map, reject, uniqBy } from 'lodash'
import { mapActions, mapState } from 'pinia'
import { mapGetters } from 'vuex'
+import { defineAsyncComponent } from 'vue'
import Attachment from 'src/components/attachment/attachment.vue'
import Checkbox from 'src/components/checkbox/checkbox.vue'
import DraftCloser from 'src/components/draft_closer/draft_closer.vue'
import EmojiInput from 'src/components/emoji_input/emoji_input.vue'
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 PollForm from 'src/components/poll/poll_form.vue'
import Popover from 'src/components/popover/popover.vue'
-import QuoteForm from 'src/components/quote/quote_form.vue'
import ScopeSelector from 'src/components/scope_selector/scope_selector.vue'
import Select from 'src/components/select/select.vue'
import StatusContent from 'src/components/status_content/status_content.vue'
@@ -141,14 +139,20 @@ const PostStatusForm = {
components: {
MediaUpload,
EmojiInput,
- PollForm,
- QuoteForm,
+ PollForm: defineAsyncComponent(
+ () => import( 'src/components/poll/poll_form.vue')
+ ),
+ QuoteForm: defineAsyncComponent(
+ () => import( 'src/components/quote/quote_form.vue')
+ ),
ScopeSelector,
Checkbox,
Select,
Attachment,
StatusContent,
- Gallery,
+ Gallery: defineAsyncComponent(
+ () => import( 'src/components/gallery/gallery.vue')
+ ),
DraftCloser,
Popover,
},
diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue
index d37d0a90f..a5e6ffb6d 100644
--- a/src/components/post_status_form/post_status_form.vue
+++ b/src/components/post_status_form/post_status_form.vue
@@ -396,7 +396,7 @@
/>
- import('src/components/post_status_form/post_status_form.vue'),
- ),
+ PostStatusForm,
Modal,
},
data() {
diff --git a/src/components/status/status.js b/src/components/status/status.js
index 77170a1c4..c854e2c90 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -13,6 +13,7 @@ import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
import UserLink from 'src/components/user_link/user_link.vue'
import UserListPopover from 'src/components/user_list_popover/user_list_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 { muteFilterHits } from '../../services/status_parser/status_parser.js'
import {
highlightClass,
@@ -115,9 +116,7 @@ const controlledOrUncontrolledSet = (obj, name, val) => {
const Status = {
name: 'Status',
components: {
- PostStatusForm: defineAsyncComponent(
- () => import('src/components/post_status_form/post_status_form.vue'),
- ),
+ PostStatusForm,
UserAvatar,
AvatarList,
Timeago,
diff --git a/src/components/status_action_buttons/action_button_container.js b/src/components/status_action_buttons/action_button_container.js
index a5a070dde..35f5b95b7 100644
--- a/src/components/status_action_buttons/action_button_container.js
+++ b/src/components/status_action_buttons/action_button_container.js
@@ -1,7 +1,7 @@
import MuteConfirm from 'src/components/confirm_modal/mute_confirm.vue'
import Popover from 'src/components/popover/popover.vue'
-import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
import ActionButton from './action_button.vue'
+import { defineAsyncComponent } from 'vue'
import { library } from '@fortawesome/fontawesome-svg-core'
import {
@@ -17,7 +17,9 @@ export default {
ActionButton,
Popover,
MuteConfirm,
- UserTimedFilterModal,
+ UserTimedFilterModal: defineAsyncComponent(
+ () => import( 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'),
+ ),
},
props: ['button', 'status'],
emits: ['emojiPickerShown'],
diff --git a/src/components/status_content/status_content.js b/src/components/status_content/status_content.js
index a72db5b96..0e0156c56 100644
--- a/src/components/status_content/status_content.js
+++ b/src/components/status_content/status_content.js
@@ -1,9 +1,9 @@
import { mapState as mapPiniaState } from 'pinia'
import { mapGetters, mapState } from 'vuex'
+import { defineAsyncComponent } from 'vue'
import StatusBody from 'src/components/status_body/status_body.vue'
import Attachment from '../attachment/attachment.vue'
-import Gallery from '../gallery/gallery.vue'
import LinkPreview from '../link-preview/link-preview.vue'
import Poll from '../poll/poll.vue'
@@ -132,7 +132,9 @@ const StatusContent = {
components: {
Attachment,
Poll,
- Gallery,
+ Gallery: defineAsyncComponent(
+ () => import( 'src/components/gallery/gallery.vue')
+ ),
LinkPreview,
StatusBody,
},
diff --git a/src/components/status_content/status_content.vue b/src/components/status_content/status_content.vue
index 460a0714b..6dc80b8a5 100644
--- a/src/components/status_content/status_content.vue
+++ b/src/components/status_content/status_content.vue
@@ -34,7 +34,7 @@
/>
- import( 'src/components/dialog_modal/dialog_modal.vue'),
+ ),
UserAvatar,
Checkbox,
RemoteFollow,
- ModerationTools,
+ ModerationTools: defineAsyncComponent(
+ () => import( 'src/components/moderation_tools/moderation_tools.vue'),
+ ),
AccountActions,
ProgressButton,
FollowButton,
@@ -136,10 +137,14 @@ export default {
RichContent,
UserLink,
UserNote,
- UserTimedFilterModal,
+ UserTimedFilterModal: defineAsyncComponent(
+ () => import( 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'),
+ ),
ColorInput,
EmojiInput,
- ImageCropper,
+ ImageCropper: defineAsyncComponent(
+ () => import( 'src/components/image_cropper/image_cropper.vue'),
+ ),
},
data() {
const user = this.$store.getters.findUser(this.userId)
diff --git a/src/components/user_list_menu/user_list_menu.js b/src/components/user_list_menu/user_list_menu.js
index 47a84a6bb..cb3d27a2f 100644
--- a/src/components/user_list_menu/user_list_menu.js
+++ b/src/components/user_list_menu/user_list_menu.js
@@ -1,6 +1,5 @@
import { mapState } from 'pinia'
-import DialogModal from '../dialog_modal/dialog_modal.vue'
import Popover from '../popover/popover.vue'
import { useListsStore } from 'src/stores/lists.js'
@@ -16,7 +15,6 @@ const UserListMenu = {
return {}
},
components: {
- DialogModal,
Popover,
},
created() {
@@ -64,60 +62,6 @@ const UserListMenu = {
})
}
},
- toggleRight(right) {
- const store = this.$store
- if (this.user.rights[right]) {
- store.state.api.backendInteractor
- .deleteRight({ user: this.user, right })
- .then((response) => {
- if (!response.ok) {
- return
- }
- store.commit('updateRight', {
- user: this.user,
- right,
- value: false,
- })
- })
- } else {
- store.state.api.backendInteractor
- .addRight({ user: this.user, right })
- .then((response) => {
- if (!response.ok) {
- return
- }
- store.commit('updateRight', { user: this.user, right, value: true })
- })
- }
- },
- toggleActivationStatus() {
- this.$store.dispatch('toggleActivationStatus', { user: this.user })
- },
- deleteUserDialog(show) {
- this.showDeleteUserDialog = show
- },
- deleteUser() {
- const store = this.$store
- const user = this.user
- const { id, name } = user
- store.state.api.backendInteractor.deleteUser({ user }).then(() => {
- this.$store.dispatch(
- 'markStatusesAsDeleted',
- (status) => user.id === status.user.id,
- )
- const isProfile =
- this.$route.name === 'external-user-profile' ||
- this.$route.name === 'user-profile'
- const isTargetUser =
- this.$route.params.name === name || this.$route.params.id === id
- if (isProfile && isTargetUser) {
- window.history.back()
- }
- })
- },
- setToggled(value) {
- this.toggled = value
- },
},
}
diff --git a/src/components/user_panel/user_panel.js b/src/components/user_panel/user_panel.js
index e6ac8bf5f..a3b67edb8 100644
--- a/src/components/user_panel/user_panel.js
+++ b/src/components/user_panel/user_panel.js
@@ -1,5 +1,7 @@
import { defineAsyncComponent } from 'vue'
import { mapState } from 'vuex'
+import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
+import UserCard from 'src/components/user_card/user_card.vue'
const UserPanel = {
computed: {
@@ -12,12 +14,8 @@ const UserPanel = {
AuthForm: defineAsyncComponent(
() => import('src/components/auth_form/auth_form.js'),
),
- PostStatusForm: defineAsyncComponent(
- () => import('src/components/post_status_form/post_status_form.vue'),
- ),
- UserCard: defineAsyncComponent(
- () => import('src/components/user_card/user_card.vue'),
- ),
+ PostStatusForm,
+ UserCard,
},
}
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index 6ed628e5d..30ff13c3f 100644
--- a/src/services/entity_normalizer/entity_normalizer.service.js
+++ b/src/services/entity_normalizer/entity_normalizer.service.js
@@ -3,7 +3,7 @@ import escapeHtml from 'escape-html'
import { unescape as lodashUnescape } from 'lodash'
import punycode from 'punycode.js'
-import fileTypeService from '../file_type/file_type.service.js'
+import { fileType } from '../file_type/file_type.service.js'
import { isStatusNotification } from '../notification_utils/notification_utils.js'
/** NOTICE! **
@@ -304,7 +304,7 @@ export const parseAttachment = (data) => {
if (data.type !== 'unknown') {
output.type = data.type
} else {
- output.type = fileTypeService.fileType(output.mimetype)
+ output.type = fileType(output.mimetype)
}
output.url = data.url
output.large_thumb_url = data.preview_url