diff --git a/CHANGELOG.md b/CHANGELOG.md
index 520cb109b0..88f3981473 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,6 +13,7 @@
- Enhance: ウィジェットの表示設定をプレビューを見ながら行えるように
- Enhance: ウィジェットの設定項目のラベルの多言語対応
- Fix: ドライブクリーナーでファイルを削除しても画面に反映されない問題を修正 #16061
+- Fix: ドライブのソートが「登録日(昇順)」の場合に正しく動作しない問題を修正
### Server
- Enhance: OAuthのクライアント情報取得(Client Information Discovery)において、IndieWeb Living Standard 11 July 2024で定義されているJSONドキュメント形式に対応しました
diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue
index 314a776c54..71ffb252df 100644
--- a/packages/frontend/src/components/MkDrive.vue
+++ b/packages/frontend/src/components/MkDrive.vue
@@ -133,12 +133,12 @@ SPDX-License-Identifier: AGPL-3.0-only
{{ i18n.ts.loadMore }}
@@ -238,10 +238,9 @@ const filesPaginator = markRaw(new Paginator('drive/files', {
params: () => ({ // 自動でリロードしたくないためcomputedParamsは使わない
folderId: folder.value ? folder.value.id : null,
type: props.type,
- sort: sortModeSelect.value,
+ sort: ['-createdAt', '+createdAt'].includes(sortModeSelect.value) ? null : sortModeSelect.value,
}),
}));
-
const foldersPaginator = markRaw(new Paginator('drive/folders', {
limit: 30,
canFetchDetection: 'limit',
@@ -250,6 +249,16 @@ const foldersPaginator = markRaw(new Paginator('drive/folders', {
}),
}));
+const canFetchFiles = computed(() => !fetching.value && (filesPaginator.order.value === 'oldest' ? filesPaginator.canFetchNewer.value : filesPaginator.canFetchOlder.value));
+
+async function fetchMoreFiles() {
+ if (filesPaginator.order.value === 'oldest') {
+ filesPaginator.fetchNewer();
+ } else {
+ filesPaginator.fetchOlder();
+ }
+}
+
const filesTimeline = makeDateGroupedTimelineComputedRef(filesPaginator.items, 'month');
const shouldBeGroupedByDate = computed(() => ['+createdAt', '-createdAt'].includes(sortModeSelect.value));
@@ -260,10 +269,10 @@ watch(sortModeSelect, () => {
async function initialize() {
fetching.value = true;
- await Promise.all([
- foldersPaginator.init(),
- filesPaginator.init(),
- ]);
+ await foldersPaginator.reload();
+ filesPaginator.initialDirection = sortModeSelect.value === '-createdAt' ? 'newer' : 'older';
+ filesPaginator.order.value = sortModeSelect.value === '-createdAt' ? 'oldest' : 'newest';
+ await filesPaginator.reload();
fetching.value = false;
}