This commit is contained in:
sim1222 2023-02-23 15:15:37 +09:00
parent ec956731e7
commit d12ba20605
No known key found for this signature in database
GPG Key ID: 04EF48D01BEB0298
3 changed files with 53 additions and 49 deletions

View File

@ -8,7 +8,7 @@ export const hostname = address.hostname;
export const url = address.origin; export const url = address.origin;
export const apiUrl = url + '/api'; export const apiUrl = url + '/api';
export const wsUrl = url.replace('http://', 'ws://').replace('https://', 'wss://') + '/streaming'; export const wsUrl = url.replace('http://', 'ws://').replace('https://', 'wss://') + '/streaming';
export const lang = miLocalStorage.getItem('lang'); export const lang = miLocalStorage.getItem('lang') ?? 'ja-JP';
export const langs = _LANGS_; export const langs = _LANGS_;
export let locale = JSON.parse(miLocalStorage.getItem('locale')); export let locale = JSON.parse(miLocalStorage.getItem('locale'));
export const version = _VERSION_; export const version = _VERSION_;

View File

@ -26,7 +26,7 @@ import widgets from '@/widgets';
import directives from '@/directives'; import directives from '@/directives';
import components from '@/components'; import components from '@/components';
import { version, ui, lang, updateLocale } from '@/config'; import { version, ui, lang, updateLocale } from '@/config';
import { applyTheme } from '@/scripts/theme'; import { applyTheme, getBuiltinThemes } from '@/scripts/theme';
import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; import { isDeviceDarkmode } from '@/scripts/is-device-darkmode';
import { i18n, updateI18n } from '@/i18n'; import { i18n, updateI18n } from '@/i18n';
import { confirm, alert, post, popup, toast } from '@/os'; import { confirm, alert, post, popup, toast } from '@/os';
@ -47,6 +47,7 @@ import { deckStore } from './ui/deck/deck-store';
import { miLocalStorage } from './local-storage'; import { miLocalStorage } from './local-storage';
import { claimAchievement, claimedAchievements } from './scripts/achievements'; import { claimAchievement, claimedAchievements } from './scripts/achievements';
import { fetchCustomEmojis } from './custom-emojis'; import { fetchCustomEmojis } from './custom-emojis';
import { getThemes } from './theme-store';
console.info(`Misskey v${version}`); console.info(`Misskey v${version}`);
@ -169,6 +170,7 @@ if ($i && $i.token) {
if (_DEV_) { if (_DEV_) {
console.log('not signed in'); console.log('not signed in');
} }
applyTheme(await getBuiltinThemes().then(x => x.find(x => x.id === 'e2c940b5-6e9a-4c03-b738-261c720c426d')));
} }
} }
//#endregion //#endregion
@ -303,13 +305,13 @@ window.matchMedia('(prefers-color-scheme: dark)').addListener(mql => {
}); });
//#endregion //#endregion
fetchInstanceMetaPromise.then(() => { // fetchInstanceMetaPromise.then(() => {
if (defaultStore.state.themeInitial) { // if (defaultStore.state.themeInitial) {
if (instance.defaultLightTheme != null) ColdDeviceStorage.set('lightTheme', JSON5.parse(instance.defaultLightTheme)); // if (instance.defaultLightTheme != null) ColdDeviceStorage.set('lightTheme', JSON5.parse(instance.defaultLightTheme));
if (instance.defaultDarkTheme != null) ColdDeviceStorage.set('darkTheme', JSON5.parse(instance.defaultDarkTheme)); // if (instance.defaultDarkTheme != null) ColdDeviceStorage.set('darkTheme', JSON5.parse(instance.defaultDarkTheme));
defaultStore.set('themeInitial', false); // defaultStore.set('themeInitial', false);
} // }
}); // });
watch(defaultStore.reactiveState.useBlurEffectForModal, v => { watch(defaultStore.reactiveState.useBlurEffectForModal, v => {
document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none');

View File

@ -1,76 +1,78 @@
<template> <template>
<div v-if="meta" class="rsqzvsbo"> <div class="rsqzvsbo">
<div class="top"> <div class="top">
<MkFeaturedPhotos class="bg"/> <!-- <MkFeaturedPhotos class="bg"/> -->
<XTimeline class="tl"/> <!-- <XTimeline class="tl"/> -->
<div class="shape1"></div> <div class="shape1"></div>
<div class="shape2"></div> <div class="shape2"></div>
<img src="/client-assets/misskey.svg" class="misskey"/> <img src="/client-assets/misskey.svg" class="misskey"/>
<div class="emojis"> <!-- <div class="emojis">
<MkEmoji :normal="true" :no-style="true" emoji="👍"/> <MkEmoji :normal="true" :no-style="true" emoji="👍"/>
<MkEmoji :normal="true" :no-style="true" emoji="❤"/> <MkEmoji :normal="true" :no-style="true" emoji="❤"/>
<MkEmoji :normal="true" :no-style="true" emoji="😆"/> <MkEmoji :normal="true" :no-style="true" emoji="😆"/>
<MkEmoji :normal="true" :no-style="true" emoji="🎉"/> <MkEmoji :normal="true" :no-style="true" emoji="🎉"/>
<MkEmoji :normal="true" :no-style="true" emoji="🍮"/> <MkEmoji :normal="true" :no-style="true" emoji="🍮"/>
</div> </div> -->
<div class="main"> <div class="main">
<img :src="$instance.iconUrl || $instance.faviconUrl || '/favicon.ico'" alt="" class="icon"/> <!-- <img :src="$instance.iconUrl || $instance.faviconUrl || '/favicon.ico'" alt="" class="icon"/> -->
<button class="_button _acrylic menu" @click="showMenu"><i class="ti ti-dots"></i></button> <button class="_button _acrylic menu" @click="showMenu"><i class="ti ti-dots"></i></button>
<div class="fg"> <div class="fg">
<h1> <h1>
<!-- 背景色によってはロゴが見えなくなるのでとりあえず無効に --> <!-- 背景色によってはロゴが見えなくなるのでとりあえず無効に -->
<!-- <img class="logo" v-if="meta.logoImageUrl" :src="meta.logoImageUrl"><span v-else class="text">{{ instanceName }}</span> --> <!-- <img class="logo" v-if="meta.logoImageUrl" :src="meta.logoImageUrl"><span v-else class="text">{{ instanceName }}</span> -->
<span class="text">{{ instanceName }}</span> <span class="text">Misskey front for Moderation</span>
</h1> </h1>
<div class="about"> <div class="about">
<!-- eslint-disable-next-line vue/no-v-html --> <!-- eslint-disable-next-line vue/no-v-html -->
<div class="desc" v-html="meta.description || i18n.ts.headlineMisskey"></div> <div class="desc">
aaa
</div>
</div> </div>
<div class="action"> <div class="action">
<MkButton inline rounded gradate data-cy-signup style="margin-right: 12px;" @click="signup()">{{ i18n.ts.signup }}</MkButton> <!-- <MkButton inline rounded gradate data-cy-signup style="margin-right: 12px;" @click="signup()">{{ i18n.ts.signup }}</MkButton> -->
<MkButton inline rounded data-cy-signin @click="signin()">{{ i18n.ts.login }}</MkButton> <MkButton inline rounded gradate data-cy-signin @click="signin()">{{ i18n.ts.login }}</MkButton>
</div> </div>
</div> </div>
</div> </div>
<div v-if="instances && instances.length > 0" class="federation"> <!-- <div v-if="instances && instances.length > 0" class="federation"> -->
<MarqueeText :duration="40"> <!-- <MarqueeText :duration="40"> -->
<MkA v-for="instance in instances" :key="instance.id" :class="$style.federationInstance" :to="`/instance-info/${instance.host}`" behavior="window"> <!-- <MkA v-for="instance in instances" :key="instance.id" :class="$style.federationInstance" :to="`/instance-info/${instance.host}`" behavior="window"> -->
<!--<MkInstanceCardMini :instance="instance"/>--> <!-- <MkInstanceCardMini :instance="instance"/> -->
<img v-if="instance.iconUrl" class="icon" :src="instance.iconUrl" alt=""/> <!-- <img v-if="instance.iconUrl" class="icon" :src="instance.iconUrl" alt=""/> -->
<span class="name _monospace">{{ instance.host }}</span> <!-- <span class="name _monospace">{{ instance.host }}</span> -->
</MkA> <!-- </MkA> -->
</MarqueeText> <!-- </MarqueeText> -->
</div> <!-- </div> -->
</div> </div>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { } from 'vue'; import { } from 'vue';
import XTimeline from './welcome.timeline.vue'; // import XTimeline from './welcome.timeline.vue';
import MarqueeText from '@/components/MkMarquee.vue'; // import MarqueeText from '@/components/MkMarquee.vue';
// import { Instance } from 'misskey-js/built/entities';
import XSigninDialog from '@/components/MkSigninDialog.vue'; import XSigninDialog from '@/components/MkSigninDialog.vue';
import XSignupDialog from '@/components/MkSignupDialog.vue'; import XSignupDialog from '@/components/MkSignupDialog.vue';
import MkButton from '@/components/MkButton.vue'; import MkButton from '@/components/MkButton.vue';
import MkFeaturedPhotos from '@/components/MkFeaturedPhotos.vue'; // import MkFeaturedPhotos from '@/components/MkFeaturedPhotos.vue';
import { instanceName } from '@/config'; // import { instanceName } from '@/config';
import * as os from '@/os'; import * as os from '@/os';
import { i18n } from '@/i18n'; import { i18n } from '@/i18n';
import { Instance } from 'misskey-js/built/entities';
let meta = $ref<Instance>(); // let meta = $ref<Instance>();
let instances = $ref<any[]>(); // let instances = $ref<any[]>();
os.api('meta', { detail: true }).then(_meta => { // os.api('meta', { detail: true }).then(_meta => {
meta = _meta; // meta = _meta;
}); // });
os.apiGet('federation/instances', { // os.apiGet('federation/instances', {
sort: '+pubSub', // sort: '+pubSub',
limit: 20, // limit: 20,
}).then(_instances => { // }).then(_instances => {
instances = _instances; // instances = _instances;
}); // });
function signin() { function signin() {
os.popup(XSigninDialog, { os.popup(XSigninDialog, {
@ -78,11 +80,11 @@ function signin() {
}, {}, 'closed'); }, {}, 'closed');
} }
function signup() { // function signup() {
os.popup(XSignupDialog, { // os.popup(XSignupDialog, {
autoSet: true, // autoSet: true,
}, {}, 'closed'); // }, {}, 'closed');
} // }
function showMenu(ev) { function showMenu(ev) {
os.popupMenu([{ os.popupMenu([{