enhance(frontend): add drive tip
This commit is contained in:
parent
7c23e53034
commit
c99f4dc4ce
|
@ -5402,6 +5402,13 @@ export interface Locale extends ILocale {
|
||||||
* 連合ジョブ
|
* 連合ジョブ
|
||||||
*/
|
*/
|
||||||
"federationJobs": string;
|
"federationJobs": string;
|
||||||
|
/**
|
||||||
|
* ドライブでは、過去にアップロードしたファイルの一覧が表示されます。<br>
|
||||||
|
* ノートに添付する際に再利用したり、あとで投稿するファイルを予めアップロードしておくこともできます。<br>
|
||||||
|
* <b>ファイルを削除すると、今までそのファイルを使用した全ての場所(ノート、ページ、アバター、バナー等)からも見えなくなるので注意してください。</b><br>
|
||||||
|
* フォルダを作って整理することもできます。
|
||||||
|
*/
|
||||||
|
"driveAboutTip": string;
|
||||||
"_chat": {
|
"_chat": {
|
||||||
/**
|
/**
|
||||||
* まだメッセージはありません
|
* まだメッセージはありません
|
||||||
|
|
|
@ -1346,6 +1346,7 @@ settingsMigrating: "設定を移行しています。しばらくお待ちくだ
|
||||||
readonly: "読み取り専用"
|
readonly: "読み取り専用"
|
||||||
goToDeck: "デッキへ戻る"
|
goToDeck: "デッキへ戻る"
|
||||||
federationJobs: "連合ジョブ"
|
federationJobs: "連合ジョブ"
|
||||||
|
driveAboutTip: "ドライブでは、過去にアップロードしたファイルの一覧が表示されます。<br>\nノートに添付する際に再利用したり、あとで投稿するファイルを予めアップロードしておくこともできます。<br>\n<b>ファイルを削除すると、今までそのファイルを使用した全ての場所(ノート、ページ、アバター、バナー等)からも見えなくなるので注意してください。</b><br>\nフォルダを作って整理することもできます。"
|
||||||
|
|
||||||
_chat:
|
_chat:
|
||||||
noMessagesYet: "まだメッセージはありません"
|
noMessagesYet: "まだメッセージはありません"
|
||||||
|
|
|
@ -45,6 +45,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
@contextmenu.stop="onContextmenu"
|
@contextmenu.stop="onContextmenu"
|
||||||
>
|
>
|
||||||
<div ref="contents">
|
<div ref="contents">
|
||||||
|
<MkInfo v-if="!store.r.readDriveTip.value" closable @close="closeTip()"><div v-html="i18n.ts.driveAboutTip"></div></MkInfo>
|
||||||
<div v-show="folders.length > 0" ref="foldersContainer" :class="$style.folders">
|
<div v-show="folders.length > 0" ref="foldersContainer" :class="$style.folders">
|
||||||
<XFolder
|
<XFolder
|
||||||
v-for="(f, i) in folders"
|
v-for="(f, i) in folders"
|
||||||
|
@ -101,6 +102,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
||||||
import { nextTick, onActivated, onBeforeUnmount, onMounted, ref, useTemplateRef, watch } from 'vue';
|
import { nextTick, onActivated, onBeforeUnmount, onMounted, ref, useTemplateRef, watch } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import MkButton from './MkButton.vue';
|
import MkButton from './MkButton.vue';
|
||||||
|
import MkInfo from './MkInfo.vue';
|
||||||
import type { MenuItem } from '@/types/menu.js';
|
import type { MenuItem } from '@/types/menu.js';
|
||||||
import XNavFolder from '@/components/MkDrive.navFolder.vue';
|
import XNavFolder from '@/components/MkDrive.navFolder.vue';
|
||||||
import XFolder from '@/components/MkDrive.folder.vue';
|
import XFolder from '@/components/MkDrive.folder.vue';
|
||||||
|
@ -113,6 +115,7 @@ import { uploadFile, uploads } from '@/utility/upload.js';
|
||||||
import { claimAchievement } from '@/utility/achievements.js';
|
import { claimAchievement } from '@/utility/achievements.js';
|
||||||
import { prefer } from '@/preferences.js';
|
import { prefer } from '@/preferences.js';
|
||||||
import { chooseFileFromPc } from '@/utility/select-file.js';
|
import { chooseFileFromPc } from '@/utility/select-file.js';
|
||||||
|
import { store } from '@/store.js';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
initialFolder?: Misskey.entities.DriveFolder;
|
initialFolder?: Misskey.entities.DriveFolder;
|
||||||
|
@ -709,6 +712,10 @@ function onContextmenu(ev: MouseEvent) {
|
||||||
os.contextMenu(getMenu(), ev);
|
os.contextMenu(getMenu(), ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function closeTip() {
|
||||||
|
store.set('readDriveTip', true);
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (prefer.s.enableInfiniteScroll && loadMoreFiles.value) {
|
if (prefer.s.enableInfiniteScroll && loadMoreFiles.value) {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
|
|
|
@ -39,7 +39,6 @@ function close() {
|
||||||
background: var(--MI_THEME-infoBg);
|
background: var(--MI_THEME-infoBg);
|
||||||
color: var(--MI_THEME-infoFg);
|
color: var(--MI_THEME-infoFg);
|
||||||
border-radius: var(--MI-radius);
|
border-radius: var(--MI-radius);
|
||||||
white-space: pre-wrap;
|
|
||||||
|
|
||||||
&.warn {
|
&.warn {
|
||||||
background: var(--MI_THEME-infoWarnBg);
|
background: var(--MI_THEME-infoWarnBg);
|
||||||
|
|
|
@ -35,6 +35,10 @@ export const store = markRaw(new Pizzax('base', {
|
||||||
where: 'account',
|
where: 'account',
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
readDriveTip: {
|
||||||
|
where: 'account',
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
memo: {
|
memo: {
|
||||||
where: 'account',
|
where: 'account',
|
||||||
default: null,
|
default: null,
|
||||||
|
|
Loading…
Reference in New Issue