mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
Change settingsContainer to define api
This commit is contained in:
parent
8d83d55fe3
commit
e21a9db070
@ -4,7 +4,8 @@ import { TextColor } from '@/core/text-color'
|
||||
import { CdnTypes } from '@/core/cdn-types'
|
||||
import { addComponentListener } from '@/core/settings'
|
||||
import { DownloadPackageEmitMode } from '@/core/download-mode'
|
||||
import { ComponentEntry, ComponentMetadata, componentsTags } from '../types'
|
||||
import { ComponentEntry, componentsTags } from '../types'
|
||||
import { defineOptionsMetadata, defineComponentMetadata } from '../define'
|
||||
import { provideActions } from './external-actions'
|
||||
import description from './desc.md'
|
||||
|
||||
@ -14,27 +15,7 @@ export enum SettingsPanelDockSide {
|
||||
Right = '右侧',
|
||||
}
|
||||
|
||||
const entry: ComponentEntry = async ({ metadata }) => {
|
||||
const { isIframe } = await import('@/core/utils')
|
||||
if (isIframe()) {
|
||||
return
|
||||
}
|
||||
addComponentListener(`${metadata.name}.dockSide`, (value: SettingsPanelDockSide) => {
|
||||
document.body.classList.toggle('settings-panel-dock-right', value === SettingsPanelDockSide.Right)
|
||||
}, true)
|
||||
requestIdleCallback(async () => {
|
||||
const Container = await import('./SettingsContainer.vue')
|
||||
const instance = mountVueComponent(Container)
|
||||
document.body.insertAdjacentElement('beforeend', instance.$el)
|
||||
})
|
||||
}
|
||||
export const component: ComponentMetadata = {
|
||||
name: 'settingsPanel',
|
||||
displayName: '通用设置',
|
||||
configurable: false,
|
||||
description,
|
||||
entry,
|
||||
options: {
|
||||
const options = defineOptionsMetadata({
|
||||
themeColor: {
|
||||
defaultValue: '#00A0D8',
|
||||
displayName: '主题颜色',
|
||||
@ -82,7 +63,30 @@ export const component: ComponentMetadata = {
|
||||
defaultValue: false,
|
||||
displayName: '开发者模式',
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
const entry: ComponentEntry<typeof options> = async ({ metadata }) => {
|
||||
const { isIframe } = await import('@/core/utils')
|
||||
if (isIframe()) {
|
||||
return
|
||||
}
|
||||
addComponentListener(`${metadata.name}.dockSide`, (value: SettingsPanelDockSide) => {
|
||||
document.body.classList.toggle('settings-panel-dock-right', value === SettingsPanelDockSide.Right)
|
||||
}, true)
|
||||
requestIdleCallback(async () => {
|
||||
const Container = await import('./SettingsContainer.vue')
|
||||
const instance = mountVueComponent(Container)
|
||||
document.body.insertAdjacentElement('beforeend', instance.$el)
|
||||
})
|
||||
}
|
||||
|
||||
export const component = defineComponentMetadata({
|
||||
name: 'settingsPanel',
|
||||
displayName: '通用设置',
|
||||
configurable: false,
|
||||
description,
|
||||
entry,
|
||||
options,
|
||||
tags: [componentsTags.general],
|
||||
i18n: {
|
||||
'en-US': {
|
||||
@ -103,4 +107,4 @@ export const component: ComponentMetadata = {
|
||||
provideActions()
|
||||
},
|
||||
},
|
||||
}
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user