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