fix(meilisearch): unify task time formatting with locale display

This commit is contained in:
二丫讲梵 authored and GitHub committed 2026-09-20 23:08:35 +08:00
1 parent 98b7a9ed75
commit a5bb285caa
2 files changed
+5 -31

No files matched your search

@@ -1,17 +1,6 @@
<script setup lang="ts">
import { computed, onMounted, ref } from "vue";
import { useI18n } from "vue-i18n";
import dayjs from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime";
import "dayjs/locale/zh-cn";
import "dayjs/locale/zh-tw";
import "dayjs/locale/az";
import "dayjs/locale/es";
import "dayjs/locale/it";
import "dayjs/locale/ja";
import "dayjs/locale/ko";
import "dayjs/locale/pt-br";
import "dayjs/locale/tr";
import { Copy, FileText, ListChecks, Settings } from "@lucide/vue";
import * as api from "@/lib/backend/api";
import type { MeilisearchIndexOverview } from "@/lib/backend/tauri";
@@ -21,20 +10,7 @@ import { useTabUiState } from "@/lib/tabs/tabUiState";
import MeilisearchDocumentsPage from "./MeilisearchDocumentsPage.vue";
import MeilisearchSettingsPage from "./MeilisearchSettingsPage.vue";
import MeilisearchTasksPage from "./MeilisearchTasksPage.vue";
dayjs.extend(relativeTime);
const DAYJS_LOCALES: Record<string, string> = {
az: "az",
"zh-CN": "zh-cn",
"zh-TW": "zh-tw",
"pt-BR": "pt-br",
es: "es",
it: "it",
ja: "ja",
ko: "ko",
tr: "tr",
};
import { formatMeilisearchTaskDateTime } from "@/types/meilisearchManagement";
const props = defineProps<{
connectionId: string;
@@ -62,9 +38,7 @@ const navSections = computed<Array<{ value: ActiveSection; label: string; icon:
const updatedAtLabel = computed(() => {
const value = overview.value?.updatedAt;
if (!value) return "-";
return dayjs(value)
.locale(DAYJS_LOCALES[locale.value] ?? "en")
.fromNow();
return formatMeilisearchTaskDateTime(value, locale.value);
});
async function refreshStats() {
@@ -9,13 +9,13 @@ import ErrorBanner from "@/components/ui/ErrorBanner.vue";
import QueryLoadingState from "@/components/common/QueryLoadingState.vue";
import * as api from "@/lib/backend/api";
import { formatBytes } from "@/lib/database/serverMetrics";
import type { MeilisearchSystemOverview, OverviewSection } from "@/types/meilisearchManagement";
import { formatMeilisearchTaskDateTime, type MeilisearchSystemOverview, type OverviewSection } from "@/types/meilisearchManagement";
import { useConnectionStore } from "@/stores/connectionStore";
import { connectionIsEffectivelyReadOnly } from "@/lib/database/readOnlyWriteAccess";
import { useToast } from "@/composables/useToast";
const props = defineProps<{ connectionId: string }>();
const { t } = useI18n();
const { locale, t } = useI18n();
const { toast } = useToast();
const connectionStore = useConnectionStore();
const loading = ref(false);
@@ -131,7 +131,7 @@ onMounted(() => void load());
</div>
<div class="col-span-2">
<div class="text-muted-foreground">{{ t("meilisearch.lastUpdate") }}</div>
<div class="mt-1 text-sm font-medium">{{ stats.lastUpdate || "-" }}</div>
<div class="mt-1 text-sm font-medium" :title="stats.lastUpdate || undefined">{{ formatMeilisearchTaskDateTime(stats.lastUpdate, locale) }}</div>
</div>
</div>
<p v-else class="text-xs text-muted-foreground">{{ sectionLabel(overview.stats) }}</p>