Skip to content

Commit

Permalink
Merge pull request #117 from n1lsqn/feat/InstanceTickerIconColor
Browse files Browse the repository at this point in the history
Feat: InstanceTickerIconの背景表示追加
  • Loading branch information
n1lsqn authored Mar 28, 2024
2 parents ac90d6c + 38bb999 commit 0f5c3f8
Show file tree
Hide file tree
Showing 7 changed files with 153 additions and 106 deletions.
6 changes: 6 additions & 0 deletions dev.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh
git submodule update --init
pnpm install --frozen-lockfile
pnpm run build
pnpm run migrate
pnpm dev
18 changes: 18 additions & 0 deletions locales/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10114,6 +10114,24 @@ export interface Locale extends ILocale {
*/
"summaryProxyDescription2": string;
};
"_uniqueFeatures": {
/**
* 独自機能
*/
"uniqueFeature": string;
/**
* リモート上のサーバーのローカルタイムラインを覗く機能
*/
"remoteLocalTimeline": string;
/**
* プロフィール上からアクティビティやファイルの非表示
*/
"hiddenActivityAndFiles": string;
/**
* プロフィール上からアクティビティやファイルを非表示にします。ノートをいち早く見たい方にお勧めです。
*/
"hiddenActivityAndFilesDescription": string;
};
}
declare const locales: {
[lang: string]: Locale;
Expand Down
6 changes: 6 additions & 0 deletions locales/ja-JP.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2698,3 +2698,9 @@ _urlPreviewSetting:
summaryProxy: "プレビューを生成するプロキシのエンドポイント"
summaryProxyDescription: "Misskey本体ではなく、サマリープロキシを使用してプレビューを生成します。"
summaryProxyDescription2: "プロキシには下記パラメータがクエリ文字列として連携されます。プロキシ側がこれらをサポートしない場合、設定値は無視されます。"

_uniqueFeatures:
uniqueFeature: "独自機能"
remoteLocalTimeline: "リモート上のサーバーのローカルタイムラインを覗く機能"
hiddenActivityAndFiles: "プロフィール上からアクティビティやファイルの非表示"
hiddenActivityAndFilesDescription: "プロフィール上からアクティビティやファイルを非表示にします。ノートをいち早く見たい方にお勧めです。"
1 change: 0 additions & 1 deletion packages/frontend/src/components/MkPostForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ SPDX-License-Identifier: AGPL-3.0-only
<XPostFormAttaches v-model="files" @detach="detachFile" @changeSensitive="updateFileSensitive" @changeName="updateFileName" @replaceFile="replaceFile"/>
<MkPollEditor v-if="poll" v-model="poll" @destroyed="poll = null"/>
<MkDeleteScheduleEditor v-if="scheduledNoteDelete" v-model="scheduledNoteDelete" @destroyed="scheduledNoteDelete = null"/>
<MkPollEditor v-if="poll" v-model="poll" @destroyed="poll = null"/>
<MkScheduleEditor v-if="schedule" v-model="schedule" @destroyed="schedule = null"/>
<MkNotePreview v-if="showPreview" :class="$style.preview" :text="text" :files="files" :poll="poll ?? undefined" :useCw="useCw" :cw="cw" :user="postAccount ?? $i"/>
<div v-if="showingOptions" style="padding: 8px 16px;">
Expand Down
206 changes: 108 additions & 98 deletions packages/frontend/src/pages/settings/general.vue
Original file line number Diff line number Diff line change
Expand Up @@ -261,105 +261,114 @@ SPDX-License-Identifier: AGPL-3.0-only
</FormSection>

<FormSection>
<MkFolder>
<template #label>他のサーバーのローカルタイムラインを覗けるようにする</template>

<div class="_gaps_m">
<FormSection v-if="maxLocalTimeline >= 1">
<div v-if="maxLocalTimeline >= 1" class="_gaps_s">
<MkInput v-model="remoteLocalTimelineName1" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain1" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken1" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable1">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 2">
<div v-if="maxLocalTimeline >= 2" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName2" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain2" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken2" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable2">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 3">
<div v-if="maxLocalTimeline >= 3" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName3" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain3" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken3" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable3">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 4">
<div v-if="maxLocalTimeline >= 4" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName4" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain4" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken4" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable4">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 5">
<div v-if="maxLocalTimeline >= 5" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName5" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain5" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken5" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable5">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>
<template #label>{{ i18n.ts._uniqueFeatures.uniqueFeature }}</template>

<MkButton @click="remoteLocaltimelineSave">
{{ i18n.ts.save }}
</MkButton>
</div>
</MkFolder>
<div class="_gaps_m">
<MkSwitch v-model="hiddenActivityAndFiles">
<template #caption>{{ i18n.ts._uniqueFeatures.hiddenActivityAndFilesDescription }}</template>
{{ i18n.ts._uniqueFeatures.hiddenActivityAndFiles }}
</MkSwitch>

<MkFolder>
<template #label>{{ i18n.ts._uniqueFeatuers.remoteLocalTimeline }}</template>

<div class="_gaps_m">
<FormSection v-if="maxLocalTimeline >= 1">
<div v-if="maxLocalTimeline >= 1" class="_gaps_s">
<MkInput v-model="remoteLocalTimelineName1" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain1" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken1" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable1">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 2">
<div v-if="maxLocalTimeline >= 2" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName2" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain2" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken2" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable2">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 3">
<div v-if="maxLocalTimeline >= 3" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName3" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain3" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken3" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable3">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 4">
<div v-if="maxLocalTimeline >= 4" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName4" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain4" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken4" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable4">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<FormSection v-if="maxLocalTimeline >= 5">
<div v-if="maxLocalTimeline >= 5" class="_gaps_m">
<MkInput v-model="remoteLocalTimelineName5" placeholder="hostName">
<template #label>{{ i18n.ts.name }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineDomain5" placeholder="hostDomain.jp">
<template #label>{{ i18n.ts.serverUrl }}</template>
</MkInput>
<MkInput v-model="remoteLocalTimelineToken5" placeholder="accessToken">
<template #prefix><i class="ti ti-api"></i></template>
<template #label>{{ i18n.ts.accessToken }}</template>
</MkInput>
<MkSwitch v-model="remoteLocalTimelineEnable5">
{{ i18n.ts.enable }}
</MkSwitch>
</div>
</FormSection>

<MkButton @click="remoteLocaltimelineSave">
{{ i18n.ts.save }}
</MkButton>
</div>
</MkFolder>
</div>
</FormSection>

<FormSection>
Expand Down Expand Up @@ -447,6 +456,7 @@ const disableDrawer = computed(defaultStore.makeGetterSetter('disableDrawer'));
const disableShowingAnimatedImages = computed(defaultStore.makeGetterSetter('disableShowingAnimatedImages'));
const autoDataSaver = computed(defaultStore.makeGetterSetter('autoDataSaver'));
const enableDataSaverMode = computed(defaultStore.makeGetterSetter('enableDataSaverMode'));
const hiddenActivityAndFiles = computed(defaultStore.makeGetterSetter('hiddenActivityAndFiles'));
const forceShowAds = computed(defaultStore.makeGetterSetter('forceShowAds'));
const loadRawImages = computed(defaultStore.makeGetterSetter('loadRawImages'));
const highlightSensitiveMedia = computed(defaultStore.makeGetterSetter('highlightSensitiveMedia'));
Expand Down
18 changes: 11 additions & 7 deletions packages/frontend/src/pages/user/home.vue
Original file line number Diff line number Diff line change
Expand Up @@ -127,13 +127,15 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkNote v-for="note in user.pinnedNotes" :key="note.id" class="note _panel" :note="note" :pinned="true"/>
</div>
<MkInfo v-else-if="$i && $i.id === user.id">{{ i18n.ts.userPagePinTip }}</MkInfo>
<template v-if="narrow">
<MkLazy>
<XFiles :key="user.id" :user="user"/>
</MkLazy>
<MkLazy>
<XActivity :key="user.id" :user="user"/>
</MkLazy>
<template v-if="!hiddenActivityAndFiles">
<template v-if="narrow">
<MkLazy>
<XFiles :key="user.id" :user="user"/>
</MkLazy>
<MkLazy>
<XActivity :key="user.id" :user="user"/>
</MkLazy>
</template>
</template>
<div v-if="!disableNotes">
<MkLazy>
Expand Down Expand Up @@ -173,6 +175,7 @@ import { confetti } from '@/scripts/confetti.js';
import { misskeyApi } from '@/scripts/misskey-api.js';
import { isFollowingVisibleForMe, isFollowersVisibleForMe } from '@/scripts/isFfVisibleForMe.js';
import { useRouter } from '@/router/supplier.js';
import { defaultStore } from '@/store';
function calcAge(birthdate: string): number {
const date = new Date(birthdate);
Expand Down Expand Up @@ -213,6 +216,7 @@ const memoDraft = ref(props.user.memo);
const isEditingMemo = ref(false);
const moderationNote = ref(props.user.moderationNote);
const editModerationNote = ref(false);
const hiddenActivityAndFiles = defaultStore.state.hiddenActivityAndFiles;
watch(moderationNote, async () => {
await misskeyApi('admin/update-user-note', { userId: props.user.id, text: moderationNote.value });
Expand Down
4 changes: 4 additions & 0 deletions packages/frontend/src/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,10 @@ export const defaultStore = markRaw(new Storage('base', {
where: 'device',
default: false,
},
hiddenActivityAndFiles: {
where: 'device',
default: false,
},
disableShowingAnimatedImages: {
where: 'device',
default: window.matchMedia('(prefers-reduced-motion)').matches,
Expand Down

0 comments on commit 0f5c3f8

Please sign in to comment.