diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-03-09 17:02:46 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-03-09 17:02:46 +0900 |
| commit | 27e8805dcbddb73571c8d7fea79c852d9697a26b (patch) | |
| tree | df15036b486e20cb40e304a667b0e8314c79b3c3 /packages/frontend | |
| parent | Bump version to 2025.3.2-alpha.1 (diff) | |
| download | sharkey-27e8805dcbddb73571c8d7fea79c852d9697a26b.tar.gz sharkey-27e8805dcbddb73571c8d7fea79c852d9697a26b.tar.bz2 sharkey-27e8805dcbddb73571c8d7fea79c852d9697a26b.zip | |
refactor(frontend): relocate plugin consts
Diffstat (limited to 'packages/frontend')
| -rw-r--r-- | packages/frontend/src/components/MkNote.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkNoteDetailed.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/components/MkPostForm.vue | 9 | ||||
| -rw-r--r-- | packages/frontend/src/pages/page.vue | 2 | ||||
| -rw-r--r-- | packages/frontend/src/plugin.ts | 37 | ||||
| -rw-r--r-- | packages/frontend/src/store.ts | 34 | ||||
| -rw-r--r-- | packages/frontend/src/utility/get-note-menu.ts | 5 | ||||
| -rw-r--r-- | packages/frontend/src/utility/get-user-menu.ts | 2 |
8 files changed, 48 insertions, 45 deletions
diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue index 0daa917500..f3f8c1ce82 100644 --- a/packages/frontend/src/components/MkNote.vue +++ b/packages/frontend/src/components/MkNote.vue @@ -206,7 +206,6 @@ import number from '@/filters/number.js'; import * as os from '@/os.js'; import * as sound from '@/utility/sound.js'; import { misskeyApi, misskeyApiGet } from '@/utility/misskey-api.js'; -import { noteViewInterruptors } from '@/store.js'; import { reactionPicker } from '@/utility/reaction-picker.js'; import { extractUrlFromMfm } from '@/utility/extract-url-from-mfm.js'; import { $i } from '@/account.js'; @@ -223,6 +222,7 @@ import { isEnabledUrlPreview } from '@/instance.js'; import { focusPrev, focusNext } from '@/utility/focus.js'; import { getAppearNote } from '@/utility/get-appear-note.js'; import { prefer } from '@/preferences.js'; +import { noteViewInterruptors } from '@/plugin.js'; const props = withDefaults(defineProps<{ note: Misskey.entities.Note; diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue index 10f375fcae..7f982858f1 100644 --- a/packages/frontend/src/components/MkNoteDetailed.vue +++ b/packages/frontend/src/components/MkNoteDetailed.vue @@ -236,7 +236,6 @@ import number from '@/filters/number.js'; import * as os from '@/os.js'; import { misskeyApi, misskeyApiGet } from '@/utility/misskey-api.js'; import * as sound from '@/utility/sound.js'; -import { noteViewInterruptors } from '@/store.js'; import { reactionPicker } from '@/utility/reaction-picker.js'; import { extractUrlFromMfm } from '@/utility/extract-url-from-mfm.js'; import { $i } from '@/account.js'; @@ -255,6 +254,7 @@ import MkButton from '@/components/MkButton.vue'; import { isEnabledUrlPreview } from '@/instance.js'; import { getAppearNote } from '@/utility/get-appear-note.js'; import { prefer } from '@/preferences.js'; +import { noteViewInterruptors } from '@/plugin.js'; const props = withDefaults(defineProps<{ note: Misskey.entities.Note; diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue index 306c4be61b..4edb147b86 100644 --- a/packages/frontend/src/components/MkPostForm.vue +++ b/packages/frontend/src/components/MkPostForm.vue @@ -104,18 +104,18 @@ SPDX-License-Identifier: AGPL-3.0-only <script lang="ts" setup> 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 Misskey from 'misskey-js'; import insertTextAtCursor from 'insert-text-at-cursor'; import { toASCII } from 'punycode.js'; import { host, url } from '@@/js/config.js'; +import type { ShallowRef } from 'vue'; 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 XPostFormAttaches from '@/components/MkPostFormAttaches.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 { extractMentions } from '@/utility/extract-mentions.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 { misskeyApi } from '@/utility/misskey-api.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 { i18n } from '@/i18n.js'; import { instance } from '@/instance.js'; @@ -136,6 +136,7 @@ import { claimAchievement } from '@/utility/achievements.js'; import { emojiPicker } from '@/utility/emoji-picker.js'; import { mfmFunctionPicker } from '@/utility/mfm-function-picker.js'; import { prefer } from '@/preferences.js'; +import { notePostInterruptors, postFormActions } from '@/plugin.js'; const $i = signinRequired(); diff --git a/packages/frontend/src/pages/page.vue b/packages/frontend/src/pages/page.vue index 420b83035b..18322cde91 100644 --- a/packages/frontend/src/pages/page.vue +++ b/packages/frontend/src/pages/page.vue @@ -114,7 +114,6 @@ import MkPagination from '@/components/MkPagination.vue'; import MkPagePreview from '@/components/MkPagePreview.vue'; import { i18n } from '@/i18n.js'; import { definePageMetadata } from '@/utility/page-metadata.js'; -import { pageViewInterruptors } from '@/store.js'; import { deepClone } from '@/utility/clone.js'; import { $i } from '@/account.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 { useRouter } from '@/router/supplier.js'; import { prefer } from '@/preferences.js'; +import { pageViewInterruptors } from '@/plugin.js'; const router = useRouter(); diff --git a/packages/frontend/src/plugin.ts b/packages/frontend/src/plugin.ts index 4d56be75b9..3639d628c2 100644 --- a/packages/frontend/src/plugin.ts +++ b/packages/frontend/src/plugin.ts @@ -7,8 +7,9 @@ import { ref, defineAsyncComponent } from 'vue'; import { Interpreter, Parser, utils, values } from '@syuilo/aiscript'; import { compareVersions } from 'compare-versions'; import { v4 as uuid } from 'uuid'; +import * as Misskey from 'misskey-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 { misskeyApi } from '@/utility/misskey-api.js'; import { i18n } from '@/i18n.js'; @@ -36,6 +37,40 @@ export type AiScriptPluginMeta = { 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(); export function isSupportedAiScriptVersion(version: string): boolean { diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts index 32b4543f52..196ec782ff 100644 --- a/packages/frontend/src/store.ts +++ b/packages/frontend/src/store.ts @@ -15,40 +15,6 @@ import { miLocalStorage } from '@/local-storage.js'; import { Storage } from '@/pizzax.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「設定」) */ diff --git a/packages/frontend/src/utility/get-note-menu.ts b/packages/frontend/src/utility/get-note-menu.ts index c95eaa20dd..7bc4ba1026 100644 --- a/packages/frontend/src/utility/get-note-menu.ts +++ b/packages/frontend/src/utility/get-note-menu.ts @@ -4,10 +4,10 @@ */ import { defineAsyncComponent } from 'vue'; -import type { Ref, ShallowRef } from 'vue'; import * as Misskey from 'misskey-js'; import { url } from '@@/js/config.js'; import { claimAchievement } from './achievements.js'; +import type { Ref, ShallowRef } from 'vue'; import type { MenuItem } from '@/types/menu.js'; import { $i } from '@/account.js'; import { i18n } from '@/i18n.js'; @@ -15,7 +15,7 @@ import { instance } from '@/instance.js'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.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 { getUserMenu } from '@/utility/get-user-menu.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 { genEmbedCode } from '@/utility/get-embed-code.js'; import { prefer } from '@/preferences.js'; +import { noteActions } from '@/plugin.js'; export async function getNoteClipMenu(props: { note: Misskey.entities.Note; diff --git a/packages/frontend/src/utility/get-user-menu.ts b/packages/frontend/src/utility/get-user-menu.ts index d739976cb1..5fc1ffd3eb 100644 --- a/packages/frontend/src/utility/get-user-menu.ts +++ b/packages/frontend/src/utility/get-user-menu.ts @@ -13,13 +13,13 @@ import { i18n } from '@/i18n.js'; import { copyToClipboard } from '@/utility/copy-to-clipboard.js'; import * as os from '@/os.js'; import { misskeyApi } from '@/utility/misskey-api.js'; -import { userActions } from '@/store.js'; import { $i, iAmModerator } from '@/account.js'; import { notesSearchAvailable, canSearchNonLocalNotes } from '@/utility/check-permissions.js'; import { antennasCache, rolesCache, userListsCache } from '@/cache.js'; import { mainRouter } from '@/router/main.js'; import { genEmbedCode } from '@/utility/get-embed-code.js'; import { prefer } from '@/preferences.js'; +import { userActions } from '@/plugin.js'; export function getUserMenu(user: Misskey.entities.UserDetailed, router: IRouter = mainRouter) { const meId = $i ? $i.id : null; |