Merge branch 'optimize' into shigusegubu-themes3
This commit is contained in:
commit
f28224ca22
105 changed files with 280 additions and 323 deletions
|
|
@ -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,17 +99,18 @@ 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',
|
||||||
sequential: true,
|
sequential: true,
|
||||||
async handler() {
|
async handler() {
|
||||||
|
if (process.env.VITEST) return
|
||||||
console.info('Building service worker for production')
|
console.info('Building service worker for production')
|
||||||
await build(config)
|
await build(config)
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
"localforage": "1.10.0",
|
"localforage": "1.10.0",
|
||||||
"parse-link-header": "2.0.0",
|
"parse-link-header": "2.0.0",
|
||||||
"phoenix": "1.8.1",
|
"phoenix": "1.8.1",
|
||||||
"pinia": "^3.0.0",
|
"pinia": "^3.0.4",
|
||||||
"punycode.js": "2.3.1",
|
"punycode.js": "2.3.1",
|
||||||
"qrcode": "1.5.4",
|
"qrcode": "1.5.4",
|
||||||
"querystring-es3": "0.2.1",
|
"querystring-es3": "0.2.1",
|
||||||
|
|
|
||||||
46
src/App.js
46
src/App.js
|
|
@ -2,17 +2,14 @@ import { throttle } from 'lodash'
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
|
|
||||||
import DesktopNav from './components/desktop_nav/desktop_nav.vue'
|
import DesktopNav from 'src/components/desktop_nav/desktop_nav.vue'
|
||||||
import FeaturesPanel from './components/features_panel/features_panel.vue'
|
import FeaturesPanel from 'src/components/features_panel/features_panel.vue'
|
||||||
import GlobalNoticeList from './components/global_notice_list/global_notice_list.vue'
|
import GlobalNoticeList from 'src/components/global_notice_list/global_notice_list.vue'
|
||||||
import InstanceSpecificPanel from './components/instance_specific_panel/instance_specific_panel.vue'
|
import InstanceSpecificPanel from 'src/components/instance_specific_panel/instance_specific_panel.vue'
|
||||||
import MediaModal from './components/media_modal/media_modal.vue'
|
import MobileNav from 'src/components/mobile_nav/mobile_nav.vue'
|
||||||
import MobileNav from './components/mobile_nav/mobile_nav.vue'
|
import MobilePostStatusButton from 'src/components/mobile_post_status_button/mobile_post_status_button.vue'
|
||||||
import MobilePostStatusButton from './components/mobile_post_status_button/mobile_post_status_button.vue'
|
import NavPanel from 'src/components/nav_panel/nav_panel.vue'
|
||||||
import NavPanel from './components/nav_panel/nav_panel.vue'
|
import UserPanel from 'src/components/user_panel/user_panel.vue'
|
||||||
import PostStatusModal from './components/post_status_modal/post_status_modal.vue'
|
|
||||||
import UserPanel from './components/user_panel/user_panel.vue'
|
|
||||||
import UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue'
|
|
||||||
import { getOrCreateServiceWorker } from './services/sw/sw'
|
import { getOrCreateServiceWorker } from './services/sw/sw'
|
||||||
import { windowHeight, windowWidth } from './services/window_utils/window_utils'
|
import { windowHeight, windowWidth } from './services/window_utils/window_utils'
|
||||||
|
|
||||||
|
|
@ -36,34 +33,43 @@ export default {
|
||||||
UserPanel,
|
UserPanel,
|
||||||
NavPanel,
|
NavPanel,
|
||||||
Notifications: defineAsyncComponent(
|
Notifications: defineAsyncComponent(
|
||||||
() => import('./components/notifications/notifications.vue'),
|
() => import('src/components/notifications/notifications.vue'),
|
||||||
),
|
),
|
||||||
InstanceSpecificPanel,
|
InstanceSpecificPanel,
|
||||||
FeaturesPanel,
|
FeaturesPanel,
|
||||||
WhoToFollowPanel: defineAsyncComponent(
|
WhoToFollowPanel: defineAsyncComponent(
|
||||||
() => import('./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,
|
MediaModal: defineAsyncComponent(
|
||||||
|
() => import('src/components/media_modal/media_modal.vue'),
|
||||||
|
),
|
||||||
MobilePostStatusButton,
|
MobilePostStatusButton,
|
||||||
MobileNav,
|
MobileNav,
|
||||||
DesktopNav,
|
DesktopNav,
|
||||||
SettingsModal: defineAsyncComponent(
|
SettingsModal: defineAsyncComponent(
|
||||||
() => import('./components/settings_modal/settings_modal.vue'),
|
() => import('src/components/settings_modal/settings_modal.vue'),
|
||||||
),
|
),
|
||||||
UpdateNotification: defineAsyncComponent(
|
UpdateNotification: defineAsyncComponent(
|
||||||
() => import('./components/update_notification/update_notification.vue'),
|
() =>
|
||||||
|
import('src/components/update_notification/update_notification.vue'),
|
||||||
|
),
|
||||||
|
PostStatusModal: defineAsyncComponent(
|
||||||
|
() => import('src/components/post_status_modal/post_status_modal.vue'),
|
||||||
|
),
|
||||||
|
UserReportingModal: defineAsyncComponent(
|
||||||
|
() =>
|
||||||
|
import('src/components/user_reporting_modal/user_reporting_modal.vue'),
|
||||||
),
|
),
|
||||||
UserReportingModal,
|
|
||||||
PostStatusModal,
|
|
||||||
EditStatusModal: defineAsyncComponent(
|
EditStatusModal: defineAsyncComponent(
|
||||||
() => import('./components/edit_status_modal/edit_status_modal.vue'),
|
() => import('src/components/edit_status_modal/edit_status_modal.vue'),
|
||||||
),
|
),
|
||||||
StatusHistoryModal: defineAsyncComponent(
|
StatusHistoryModal: defineAsyncComponent(
|
||||||
() =>
|
() =>
|
||||||
import('./components/status_history_modal/status_history_modal.vue'),
|
import('src/components/status_history_modal/status_history_modal.vue'),
|
||||||
),
|
),
|
||||||
GlobalNoticeList,
|
GlobalNoticeList,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
|
|
||||||
import FeaturesPanel from '../features_panel/features_panel.vue'
|
import FeaturesPanel from 'src/components/features_panel/features_panel.vue'
|
||||||
import InstanceSpecificPanel from '../instance_specific_panel/instance_specific_panel.vue'
|
import InstanceSpecificPanel from 'src/components/instance_specific_panel/instance_specific_panel.vue'
|
||||||
import MRFTransparencyPanel from '../mrf_transparency_panel/mrf_transparency_panel.vue'
|
import MRFTransparencyPanel from 'src/components/mrf_transparency_panel/mrf_transparency_panel.vue'
|
||||||
import StaffPanel from '../staff_panel/staff_panel.vue'
|
import StaffPanel from 'src/components/staff_panel/staff_panel.vue'
|
||||||
import TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'
|
import TermsOfServicePanel from 'src/components/terms_of_service_panel/terms_of_service_panel.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'
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
|
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
import ProgressButton from 'src/components/progress_button/progress_button.vue'
|
||||||
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
|
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
|
||||||
import Popover from '../popover/popover.vue'
|
|
||||||
import ProgressButton from '../progress_button/progress_button.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: {
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
|
import AnnouncementEditor from 'src/components/announcement_editor/announcement_editor.vue'
|
||||||
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 { 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 {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
|
|
||||||
const AnnouncementEditor = {
|
const AnnouncementEditor = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
import Announcement from '../announcement/announcement.vue'
|
import Announcement from 'src/components/announcement/announcement.vue'
|
||||||
import AnnouncementEditor from '../announcement_editor/announcement_editor.vue'
|
import AnnouncementEditor from 'src/components/announcement_editor/announcement_editor.vue'
|
||||||
|
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements.js'
|
import { useAnnouncementsStore } from 'src/stores/announcements.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
|
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
import VideoAttachment from 'src/components/video_attachment/video_attachment.vue'
|
||||||
import nsfwImage from '../../assets/nsfw.png'
|
import nsfwImage from '../../assets/nsfw.png'
|
||||||
import Popover from '../popover/popover.vue'
|
|
||||||
|
|
||||||
import VideoAttachment from '../video_attachment/video_attachment.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'
|
||||||
|
|
@ -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,
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
import { h, resolveComponent } from 'vue'
|
import { h, resolveComponent } from 'vue'
|
||||||
|
|
||||||
import LoginForm from '../login_form/login_form.vue'
|
import LoginForm from 'src/components/login_form/login_form.vue'
|
||||||
import MFARecoveryForm from '../mfa_form/recovery_form.vue'
|
import MFARecoveryForm from 'src/components/mfa_form/recovery_form.vue'
|
||||||
import MFATOTPForm from '../mfa_form/totp_form.vue'
|
import MFATOTPForm from 'src/components/mfa_form/totp_form.vue'
|
||||||
|
|
||||||
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import UserAvatar from '../user_avatar/user_avatar.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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
|
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserLink from 'src/components/user_link/user_link.vue'
|
||||||
import UserLink from '../user_link/user_link.vue'
|
import UserPopover from 'src/components/user_popover/user_popover.vue'
|
||||||
import UserPopover from '../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'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
|
|
||||||
|
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 UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
|
||||||
|
|
||||||
import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js'
|
import { useInstanceCapabilitiesStore } from 'src/stores/instance_capabilities.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
import EmojiPicker from 'src/components/emoji_picker/emoji_picker.vue'
|
||||||
import apiService from '../../services/api/api.service'
|
import apiService from '../../services/api/api.service'
|
||||||
import EmojiPicker from '../emoji_picker/emoji_picker.vue'
|
|
||||||
|
|
||||||
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'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import BookmarkFolderCard from '../bookmark_folder_card/bookmark_folder_card.vue'
|
import BookmarkFolderCard from 'src/components/bookmark_folder_card/bookmark_folder_card.vue'
|
||||||
|
|
||||||
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js'
|
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const Bookmarks = {
|
const Bookmarks = {
|
||||||
created() {
|
created() {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const BubbleTimeline = {
|
const BubbleTimeline = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -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 '../chat_message/chat_message.vue'
|
|
||||||
import ChatTitle from '../chat_title/chat_title.vue'
|
|
||||||
import PostStatusForm from '../post_status_form/post_status_form.vue'
|
|
||||||
import {
|
import {
|
||||||
getNewTopPosition,
|
getNewTopPosition,
|
||||||
getScrollPosition,
|
getScrollPosition,
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import { mapGetters, mapState } from 'vuex'
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
import ChatListItem from '../chat_list_item/chat_list_item.vue'
|
import ChatListItem from 'src/components/chat_list_item/chat_list_item.vue'
|
||||||
import ChatNew from '../chat_new/chat_new.vue'
|
import ChatNew from 'src/components/chat_new/chat_new.vue'
|
||||||
import List from '../list/list.vue'
|
import List from 'src/components/list/list.vue'
|
||||||
|
|
||||||
const ChatList = {
|
const ChatList = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
import AvatarList from '../avatar_list/avatar_list.vue'
|
import AvatarList from 'src/components/avatar_list/avatar_list.vue'
|
||||||
import ChatTitle from '../chat_title/chat_title.vue'
|
import ChatTitle from 'src/components/chat_title/chat_title.vue'
|
||||||
import StatusBody from '../status_content/status_content.vue'
|
import StatusBody from 'src/components/status_content/status_content.vue'
|
||||||
import Timeago from '../timeago/timeago.vue'
|
import Timeago from 'src/components/timeago/timeago.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
|
||||||
|
|
||||||
const ChatListItem = {
|
const ChatListItem = {
|
||||||
name: 'ChatListItem',
|
name: 'ChatListItem',
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { mapGetters, mapState } from 'vuex'
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -66,8 +66,8 @@
|
||||||
<script>
|
<script>
|
||||||
import { throttle } from 'lodash'
|
import { throttle } from 'lodash'
|
||||||
|
|
||||||
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import { hex2rgb } from '../../services/color_convert/color_convert.js'
|
import { hex2rgb } from '../../services/color_convert/color_convert.js'
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
|
||||||
|
|
||||||
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'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import DialogModal from '../dialog_modal/dialog_modal.vue'
|
import DialogModal from 'src/components/dialog_modal/dialog_modal.vue'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component emits the following events:
|
* This component emits the following events:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Conversation from '../conversation/conversation.vue'
|
import Conversation from 'src/components/conversation/conversation.vue'
|
||||||
|
|
||||||
const conversationPage = {
|
const conversationPage = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -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 QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_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 { 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 QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'
|
|
||||||
|
|
||||||
import ThreadTree from '../thread_tree/thread_tree.vue'
|
|
||||||
|
|
||||||
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'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const DMs = {
|
const DMs = {
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import ProgressButton from '../progress_button/progress_button.vue'
|
import ProgressButton from 'src/components/progress_button/progress_button.vue'
|
||||||
|
|
||||||
const DomainMuteCard = {
|
const DomainMuteCard = {
|
||||||
props: ['domain'],
|
props: ['domain'],
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
|
||||||
import statusPosterService from '../../services/status_poster/status_poster.service.js'
|
import statusPosterService from '../../services/status_poster/status_poster.service.js'
|
||||||
import PostStatusForm from '../post_status_form/post_status_form.vue'
|
|
||||||
|
|
||||||
const EditStatusForm = {
|
const EditStatusForm = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { get } from 'lodash'
|
import { get } from 'lodash'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
|
|
||||||
import Modal from '../modal/modal.vue'
|
import Modal from 'src/components/modal/modal.vue'
|
||||||
|
|
||||||
import { useEditStatusStore } from 'src/stores/editStatus.js'
|
import { useEditStatusStore } from 'src/stores/editStatus.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 '../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'
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
v-if="group.image"
|
v-if="group.image"
|
||||||
class="emoji-picker-header-image"
|
class="emoji-picker-header-image"
|
||||||
>
|
>
|
||||||
<still-image
|
<StillImage
|
||||||
:alt="group.text"
|
:alt="group.text"
|
||||||
:src="group.image"
|
:src="group.image"
|
||||||
/>
|
/>
|
||||||
|
|
@ -131,7 +131,7 @@
|
||||||
v-if="!emoji.imageUrl"
|
v-if="!emoji.imageUrl"
|
||||||
class="emoji-picker-emoji -unicode"
|
class="emoji-picker-emoji -unicode"
|
||||||
>{{ emoji.replacement }}</span>
|
>{{ emoji.replacement }}</span>
|
||||||
<still-image
|
<StillImage
|
||||||
v-else
|
v-else
|
||||||
class="emoji-picker-emoji -custom"
|
class="emoji-picker-emoji -custom"
|
||||||
loading="lazy"
|
loading="lazy"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
|
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserListPopover from 'src/components/user_list_popover/user_list_popover.vue'
|
||||||
import UserListPopover from '../user_list_popover/user_list_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'
|
||||||
|
|
@ -17,7 +16,6 @@ const EmojiReactions = {
|
||||||
components: {
|
components: {
|
||||||
UserAvatar,
|
UserAvatar,
|
||||||
UserListPopover,
|
UserListPopover,
|
||||||
|
|
||||||
},
|
},
|
||||||
props: ['status'],
|
props: ['status'],
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue'
|
||||||
import FollowButton from '../follow_button/follow_button.vue'
|
import FollowButton from 'src/components/follow_button/follow_button.vue'
|
||||||
import RemoteFollow from '../remote_follow/remote_follow.vue'
|
import RemoteFollow from 'src/components/remote_follow/remote_follow.vue'
|
||||||
import RemoveFollowerButton from '../remove_follower_button/remove_follower_button.vue'
|
import RemoveFollowerButton from 'src/components/remove_follower_button/remove_follower_button.vue'
|
||||||
|
|
||||||
const FollowCard = {
|
const FollowCard = {
|
||||||
props: ['user', 'noFollowsYou'],
|
props: ['user', 'noFollowsYou'],
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import FollowRequestCard from '../follow_request_card/follow_request_card.vue'
|
import FollowRequestCard from 'src/components/follow_request_card/follow_request_card.vue'
|
||||||
|
|
||||||
const FollowRequests = {
|
const FollowRequests = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -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 Select from 'src/components/select/select.vue'
|
||||||
import LocalSettingIndicator from 'src/components/settings_modal/helpers/local_setting_indicator.vue'
|
import LocalSettingIndicator from 'src/components/settings_modal/helpers/local_setting_indicator.vue'
|
||||||
import Select from '../select/select.vue'
|
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const FriendsTimeline = {
|
const FriendsTimeline = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { set, sumBy } from 'lodash'
|
import { set, sumBy } from 'lodash'
|
||||||
|
|
||||||
import Attachment from '../attachment/attachment.vue'
|
import Attachment from 'src/components/attachment/attachment.vue'
|
||||||
|
|
||||||
import { useMediaViewerStore } from 'src/stores/media_viewer.js'
|
import { useMediaViewerStore } from 'src/stores/media_viewer.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
import Notifications from 'src/components/notifications/notifications.vue'
|
||||||
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
||||||
import Notifications from '../notifications/notifications.vue'
|
|
||||||
|
|
||||||
const tabModeDict = {
|
const tabModeDict = {
|
||||||
mentions: ['mention'],
|
mentions: ['mention'],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
|
|
||||||
|
import Select from 'src/components/select/select.vue'
|
||||||
import localeService from '../../services/locale/locale.service.js'
|
import localeService from '../../services/locale/locale.service.js'
|
||||||
import Select from '../select/select.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import ListsCard from '../lists_card/lists_card.vue'
|
import ListsCard from 'src/components/lists_card/lists_card.vue'
|
||||||
|
|
||||||
import { useListsStore } from 'src/stores/lists.js'
|
import { useListsStore } from 'src/stores/lists.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
import { mapGetters, mapState } from 'vuex'
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
|
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 PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
||||||
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
import UserAvatar from 'src/components/user_avatar/user_avatar.vue'
|
||||||
import ListsUserSearch from '../lists_user_search/lists_user_search.vue'
|
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||||
import { useListsStore } from 'src/stores/lists.js'
|
import { useListsStore } from 'src/stores/lists.js'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
import { useListsStore } from 'src/stores/lists.js'
|
import { useListsStore } from 'src/stores/lists.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { debounce } from 'lodash'
|
import { debounce } from 'lodash'
|
||||||
|
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const Mentions = {
|
const Mentions = {
|
||||||
computed: {
|
computed: {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import DialogModal from '../dialog_modal/dialog_modal.vue'
|
import DialogModal from 'src/components/dialog_modal/dialog_modal.vue'
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from 'src/components/popover/popover.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'
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
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 UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
|
||||||
|
|
||||||
const MuteCard = {
|
const MuteCard = {
|
||||||
props: ['userId'],
|
props: ['userId'],
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 '../report/report.vue'
|
|
||||||
|
|
||||||
import StatusContent from '../status_content/status_content.vue'
|
|
||||||
import Timeago from '../timeago/timeago.vue'
|
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
|
||||||
import UserLink from '../user_link/user_link.vue'
|
|
||||||
import UserPopover from '../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)
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
import { useMergedConfigStore } from 'src/stores/merged_config.js'
|
import { useMergedConfigStore } from 'src/stores/merged_config.js'
|
||||||
import { useSyncConfigStore } from 'src/stores/sync_config.js'
|
import { useSyncConfigStore } from 'src/stores/sync_config.js'
|
||||||
|
|
|
||||||
|
|
@ -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 '../extra_notifications/extra_notifications.vue'
|
|
||||||
import Notification from '../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'
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Checkbox,
|
Checkbox,
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Select from '../select/select.vue'
|
import Select from 'src/components/select/select.vue'
|
||||||
|
|
||||||
import { useInstanceStore } from 'src/stores/instance.js'
|
import { useInstanceStore } from 'src/stores/instance.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { get } from 'lodash'
|
import { get } from 'lodash'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
|
|
||||||
import Modal from '../modal/modal.vue'
|
import Modal from 'src/components/modal/modal.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 { usePostStatusStore } from 'src/stores/post_status.js'
|
import { usePostStatusStore } from 'src/stores/post_status.js'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const PublicAndExternalTimeline = {
|
const PublicAndExternalTimeline = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const PublicTimeline = {
|
const PublicTimeline = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
|
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||||
import { useLocalConfigStore } from 'src/stores/local_config.js'
|
import { useLocalConfigStore } from 'src/stores/local_config.js'
|
||||||
|
|
|
||||||
|
|
@ -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: {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { debounce } from 'lodash'
|
import { debounce } from 'lodash'
|
||||||
|
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import Quote from './quote.vue'
|
import Quote from './quote.vue'
|
||||||
|
|
||||||
import { useInstanceStore } from 'src/stores/instance.js'
|
import { useInstanceStore } from 'src/stores/instance.js'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const QuotesTimeline = {
|
const QuotesTimeline = {
|
||||||
created() {
|
created() {
|
||||||
|
|
|
||||||
|
|
@ -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 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 localeService from '../../services/locale/locale.service.js'
|
import localeService from '../../services/locale/locale.service.js'
|
||||||
import InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'
|
|
||||||
import TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'
|
|
||||||
|
|
||||||
import { useInstanceStore } from 'src/stores/instance.js'
|
import { useInstanceStore } from 'src/stores/instance.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
|
import Select from 'src/components/select/select.vue'
|
||||||
import Select from '../select/select.vue'
|
import StatusContent from 'src/components/status_content/status_content.vue'
|
||||||
import StatusContent from '../status_content/status_content.vue'
|
import Timeago from 'src/components/timeago/timeago.vue'
|
||||||
import Timeago from '../timeago/timeago.vue'
|
|
||||||
|
|
||||||
import { useInstanceStore } from 'src/stores/instance.js'
|
import { useInstanceStore } from 'src/stores/instance.js'
|
||||||
import { useReportsStore } from 'src/stores/reports.js'
|
import { useReportsStore } from 'src/stores/reports.js'
|
||||||
|
|
@ -14,7 +13,6 @@ const Report = {
|
||||||
Select,
|
Select,
|
||||||
StatusContent,
|
StatusContent,
|
||||||
Timeago,
|
Timeago,
|
||||||
|
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
report() {
|
report() {
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Checkbox,
|
Checkbox,
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
import { map, uniqBy } from 'lodash'
|
import { map, uniqBy } from 'lodash'
|
||||||
|
|
||||||
|
import Conversation from 'src/components/conversation/conversation.vue'
|
||||||
|
import FollowCard from 'src/components/follow_card/follow_card.vue'
|
||||||
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 FollowCard from '../follow_card/follow_card.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'
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import List from '../list/list.vue'
|
import List from 'src/components/list/list.vue'
|
||||||
|
|
||||||
const SelectableList = {
|
const SelectableList = {
|
||||||
components: {
|
components: {
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import AsyncComponentError from 'src/components/async_component_error/async_comp
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import Modal from 'src/components/modal/modal.vue'
|
import Modal from 'src/components/modal/modal.vue'
|
||||||
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||||
import { useLocalConfigStore } from 'src/stores/local_config.js'
|
import { useLocalConfigStore } from 'src/stores/local_config.js'
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { groupBy, map } from 'lodash'
|
import { groupBy, map } from 'lodash'
|
||||||
import { mapGetters, mapState } from 'vuex'
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
import BasicUserCard from 'src/components/basic_user_card/basic_user_card.vue'
|
||||||
|
|
||||||
import { useInstanceStore } from 'src/stores/instance.js'
|
import { useInstanceStore } from 'src/stores/instance.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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'],
|
||||||
|
|
|
||||||
|
|
@ -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) => {
|
||||||
|
|
|
||||||
|
|
@ -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, {
|
||||||
|
|
|
||||||
|
|
@ -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 '../attachment/attachment.vue'
|
|
||||||
import LinkPreview from '../link-preview/link-preview.vue'
|
|
||||||
import Poll from '../poll/poll.vue'
|
|
||||||
import Gallery from 'src/components/gallery/gallery.vue'
|
import Gallery from 'src/components/gallery/gallery.vue'
|
||||||
|
import LinkPreview from 'src/components/link-preview/link-preview.vue'
|
||||||
|
import Poll from 'src/components/poll/poll.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'
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,12 @@
|
||||||
import { get } from 'lodash'
|
import { get } from 'lodash'
|
||||||
|
|
||||||
import Modal from '../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 {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { find } from 'lodash'
|
import { find } from 'lodash'
|
||||||
|
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
import Status from '../status/status.vue'
|
import Status from 'src/components/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'
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import Timeline from '../timeline/timeline.vue'
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
|
||||||
const TagTimeline = {
|
const TagTimeline = {
|
||||||
created() {
|
created() {
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
import { debounce, keyBy, throttle } from 'lodash'
|
import { debounce, keyBy, throttle } from 'lodash'
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
|
|
||||||
import Conversation from '../conversation/conversation.vue'
|
import Conversation from 'src/components/conversation/conversation.vue'
|
||||||
import QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'
|
import QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_settings.vue'
|
||||||
import QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'
|
import QuickViewSettings from 'src/components/quick_view_settings/quick_view_settings.vue'
|
||||||
import ScrollTopButton from '../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 '../timeline_menu/timeline_menu.vue'
|
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||||
import { useMergedConfigStore } from 'src/stores/merged_config.js'
|
import { useMergedConfigStore } from 'src/stores/merged_config.js'
|
||||||
|
|
@ -52,7 +51,6 @@ const Timeline = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
||||||
ScrollTopButton,
|
ScrollTopButton,
|
||||||
Conversation,
|
Conversation,
|
||||||
TimelineMenu,
|
TimelineMenu,
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
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 '../bookmark_folders_menu/bookmark_folders_menu_content.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
import ListsMenuContent from '../lists_menu/lists_menu_content.vue'
|
|
||||||
import Popover from '../popover/popover.vue'
|
|
||||||
|
|
||||||
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'
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'
|
import UnicodeDomainIndicator from 'src/components/unicode_domain_indicator/unicode_domain_indicator.vue'
|
||||||
|
|
||||||
import { useInstanceStore } from 'src/stores/instance.js'
|
import { useInstanceStore } from 'src/stores/instance.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
|
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
import { useListsStore } from 'src/stores/lists.js'
|
import { useListsStore } from 'src/stores/lists.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 '../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'
|
||||||
|
|
|
||||||
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
import { get } from 'lodash'
|
import { get } from 'lodash'
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
|
|
||||||
|
import Conversation from 'src/components/conversation/conversation.vue'
|
||||||
|
import FollowCard from 'src/components/follow_card/follow_card.vue'
|
||||||
|
import List from 'src/components/list/list.vue'
|
||||||
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
||||||
|
import Timeline from 'src/components/timeline/timeline.vue'
|
||||||
|
import UserCard from 'src/components/user_card/user_card.vue'
|
||||||
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 FollowCard from '../follow_card/follow_card.vue'
|
|
||||||
import List from '../list/list.vue'
|
|
||||||
import Timeline from '../timeline/timeline.vue'
|
|
||||||
import UserCard from '../user_card/user_card.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'
|
||||||
|
|
@ -209,7 +208,6 @@ const UserProfile = {
|
||||||
FollowCard,
|
FollowCard,
|
||||||
TabSwitcher,
|
TabSwitcher,
|
||||||
Conversation,
|
Conversation,
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,12 @@
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import List from '../list/list.vue'
|
import List from 'src/components/list/list.vue'
|
||||||
import Modal from '../modal/modal.vue'
|
import Modal from 'src/components/modal/modal.vue'
|
||||||
|
import UserLink from 'src/components/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: {
|
||||||
|
|
||||||
List,
|
List,
|
||||||
Checkbox,
|
Checkbox,
|
||||||
Modal,
|
Modal,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
import FollowCard from 'src/components/follow_card/follow_card.vue'
|
||||||
import apiService from '../../services/api/api.service.js'
|
import apiService from '../../services/api/api.service.js'
|
||||||
import FollowCard from '../follow_card/follow_card.vue'
|
|
||||||
|
|
||||||
import { useInstanceStore } from 'src/stores/instance.js'
|
import { useInstanceStore } from 'src/stores/instance.js'
|
||||||
|
|
||||||
|
|
|
||||||
12
test/fixtures/setup_test.js
vendored
12
test/fixtures/setup_test.js
vendored
|
|
@ -2,7 +2,12 @@ import { config } from '@vue/test-utils'
|
||||||
import { createMemoryHistory, createRouter } from 'vue-router'
|
import { createMemoryHistory, createRouter } from 'vue-router'
|
||||||
import VueVirtualScroller from 'vue-virtual-scroller'
|
import VueVirtualScroller from 'vue-virtual-scroller'
|
||||||
|
|
||||||
|
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 makeMockStore from './mock_store'
|
import makeMockStore from './mock_store'
|
||||||
|
import { createTestingPinia } from '@pinia/testing'
|
||||||
|
|
||||||
import routes from 'src/boot/routes'
|
import routes from 'src/boot/routes'
|
||||||
|
|
||||||
|
|
@ -37,8 +42,13 @@ const getDefaultOpts = ({
|
||||||
(Vue) => {
|
(Vue) => {
|
||||||
Vue.directive('body-scroll-lock', {})
|
Vue.directive('body-scroll-lock', {})
|
||||||
},
|
},
|
||||||
|
createTestingPinia(),
|
||||||
],
|
],
|
||||||
components: {},
|
components: {
|
||||||
|
RichContent,
|
||||||
|
Status,
|
||||||
|
StillImage,
|
||||||
|
},
|
||||||
stubs: {
|
stubs: {
|
||||||
I18nT: true,
|
I18nT: true,
|
||||||
teleport: true,
|
teleport: true,
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,9 @@ describe('routes', () => {
|
||||||
const matchedComponents = router.currentRoute.value.matched
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
Object.hasOwn(
|
matchedComponents[0].components.default.name,
|
||||||
matchedComponents[0].components.default.components,
|
).to.eql('AsyncComponentWrapper')
|
||||||
'UserCard',
|
|
||||||
),
|
|
||||||
).to.eql(true)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it("user's profile at /users", async () => {
|
it("user's profile at /users", async () => {
|
||||||
|
|
@ -51,11 +49,8 @@ describe('routes', () => {
|
||||||
const matchedComponents = router.currentRoute.value.matched
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
Object.hasOwn(
|
matchedComponents[0].components.default.name,
|
||||||
matchedComponents[0].components.default.components,
|
).to.eql('AsyncComponentWrapper')
|
||||||
'UserCard',
|
|
||||||
),
|
|
||||||
).to.eql(true)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('list view', async () => {
|
it('list view', async () => {
|
||||||
|
|
@ -64,11 +59,8 @@ describe('routes', () => {
|
||||||
const matchedComponents = router.currentRoute.value.matched
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
Object.hasOwn(
|
matchedComponents[0].components.default.name,
|
||||||
matchedComponents[0].components.default.components,
|
).to.eql('AsyncComponentWrapper')
|
||||||
'ListsCard',
|
|
||||||
),
|
|
||||||
).to.eql(true)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('list timeline', async () => {
|
it('list timeline', async () => {
|
||||||
|
|
@ -77,11 +69,8 @@ describe('routes', () => {
|
||||||
const matchedComponents = router.currentRoute.value.matched
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
Object.hasOwn(
|
matchedComponents[0].components.default.name,
|
||||||
matchedComponents[0].components.default.components,
|
).to.eql('AsyncComponentWrapper')
|
||||||
'Timeline',
|
|
||||||
),
|
|
||||||
).to.eql(true)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('list edit', async () => {
|
it('list edit', async () => {
|
||||||
|
|
@ -90,10 +79,7 @@ describe('routes', () => {
|
||||||
const matchedComponents = router.currentRoute.value.matched
|
const matchedComponents = router.currentRoute.value.matched
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
Object.hasOwn(
|
matchedComponents[0].components.default.name,
|
||||||
matchedComponents[0].components.default.components,
|
).to.eql('AsyncComponentWrapper')
|
||||||
'BasicUserCard',
|
|
||||||
),
|
|
||||||
).to.eql(true)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue