feat: instance default theme
This commit is contained in:
		| @@ -31,6 +31,16 @@ | ||||
| 				<template #caption>#RRGGBB</template> | ||||
| 			</FormInput> | ||||
|  | ||||
| 			<FormTextarea v-model="defaultLightTheme" class="_formBlock"> | ||||
| 				<template #label>{{ $ts.instanceDefaultLightTheme }}</template> | ||||
| 				<template #caption>{{ $ts.instanceDefaultThemeDescription }}</template> | ||||
| 			</FormTextarea> | ||||
|  | ||||
| 			<FormTextarea v-model="defaultDarkTheme" class="_formBlock"> | ||||
| 				<template #label>{{ $ts.instanceDefaultDarkTheme }}</template> | ||||
| 				<template #caption>{{ $ts.instanceDefaultThemeDescription }}</template> | ||||
| 			</FormTextarea> | ||||
|  | ||||
| 			<FormInput v-model="tosUrl" class="_formBlock"> | ||||
| 				<template #prefix><i class="fas fa-link"></i></template> | ||||
| 				<template #label>{{ $ts.tosUrl }}</template> | ||||
| @@ -176,6 +186,8 @@ export default defineComponent({ | ||||
| 			bannerUrl: null, | ||||
| 			backgroundImageUrl: null, | ||||
| 			themeColor: null, | ||||
| 			defaultLightTheme: null, | ||||
| 			defaultDarkTheme: null, | ||||
| 			enableLocalTimeline: false, | ||||
| 			enableGlobalTimeline: false, | ||||
| 			pinnedUsers: '', | ||||
| @@ -202,6 +214,8 @@ export default defineComponent({ | ||||
| 			this.bannerUrl = meta.bannerUrl; | ||||
| 			this.backgroundImageUrl = meta.backgroundImageUrl; | ||||
| 			this.themeColor = meta.themeColor; | ||||
| 			this.defaultLightTheme = meta.defaultLightTheme; | ||||
| 			this.defaultDarkTheme = meta.defaultDarkTheme; | ||||
| 			this.maintainerName = meta.maintainerName; | ||||
| 			this.maintainerEmail = meta.maintainerEmail; | ||||
| 			this.enableLocalTimeline = !meta.disableLocalTimeline; | ||||
| @@ -228,6 +242,8 @@ export default defineComponent({ | ||||
| 				bannerUrl: this.bannerUrl, | ||||
| 				backgroundImageUrl: this.backgroundImageUrl, | ||||
| 				themeColor: this.themeColor === '' ? null : this.themeColor, | ||||
| 				defaultLightTheme: this.defaultLightTheme === '' ? null : this.defaultLightTheme, | ||||
| 				defaultDarkTheme: this.defaultDarkTheme === '' ? null : this.defaultDarkTheme, | ||||
| 				maintainerName: this.maintainerName, | ||||
| 				maintainerEmail: this.maintainerEmail, | ||||
| 				disableLocalTimeline: !this.enableLocalTimeline, | ||||
|   | ||||
| @@ -87,6 +87,7 @@ | ||||
|  | ||||
| <script lang="ts"> | ||||
| import { computed, defineComponent, onActivated, onMounted, ref, watch } from 'vue'; | ||||
| import * as JSON5 from 'json5'; | ||||
| import FormSwitch from '@/components/form/switch.vue'; | ||||
| import FormSelect from '@/components/form/select.vue'; | ||||
| import FormGroup from '@/components/form/group.vue'; | ||||
| @@ -99,6 +100,8 @@ import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; | ||||
| import { ColdDeviceStorage } from '@/store'; | ||||
| import { i18n } from '@/i18n'; | ||||
| import { defaultStore } from '@/store'; | ||||
| import { instance } from '@/instance'; | ||||
| import { concat } from '@/scripts/array'; | ||||
| import { fetchThemes, getThemes } from '@/theme-store'; | ||||
| import * as symbols from '@/symbols'; | ||||
|  | ||||
| @@ -122,7 +125,10 @@ export default defineComponent({ | ||||
| 		}; | ||||
|  | ||||
| 		const installedThemes = ref(getThemes()); | ||||
| 		const themes = computed(() => builtinThemes.concat(installedThemes.value)); | ||||
| 		const instanceThemes = []; | ||||
| 		if (instance.defaultLightTheme != null) instanceThemes.push(JSON5.parse(instance.defaultLightTheme)); | ||||
| 		if (instance.defaultDarkTheme != null) instanceThemes.push(JSON5.parse(instance.defaultDarkTheme)); | ||||
| 		const themes = computed(() => instanceThemes.concat(builtinThemes.concat(installedThemes.value))); | ||||
| 		const darkThemes = computed(() => themes.value.filter(t => t.base === 'dark' || t.kind === 'dark')); | ||||
| 		const lightThemes = computed(() => themes.value.filter(t => t.base === 'light' || t.kind === 'light')); | ||||
| 		const darkTheme = ColdDeviceStorage.ref('darkTheme'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo