summaryrefslogtreecommitdiff
path: root/packages/frontend/src/pages
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-04-01 13:18:49 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-04-01 13:18:49 +0900
commit500a5615f08f6926d12ef83466b4b642549cb756 (patch)
treea81c501c2f5aafa1ec2565e63b7088901859da2e /packages/frontend/src/pages
parentfix missing import (diff)
downloadmisskey-500a5615f08f6926d12ef83466b4b642549cb756.tar.gz
misskey-500a5615f08f6926d12ef83466b4b642549cb756.tar.bz2
misskey-500a5615f08f6926d12ef83466b4b642549cb756.zip
enhance(frontend): 壁紙をデッキ設定の一部に
Diffstat (limited to 'packages/frontend/src/pages')
-rw-r--r--packages/frontend/src/pages/settings/deck.vue25
-rw-r--r--packages/frontend/src/pages/settings/theme.vue24
2 files changed, 25 insertions, 24 deletions
diff --git a/packages/frontend/src/pages/settings/deck.vue b/packages/frontend/src/pages/settings/deck.vue
index 902e058e0d..f4bce8a5dd 100644
--- a/packages/frontend/src/pages/settings/deck.vue
+++ b/packages/frontend/src/pages/settings/deck.vue
@@ -12,6 +12,8 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkSwitch>
</SearchMarker>
+ <hr>
+
<SearchMarker :keywords="['ui', 'root', 'page']">
<MkPreferenceContainer k="deck.useSimpleUiForNonRootPages">
<MkSwitch v-model="useSimpleUiForNonRootPages">
@@ -74,19 +76,29 @@ SPDX-License-Identifier: AGPL-3.0-only
</MkRange>
</MkPreferenceContainer>
</SearchMarker>
+
+ <SearchMarker :keywords="['wallpaper']">
+ <MkPreferenceContainer k="deck.wallpaper">
+ <MkButton v-if="wallpaper == null" @click="setWallpaper"><SearchLabel>{{ i18n.ts.setWallpaper }}</SearchLabel></MkButton>
+ <MkButton v-else @click="wallpaper = null">{{ i18n.ts.removeWallpaper }}</MkButton>
+ </MkPreferenceContainer>
+ </SearchMarker>
</div>
</SearchMarker>
</template>
<script lang="ts" setup>
-import { computed, ref } from 'vue';
+import { computed, ref, watch } from 'vue';
import MkSwitch from '@/components/MkSwitch.vue';
import MkRadios from '@/components/MkRadios.vue';
import MkRange from '@/components/MkRange.vue';
+import MkButton from '@/components/MkButton.vue';
import { i18n } from '@/i18n.js';
import { definePage } from '@/page.js';
import { prefer } from '@/preferences.js';
import MkPreferenceContainer from '@/components/MkPreferenceContainer.vue';
+import { reloadAsk } from '@/utility/reload-ask.js';
+import { selectFile } from '@/utility/select-file.js';
const navWindow = prefer.model('deck.navWindow');
const useSimpleUiForNonRootPages = prefer.model('deck.useSimpleUiForNonRootPages');
@@ -95,6 +107,17 @@ const columnAlign = prefer.model('deck.columnAlign');
const columnGap = prefer.model('deck.columnGap');
const menuPosition = prefer.model('deck.menuPosition');
const navbarPosition = prefer.model('deck.navbarPosition');
+const wallpaper = prefer.model('deck.wallpaper');
+
+watch(wallpaper, async () => {
+ await reloadAsk({ reason: i18n.ts.reloadToApplySetting, unison: true });
+});
+
+function setWallpaper(ev: MouseEvent) {
+ selectFile(ev.currentTarget ?? ev.target, null).then(file => {
+ wallpaper.value = file.url;
+ });
+}
const profilesSyncEnabled = ref(prefer.isSyncEnabled('deck.profiles'));
diff --git a/packages/frontend/src/pages/settings/theme.vue b/packages/frontend/src/pages/settings/theme.vue
index 9a8aeb00d6..d149849afc 100644
--- a/packages/frontend/src/pages/settings/theme.vue
+++ b/packages/frontend/src/pages/settings/theme.vue
@@ -189,17 +189,12 @@ SPDX-License-Identifier: AGPL-3.0-only
<FormLink to="/theme-editor"><template #icon><i class="ti ti-paint"></i></template>{{ i18n.ts._theme.make }}</FormLink>
</div>
</FormSection>
-
- <SearchMarker :keywords="['wallpaper']">
- <MkButton v-if="wallpaper == null" @click="setWallpaper"><SearchLabel>{{ i18n.ts.setWallpaper }}</SearchLabel></MkButton>
- <MkButton v-else @click="wallpaper = null">{{ i18n.ts.removeWallpaper }}</MkButton>
- </SearchMarker>
</div>
</SearchMarker>
</template>
<script lang="ts" setup>
-import { computed, onActivated, ref, watch } from 'vue';
+import { computed, ref, watch } from 'vue';
import JSON5 from 'json5';
import defaultLightTheme from '@@/themes/l-light.json5';
import defaultDarkTheme from '@@/themes/d-green-lime.json5';
@@ -207,7 +202,6 @@ import type { Theme } from '@/theme.js';
import MkSwitch from '@/components/MkSwitch.vue';
import FormSection from '@/components/form/section.vue';
import FormLink from '@/components/form/link.vue';
-import MkButton from '@/components/MkButton.vue';
import MkFolder from '@/components/MkFolder.vue';
import MkThemePreview from '@/components/MkThemePreview.vue';
import { getBuiltinThemesRef, getThemesRef } from '@/theme.js';
@@ -262,7 +256,6 @@ const lightThemeId = computed({
const darkMode = computed(store.makeGetterSetter('darkMode'));
const syncDeviceDarkMode = prefer.model('syncDeviceDarkMode');
-const wallpaper = ref(miLocalStorage.getItem('wallpaper'));
const themesCount = installedThemes.value.length;
watch(syncDeviceDarkMode, () => {
@@ -271,21 +264,6 @@ watch(syncDeviceDarkMode, () => {
}
});
-watch(wallpaper, async () => {
- if (wallpaper.value == null) {
- miLocalStorage.removeItem('wallpaper');
- } else {
- miLocalStorage.setItem('wallpaper', wallpaper.value);
- }
- await reloadAsk({ reason: i18n.ts.reloadToApplySetting, unison: true });
-});
-
-function setWallpaper(event) {
- selectFile(event.currentTarget ?? event.target, null).then(file => {
- wallpaper.value = file.url;
- });
-}
-
const headerActions = computed(() => []);
const headerTabs = computed(() => []);