summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authortetsuya-ki <64536338+tetsuya-ki@users.noreply.github.com>2024-10-20 16:17:16 +0900
committerGitHub <noreply@github.com>2024-10-20 16:17:16 +0900
commit1d106b3ae81b8fa28bf644622e617262a2889040 (patch)
tree2673e58b11de138687445af2634dcc8a68b6f12b /packages
parentrefactor(frontend): ページ内でdocument.titleを直接操作させない,... (diff)
downloadmisskey-1d106b3ae81b8fa28bf644622e617262a2889040.tar.gz
misskey-1d106b3ae81b8fa28bf644622e617262a2889040.tar.bz2
misskey-1d106b3ae81b8fa28bf644622e617262a2889040.zip
Enhance: ドライブでソートができるように (#14801)
* Enhance: ドライブでソートができるように * Update CHANGELOG.md
Diffstat (limited to 'packages')
-rw-r--r--packages/frontend/src/components/MkDrive.vue25
1 files changed, 24 insertions, 1 deletions
diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue
index 23883a44e9..05f3354813 100644
--- a/packages/frontend/src/components/MkDrive.vue
+++ b/packages/frontend/src/components/MkDrive.vue
@@ -30,6 +30,16 @@ SPDX-License-Identifier: AGPL-3.0-only
<span v-if="folder != null" :class="[$style.navPathItem, $style.navSeparator]"><i class="ti ti-chevron-right"></i></span>
<span v-if="folder != null" :class="[$style.navPathItem, $style.navCurrent]">{{ folder.name }}</span>
</div>
+ <div :class="$style.navSort">
+ <MkSelect v-model="sortModeSelect">
+ <option value="+createdAt">{{ i18n.ts.registeredDate }} ({{ i18n.ts.descendingOrder }})</option>
+ <option value="-createdAt">{{ i18n.ts.registeredDate }} ({{ i18n.ts.ascendingOrder }})</option>
+ <option value="+size">{{ i18n.ts.size }} ({{ i18n.ts.descendingOrder }})</option>
+ <option value="-size">{{ i18n.ts.size }} ({{ i18n.ts.ascendingOrder }})</option>
+ <option value="+name">{{ i18n.ts.name }} ({{ i18n.ts.descendingOrder }})</option>
+ <option value="-name">{{ i18n.ts.name }} ({{ i18n.ts.ascendingOrder }})</option>
+ </MkSelect>
+ </div>
<button class="_button" :class="$style.navMenu" @click="showMenu"><i class="ti ti-dots"></i></button>
</nav>
<div
@@ -100,6 +110,7 @@ import { nextTick, onActivated, onBeforeUnmount, onMounted, ref, shallowRef, wat
import * as Misskey from 'misskey-js';
import MkButton from './MkButton.vue';
import type { MenuItem } from '@/types/menu.js';
+import MkSelect from '@/components/MkSelect.vue';
import XNavFolder from '@/components/MkDrive.navFolder.vue';
import XFolder from '@/components/MkDrive.folder.vue';
import XFile from '@/components/MkDrive.file.vue';
@@ -157,7 +168,12 @@ const ilFilesObserver = new IntersectionObserver(
(entries) => entries.some((entry) => entry.isIntersecting) && !fetching.value && moreFiles.value && fetchMoreFiles(),
);
+const sortModeSelect = ref('+createdAt');
+
watch(folder, () => emit('cd', folder.value));
+watch(sortModeSelect, () => {
+ fetch();
+});
function onStreamDriveFileCreated(file: Misskey.entities.DriveFile) {
addFile(file, true);
@@ -558,6 +574,7 @@ async function fetch() {
folderId: folder.value ? folder.value.id : null,
type: props.type,
limit: filesMax + 1,
+ sort: sortModeSelect.value,
}).then(fetchedFiles => {
if (fetchedFiles.length === filesMax + 1) {
moreFiles.value = true;
@@ -607,6 +624,7 @@ function fetchMoreFiles() {
type: props.type,
untilId: files.value.at(-1)?.id,
limit: max + 1,
+ sort: sortModeSelect.value,
}).then(files => {
if (files.length === max + 1) {
moreFiles.value = true;
@@ -760,11 +778,16 @@ onBeforeUnmount(() => {
}
}
-.navMenu {
+.navSort {
+ display: inline-block;
margin-left: auto;
padding: 0 12px;
}
+.navMenu {
+ padding: 0 12px;
+}
+
.main {
flex: 1;
overflow: auto;