diff --git a/js/src/components/Admin/Followers.vue b/js/src/components/Admin/Followers.vue
index 7dfcefee0..6b491fc24 100644
--- a/js/src/components/Admin/Followers.vue
+++ b/js/src/components/Admin/Followers.vue
@@ -43,18 +43,20 @@
- {{
- props.row.updatedAt | formatDateTimeString
- }}
+
+ {{
+ timeago(props.row.updatedAt)
+ }}
-
{{ props.row.actor.domain }}
-
@{{ props.row.actor.preferredUsername }}
-
31m
-
+
{{ props.row.actor.name }}
+
@{{ props.row.actor.preferredUsername }}
diff --git a/js/src/components/Admin/Followings.vue b/js/src/components/Admin/Followings.vue
index 88e7f831d..985898227 100644
--- a/js/src/components/Admin/Followings.vue
+++ b/js/src/components/Admin/Followings.vue
@@ -56,18 +56,20 @@
- {{
- props.row.updatedAt | formatDateTimeString
- }}
+
+ {{
+ timeago(props.row.updatedAt)
+ }}
-
{{ props.row.targetActor.domain }}
-
@{{ props.row.targetActor.preferredUsername }}
-
31m
-
+
{{ props.row.targetActor.name }}
+
@{{ props.row.targetActor.preferredUsername }}
diff --git a/js/src/mixins/relay.ts b/js/src/mixins/relay.ts
index 477db1d2b..a01fbdb46 100644
--- a/js/src/mixins/relay.ts
+++ b/js/src/mixins/relay.ts
@@ -1,6 +1,7 @@
import { Component, Vue, Ref } from "vue-property-decorator";
import { ActorType, IActor } from "@/types/actor";
import { IFollower } from "@/types/actor/follower.model";
+import TimeAgo from "javascript-time-ago";
@Component
export default class RelayMixin extends Vue {
@@ -12,6 +13,15 @@ export default class RelayMixin extends Vue {
perPage = 10;
+ timeAgoInstance: TimeAgo | null = null;
+
+ async mounted() {
+ const localeName = this.$i18n.locale;
+ const locale = await import(`javascript-time-ago/locale/${localeName}`);
+ TimeAgo.addLocale(locale);
+ this.timeAgoInstance = new TimeAgo(localeName);
+ }
+
toggle(row: object) {
this.table.toggleDetails(row);
}
@@ -43,4 +53,11 @@ export default class RelayMixin extends Vue {
(actor.preferredUsername === "relay" || actor.preferredUsername === actor.domain)
);
}
+
+ timeago(dateTime: string): string {
+ if (this.timeAgoInstance != null) {
+ return this.timeAgoInstance.format(new Date(dateTime));
+ }
+ return "";
+ }
}