diff options
| author | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-03-10 13:47:38 +0900 |
|---|---|---|
| committer | syuilo <4439005+syuilo@users.noreply.github.com> | 2025-03-10 13:47:38 +0900 |
| commit | 9998cb84e80c98a399c68dd79d553f0cdfca78c7 (patch) | |
| tree | 9df72fc1dfa1f307aa053c1a243231920ff31e97 /packages/frontend/src/utility | |
| parent | chore(deps): update [root] update dependencies (#15624) (diff) | |
| download | misskey-9998cb84e80c98a399c68dd79d553f0cdfca78c7.tar.gz misskey-9998cb84e80c98a399c68dd79d553f0cdfca78c7.tar.bz2 misskey-9998cb84e80c98a399c68dd79d553f0cdfca78c7.zip | |
refactor(frontend): page-metadata -> page
Diffstat (limited to 'packages/frontend/src/utility')
| -rw-r--r-- | packages/frontend/src/utility/page-metadata.ts | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/packages/frontend/src/utility/page-metadata.ts b/packages/frontend/src/utility/page-metadata.ts deleted file mode 100644 index 671751147c..0000000000 --- a/packages/frontend/src/utility/page-metadata.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * SPDX-FileCopyrightText: syuilo and misskey-project - * SPDX-License-Identifier: AGPL-3.0-only - */ - -import * as Misskey from 'misskey-js'; -import { inject, isRef, onActivated, onBeforeUnmount, provide, ref, toValue, watch } from 'vue'; -import type { MaybeRefOrGetter, Ref } from 'vue'; - -export type PageMetadata = { - title: string; - subtitle?: string; - icon?: string | null; - avatar?: Misskey.entities.User | null; - userName?: Misskey.entities.User | null; - needWideArea?: boolean; -}; - -type PageMetadataGetter = () => PageMetadata; -type PageMetadataReceiver = (getter: PageMetadataGetter) => void; - -const RECEIVER_KEY = Symbol('ReceiverKey'); -const setReceiver = (v: PageMetadataReceiver): void => { - provide<PageMetadataReceiver>(RECEIVER_KEY, v); -}; -const getReceiver = (): PageMetadataReceiver | undefined => { - return inject<PageMetadataReceiver>(RECEIVER_KEY); -}; - -const METADATA_KEY = Symbol('MetadataKey'); -const setMetadata = (v: Ref<PageMetadata | null>): void => { - provide<Ref<PageMetadata | null>>(METADATA_KEY, v); -}; -const getMetadata = (): Ref<PageMetadata | null> | undefined => { - return inject<Ref<PageMetadata | null>>(METADATA_KEY); -}; - -export const definePageMetadata = (maybeRefOrGetterMetadata: MaybeRefOrGetter<PageMetadata>): void => { - const metadataRef = ref(toValue(maybeRefOrGetterMetadata)); - const metadataGetter = () => metadataRef.value; - const receiver = getReceiver(); - - // setup handler - receiver?.(metadataGetter); - - // update handler - onBeforeUnmount(watch( - () => toValue(maybeRefOrGetterMetadata), - (metadata) => { - metadataRef.value = metadata; - receiver?.(metadataGetter); - }, - { deep: true }, - )); - onActivated(() => { - receiver?.(metadataGetter); - }); -}; - -export const provideMetadataReceiver = (receiver: PageMetadataReceiver): void => { - setReceiver(receiver); -}; - -export const provideReactiveMetadata = (metadataRef: Ref<PageMetadata | null>): void => { - setMetadata(metadataRef); -}; - -export const injectReactiveMetadata = (): Ref<PageMetadata | null> => { - const metadataRef = getMetadata(); - return isRef(metadataRef) ? metadataRef : ref(null); -}; |