refactor(frontend): relocate plugin consts
This commit is contained in:
parent
933abedc90
commit
27e8805dcb
|
@ -206,7 +206,6 @@ import number from '@/filters/number.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import * as sound from '@/utility/sound.js';
|
import * as sound from '@/utility/sound.js';
|
||||||
import { misskeyApi, misskeyApiGet } from '@/utility/misskey-api.js';
|
import { misskeyApi, misskeyApiGet } from '@/utility/misskey-api.js';
|
||||||
import { noteViewInterruptors } from '@/store.js';
|
|
||||||
import { reactionPicker } from '@/utility/reaction-picker.js';
|
import { reactionPicker } from '@/utility/reaction-picker.js';
|
||||||
import { extractUrlFromMfm } from '@/utility/extract-url-from-mfm.js';
|
import { extractUrlFromMfm } from '@/utility/extract-url-from-mfm.js';
|
||||||
import { $i } from '@/account.js';
|
import { $i } from '@/account.js';
|
||||||
|
@ -223,6 +222,7 @@ import { isEnabledUrlPreview } from '@/instance.js';
|
||||||
import { focusPrev, focusNext } from '@/utility/focus.js';
|
import { focusPrev, focusNext } from '@/utility/focus.js';
|
||||||
import { getAppearNote } from '@/utility/get-appear-note.js';
|
import { getAppearNote } from '@/utility/get-appear-note.js';
|
||||||
import { prefer } from '@/preferences.js';
|
import { prefer } from '@/preferences.js';
|
||||||
|
import { noteViewInterruptors } from '@/plugin.js';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
note: Misskey.entities.Note;
|
note: Misskey.entities.Note;
|
||||||
|
|
|
@ -236,7 +236,6 @@ import number from '@/filters/number.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { misskeyApi, misskeyApiGet } from '@/utility/misskey-api.js';
|
import { misskeyApi, misskeyApiGet } from '@/utility/misskey-api.js';
|
||||||
import * as sound from '@/utility/sound.js';
|
import * as sound from '@/utility/sound.js';
|
||||||
import { noteViewInterruptors } from '@/store.js';
|
|
||||||
import { reactionPicker } from '@/utility/reaction-picker.js';
|
import { reactionPicker } from '@/utility/reaction-picker.js';
|
||||||
import { extractUrlFromMfm } from '@/utility/extract-url-from-mfm.js';
|
import { extractUrlFromMfm } from '@/utility/extract-url-from-mfm.js';
|
||||||
import { $i } from '@/account.js';
|
import { $i } from '@/account.js';
|
||||||
|
@ -255,6 +254,7 @@ import MkButton from '@/components/MkButton.vue';
|
||||||
import { isEnabledUrlPreview } from '@/instance.js';
|
import { isEnabledUrlPreview } from '@/instance.js';
|
||||||
import { getAppearNote } from '@/utility/get-appear-note.js';
|
import { getAppearNote } from '@/utility/get-appear-note.js';
|
||||||
import { prefer } from '@/preferences.js';
|
import { prefer } from '@/preferences.js';
|
||||||
|
import { noteViewInterruptors } from '@/plugin.js';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
note: Misskey.entities.Note;
|
note: Misskey.entities.Note;
|
||||||
|
|
|
@ -104,18 +104,18 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { inject, watch, nextTick, onMounted, defineAsyncComponent, provide, shallowRef, ref, computed } from 'vue';
|
import { inject, watch, nextTick, onMounted, defineAsyncComponent, provide, shallowRef, ref, computed } from 'vue';
|
||||||
import type { ShallowRef } from 'vue';
|
|
||||||
import * as mfm from 'mfm-js';
|
import * as mfm from 'mfm-js';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import insertTextAtCursor from 'insert-text-at-cursor';
|
import insertTextAtCursor from 'insert-text-at-cursor';
|
||||||
import { toASCII } from 'punycode.js';
|
import { toASCII } from 'punycode.js';
|
||||||
import { host, url } from '@@/js/config.js';
|
import { host, url } from '@@/js/config.js';
|
||||||
|
import type { ShallowRef } from 'vue';
|
||||||
import type { PostFormProps } from '@/types/post-form.js';
|
import type { PostFormProps } from '@/types/post-form.js';
|
||||||
import MkNoteSimple from '@/components/MkNoteSimple.vue';
|
import type { PollEditorModelValue } from '@/components/MkPollEditor.vue';
|
||||||
import MkNotePreview from '@/components/MkNotePreview.vue';
|
import MkNotePreview from '@/components/MkNotePreview.vue';
|
||||||
import XPostFormAttaches from '@/components/MkPostFormAttaches.vue';
|
import XPostFormAttaches from '@/components/MkPostFormAttaches.vue';
|
||||||
import MkPollEditor from '@/components/MkPollEditor.vue';
|
import MkPollEditor from '@/components/MkPollEditor.vue';
|
||||||
import type { PollEditorModelValue } from '@/components/MkPollEditor.vue';
|
import MkNoteSimple from '@/components/MkNoteSimple.vue';
|
||||||
import { erase, unique } from '@/utility/array.js';
|
import { erase, unique } from '@/utility/array.js';
|
||||||
import { extractMentions } from '@/utility/extract-mentions.js';
|
import { extractMentions } from '@/utility/extract-mentions.js';
|
||||||
import { formatTimeString } from '@/utility/format-time-string.js';
|
import { formatTimeString } from '@/utility/format-time-string.js';
|
||||||
|
@ -123,7 +123,7 @@ import { Autocomplete } from '@/utility/autocomplete.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { misskeyApi } from '@/utility/misskey-api.js';
|
import { misskeyApi } from '@/utility/misskey-api.js';
|
||||||
import { selectFiles } from '@/utility/select-file.js';
|
import { selectFiles } from '@/utility/select-file.js';
|
||||||
import { store, notePostInterruptors, postFormActions } from '@/store.js';
|
import { store } from '@/store.js';
|
||||||
import MkInfo from '@/components/MkInfo.vue';
|
import MkInfo from '@/components/MkInfo.vue';
|
||||||
import { i18n } from '@/i18n.js';
|
import { i18n } from '@/i18n.js';
|
||||||
import { instance } from '@/instance.js';
|
import { instance } from '@/instance.js';
|
||||||
|
@ -136,6 +136,7 @@ import { claimAchievement } from '@/utility/achievements.js';
|
||||||
import { emojiPicker } from '@/utility/emoji-picker.js';
|
import { emojiPicker } from '@/utility/emoji-picker.js';
|
||||||
import { mfmFunctionPicker } from '@/utility/mfm-function-picker.js';
|
import { mfmFunctionPicker } from '@/utility/mfm-function-picker.js';
|
||||||
import { prefer } from '@/preferences.js';
|
import { prefer } from '@/preferences.js';
|
||||||
|
import { notePostInterruptors, postFormActions } from '@/plugin.js';
|
||||||
|
|
||||||
const $i = signinRequired();
|
const $i = signinRequired();
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,6 @@ import MkPagination from '@/components/MkPagination.vue';
|
||||||
import MkPagePreview from '@/components/MkPagePreview.vue';
|
import MkPagePreview from '@/components/MkPagePreview.vue';
|
||||||
import { i18n } from '@/i18n.js';
|
import { i18n } from '@/i18n.js';
|
||||||
import { definePageMetadata } from '@/utility/page-metadata.js';
|
import { definePageMetadata } from '@/utility/page-metadata.js';
|
||||||
import { pageViewInterruptors } from '@/store.js';
|
|
||||||
import { deepClone } from '@/utility/clone.js';
|
import { deepClone } from '@/utility/clone.js';
|
||||||
import { $i } from '@/account.js';
|
import { $i } from '@/account.js';
|
||||||
import { isSupportShare } from '@/utility/navigator.js';
|
import { isSupportShare } from '@/utility/navigator.js';
|
||||||
|
@ -123,6 +122,7 @@ import { getStaticImageUrl } from '@/utility/media-proxy.js';
|
||||||
import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
|
import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
|
||||||
import { useRouter } from '@/router/supplier.js';
|
import { useRouter } from '@/router/supplier.js';
|
||||||
import { prefer } from '@/preferences.js';
|
import { prefer } from '@/preferences.js';
|
||||||
|
import { pageViewInterruptors } from '@/plugin.js';
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,9 @@ import { ref, defineAsyncComponent } from 'vue';
|
||||||
import { Interpreter, Parser, utils, values } from '@syuilo/aiscript';
|
import { Interpreter, Parser, utils, values } from '@syuilo/aiscript';
|
||||||
import { compareVersions } from 'compare-versions';
|
import { compareVersions } from 'compare-versions';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
|
import * as Misskey from 'misskey-js';
|
||||||
import { aiScriptReadline, createAiScriptEnv } from '@/aiscript/api.js';
|
import { aiScriptReadline, createAiScriptEnv } from '@/aiscript/api.js';
|
||||||
import { noteActions, notePostInterruptors, noteViewInterruptors, postFormActions, userActions, pageViewInterruptors, store } from '@/store.js';
|
import { store } from '@/store.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { misskeyApi } from '@/utility/misskey-api.js';
|
import { misskeyApi } from '@/utility/misskey-api.js';
|
||||||
import { i18n } from '@/i18n.js';
|
import { i18n } from '@/i18n.js';
|
||||||
|
@ -36,6 +37,40 @@ export type AiScriptPluginMeta = {
|
||||||
config?: Record<string, any>;
|
config?: Record<string, any>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
interface PostFormAction {
|
||||||
|
title: string,
|
||||||
|
handler: <T>(form: T, update: (key: unknown, value: unknown) => void) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface UserAction {
|
||||||
|
title: string,
|
||||||
|
handler: (user: Misskey.entities.UserDetailed) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface NoteAction {
|
||||||
|
title: string,
|
||||||
|
handler: (note: Misskey.entities.Note) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface NoteViewInterruptor {
|
||||||
|
handler: (note: Misskey.entities.Note) => unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface NotePostInterruptor {
|
||||||
|
handler: (note: FIXME) => unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PageViewInterruptor {
|
||||||
|
handler: (page: Misskey.entities.Page) => unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const postFormActions: PostFormAction[] = [];
|
||||||
|
export const userActions: UserAction[] = [];
|
||||||
|
export const noteActions: NoteAction[] = [];
|
||||||
|
export const noteViewInterruptors: NoteViewInterruptor[] = [];
|
||||||
|
export const notePostInterruptors: NotePostInterruptor[] = [];
|
||||||
|
export const pageViewInterruptors: PageViewInterruptor[] = [];
|
||||||
|
|
||||||
const parser = new Parser();
|
const parser = new Parser();
|
||||||
|
|
||||||
export function isSupportedAiScriptVersion(version: string): boolean {
|
export function isSupportedAiScriptVersion(version: string): boolean {
|
||||||
|
|
|
@ -15,40 +15,6 @@ import { miLocalStorage } from '@/local-storage.js';
|
||||||
import { Storage } from '@/pizzax.js';
|
import { Storage } from '@/pizzax.js';
|
||||||
import { DEFAULT_DEVICE_KIND } from '@/utility/device-kind.js';
|
import { DEFAULT_DEVICE_KIND } from '@/utility/device-kind.js';
|
||||||
|
|
||||||
interface PostFormAction {
|
|
||||||
title: string,
|
|
||||||
handler: <T>(form: T, update: (key: unknown, value: unknown) => void) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface UserAction {
|
|
||||||
title: string,
|
|
||||||
handler: (user: Misskey.entities.UserDetailed) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface NoteAction {
|
|
||||||
title: string,
|
|
||||||
handler: (note: Misskey.entities.Note) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface NoteViewInterruptor {
|
|
||||||
handler: (note: Misskey.entities.Note) => unknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface NotePostInterruptor {
|
|
||||||
handler: (note: FIXME) => unknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface PageViewInterruptor {
|
|
||||||
handler: (page: Misskey.entities.Page) => unknown;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const postFormActions: PostFormAction[] = [];
|
|
||||||
export const userActions: UserAction[] = [];
|
|
||||||
export const noteActions: NoteAction[] = [];
|
|
||||||
export const noteViewInterruptors: NoteViewInterruptor[] = [];
|
|
||||||
export const notePostInterruptors: NotePostInterruptor[] = [];
|
|
||||||
export const pageViewInterruptors: PageViewInterruptor[] = [];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 「状態」を管理するストア(not「設定」)
|
* 「状態」を管理するストア(not「設定」)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { defineAsyncComponent } from 'vue';
|
import { defineAsyncComponent } from 'vue';
|
||||||
import type { Ref, ShallowRef } from 'vue';
|
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import { url } from '@@/js/config.js';
|
import { url } from '@@/js/config.js';
|
||||||
import { claimAchievement } from './achievements.js';
|
import { claimAchievement } from './achievements.js';
|
||||||
|
import type { Ref, ShallowRef } from 'vue';
|
||||||
import type { MenuItem } from '@/types/menu.js';
|
import type { MenuItem } from '@/types/menu.js';
|
||||||
import { $i } from '@/account.js';
|
import { $i } from '@/account.js';
|
||||||
import { i18n } from '@/i18n.js';
|
import { i18n } from '@/i18n.js';
|
||||||
|
@ -15,7 +15,7 @@ import { instance } from '@/instance.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { misskeyApi } from '@/utility/misskey-api.js';
|
import { misskeyApi } from '@/utility/misskey-api.js';
|
||||||
import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
|
import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
|
||||||
import { store, noteActions } from '@/store.js';
|
import { store } from '@/store.js';
|
||||||
import { miLocalStorage } from '@/local-storage.js';
|
import { miLocalStorage } from '@/local-storage.js';
|
||||||
import { getUserMenu } from '@/utility/get-user-menu.js';
|
import { getUserMenu } from '@/utility/get-user-menu.js';
|
||||||
import { clipsCache, favoritedChannelsCache } from '@/cache.js';
|
import { clipsCache, favoritedChannelsCache } from '@/cache.js';
|
||||||
|
@ -24,6 +24,7 @@ import { isSupportShare } from '@/utility/navigator.js';
|
||||||
import { getAppearNote } from '@/utility/get-appear-note.js';
|
import { getAppearNote } from '@/utility/get-appear-note.js';
|
||||||
import { genEmbedCode } from '@/utility/get-embed-code.js';
|
import { genEmbedCode } from '@/utility/get-embed-code.js';
|
||||||
import { prefer } from '@/preferences.js';
|
import { prefer } from '@/preferences.js';
|
||||||
|
import { noteActions } from '@/plugin.js';
|
||||||
|
|
||||||
export async function getNoteClipMenu(props: {
|
export async function getNoteClipMenu(props: {
|
||||||
note: Misskey.entities.Note;
|
note: Misskey.entities.Note;
|
||||||
|
|
|
@ -13,13 +13,13 @@ import { i18n } from '@/i18n.js';
|
||||||
import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
|
import { copyToClipboard } from '@/utility/copy-to-clipboard.js';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
import { misskeyApi } from '@/utility/misskey-api.js';
|
import { misskeyApi } from '@/utility/misskey-api.js';
|
||||||
import { userActions } from '@/store.js';
|
|
||||||
import { $i, iAmModerator } from '@/account.js';
|
import { $i, iAmModerator } from '@/account.js';
|
||||||
import { notesSearchAvailable, canSearchNonLocalNotes } from '@/utility/check-permissions.js';
|
import { notesSearchAvailable, canSearchNonLocalNotes } from '@/utility/check-permissions.js';
|
||||||
import { antennasCache, rolesCache, userListsCache } from '@/cache.js';
|
import { antennasCache, rolesCache, userListsCache } from '@/cache.js';
|
||||||
import { mainRouter } from '@/router/main.js';
|
import { mainRouter } from '@/router/main.js';
|
||||||
import { genEmbedCode } from '@/utility/get-embed-code.js';
|
import { genEmbedCode } from '@/utility/get-embed-code.js';
|
||||||
import { prefer } from '@/preferences.js';
|
import { prefer } from '@/preferences.js';
|
||||||
|
import { userActions } from '@/plugin.js';
|
||||||
|
|
||||||
export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter = mainRouter) {
|
export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter = mainRouter) {
|
||||||
const meId = $i ? $i.id : null;
|
const meId = $i ? $i.id : null;
|
||||||
|
|
Loading…
Reference in New Issue