refactor: use separate component for birthday dates
Some checks failed
ci/woodpecker/push/lint-backend Pipeline was successful
ci/woodpecker/push/lint-foundkey-js Pipeline was successful
ci/woodpecker/push/lint-client Pipeline was successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/lint-foundkey-js Pipeline was successful
ci/woodpecker/pr/lint-backend Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/lint-client Pipeline failed
ci/woodpecker/pr/test Pipeline failed

Resolves: #90
This commit is contained in:
Norm 2022-08-28 14:49:22 -04:00
parent af8de58c84
commit b66ae3847b
Signed by: norm
GPG key ID: 7123E30E441E80DE
23 changed files with 41 additions and 1 deletions

View file

@ -254,6 +254,7 @@ remoteUserCaution: "هذه المعلومات قد لا تكون مكتملة ب
activity: "النشاط" activity: "النشاط"
images: "الصور" images: "الصور"
birthday: "تاريخ الميلاد" birthday: "تاريخ الميلاد"
yearsOld: "{age} سنة"
registeredDate: "انضم في" registeredDate: "انضم في"
location: "الموقع الجغرافي" location: "الموقع الجغرافي"
theme: "المظهر" theme: "المظهر"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "এই ব্যাবহারকারী রিমোট
activity: "কার্যকলাপ" activity: "কার্যকলাপ"
images: "ছবি" images: "ছবি"
birthday: "জন্মদিন" birthday: "জন্মদিন"
yearsOld: "{age} বছর"
registeredDate: "যোগদানের তারিখ" registeredDate: "যোগদানের তারিখ"
location: "অবস্থান" location: "অবস্থান"
theme: "থিম" theme: "থিম"

View file

@ -241,6 +241,7 @@ remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je
activity: "Aktivita" activity: "Aktivita"
images: "Obrázky" images: "Obrázky"
birthday: "Datum narození" birthday: "Datum narození"
yearsOld: "{age} let"
registeredDate: "Datum registrace" registeredDate: "Datum registrace"
location: "Lokace" location: "Lokace"
theme: "Vzhled" theme: "Vzhled"

View file

@ -259,6 +259,7 @@ remoteUserCaution: "Diese Informationen sind möglicherweise unvollständig, da
activity: "Aktivität" activity: "Aktivität"
images: "Bilder" images: "Bilder"
birthday: "Geburtstag" birthday: "Geburtstag"
yearsOld: "{age} Jahre alt"
registeredDate: "Registrationsdatum" registeredDate: "Registrationsdatum"
location: "Ort" location: "Ort"
theme: "Farbschema" theme: "Farbschema"

View file

@ -259,6 +259,7 @@ remoteUserCaution: "As this user is from a remote instance, the shown informatio
activity: "Activity" activity: "Activity"
images: "Images" images: "Images"
birthday: "Birthday" birthday: "Birthday"
yearsOld: "{age} years old"
registeredDate: "Joined on" registeredDate: "Joined on"
location: "Location" location: "Location"
theme: "Themes" theme: "Themes"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "Para el usuario remoto, la información está incompleta"
activity: "Actividad" activity: "Actividad"
images: "Imágenes" images: "Imágenes"
birthday: "Fecha de nacimiento" birthday: "Fecha de nacimiento"
yearsOld: "{age} años"
registeredDate: "Fecha de registro" registeredDate: "Fecha de registro"
location: "Lugar" location: "Lugar"
theme: "Tema" theme: "Tema"

View file

@ -256,6 +256,7 @@ remoteUserCaution: "Les informations de ce compte risqueraient dêtre incompl
activity: "Activité" activity: "Activité"
images: "Images" images: "Images"
birthday: "Date de naissance" birthday: "Date de naissance"
yearsOld: "{age} ans"
registeredDate: "Inscrit le" registeredDate: "Inscrit le"
location: "Localisation" location: "Localisation"
theme: "Thème" theme: "Thème"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "Informasi ini mungkin tidak mutakhir, karena pengguna ini be
activity: "Aktivitas" activity: "Aktivitas"
images: "Gambar" images: "Gambar"
birthday: "Tanggal lahir" birthday: "Tanggal lahir"
yearsOld: "{age} tahun"
registeredDate: "Bergabung pada" registeredDate: "Bergabung pada"
location: "Lokasi" location: "Lokasi"
theme: "Tema" theme: "Tema"

View file

@ -254,6 +254,7 @@ remoteUserCaution: "Può darsi che le informazioni siano incomplete perché ques
activity: "Attività" activity: "Attività"
images: "Immagini" images: "Immagini"
birthday: "Compleanno" birthday: "Compleanno"
yearsOld: "{age}Anni"
registeredDate: "Iscrizione a.." registeredDate: "Iscrizione a.."
location: "Posizione" location: "Posizione"
theme: "Tema" theme: "Tema"

View file

@ -259,6 +259,7 @@ remoteUserCaution: "リモートユーザーのため、情報が不完全です
activity: "アクティビティ" activity: "アクティビティ"
images: "画像" images: "画像"
birthday: "誕生日" birthday: "誕生日"
yearsOld: "{age}歳"
registeredDate: "登録日" registeredDate: "登録日"
location: "場所" location: "場所"
theme: "テーマ" theme: "テーマ"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "リモートユーザーやから、足りひん情報ある
activity: "アクティビティ" activity: "アクティビティ"
images: "画像" images: "画像"
birthday: "生まれた日" birthday: "生まれた日"
yearsOld: "{age}歳"
registeredDate: "始めた日" registeredDate: "始めた日"
location: "場所" location: "場所"
theme: "テーマ" theme: "テーマ"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "리모트 유저이기 때문에, 정보가 정확하지 않
activity: "활동" activity: "활동"
images: "이미지" images: "이미지"
birthday: "생일" birthday: "생일"
yearsOld: "{age}세"
registeredDate: "등록일" registeredDate: "등록일"
location: "장소" location: "장소"
theme: "테마" theme: "테마"

View file

@ -244,6 +244,7 @@ remoteUserCaution: "Aangezien deze gebruiker van een externe server afkomstig is
activity: "Activiteit" activity: "Activiteit"
images: "Afbeeldingen" images: "Afbeeldingen"
birthday: "Geboortedatum" birthday: "Geboortedatum"
yearsOld: "{age} jaar"
registeredDate: "Inschrijvingsdatum" registeredDate: "Inschrijvingsdatum"
location: "Locatie" location: "Locatie"
theme: "Thema's" theme: "Thema's"

View file

@ -253,6 +253,7 @@ remoteUserCaution: "Te informacje mogą nie być aktualne, ponieważ użytkownik
activity: "Aktywność" activity: "Aktywność"
images: "Zdjęcia" images: "Zdjęcia"
birthday: "Data urodzenia" birthday: "Data urodzenia"
yearsOld: "{age} lat"
registeredDate: "Zarejestrowano" registeredDate: "Zarejestrowano"
location: "Lokalizacja" location: "Lokalizacja"
theme: "Motywy" theme: "Motywy"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "Deoarece acest utilizator este dintr-o instanță externă,
activity: "Activitate" activity: "Activitate"
images: "Imagini" images: "Imagini"
birthday: "Zi de naștere" birthday: "Zi de naștere"
yearsOld: "{age} ani"
registeredDate: "Data înregistrării" registeredDate: "Data înregistrării"
location: "Locație" location: "Locație"
theme: "Teme" theme: "Teme"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "Это пользователь с другого сайта
activity: "Активность" activity: "Активность"
images: "Изображения" images: "Изображения"
birthday: "День рождения" birthday: "День рождения"
yearsOld: "Возраст: {age}"
registeredDate: "Дата регистрации" registeredDate: "Дата регистрации"
location: "Местоположение" location: "Местоположение"
theme: "Тема" theme: "Тема"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "Tieto informácie nemusia byť aktuálne, keďže používat
activity: "Aktivita" activity: "Aktivita"
images: "Obrázky" images: "Obrázky"
birthday: "Dátum narodenia" birthday: "Dátum narodenia"
yearsOld: "{age} rokov"
registeredDate: "Dátum registrácie" registeredDate: "Dátum registrácie"
location: "Lokalita" location: "Lokalita"
theme: "Téma" theme: "Téma"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "Інформація може бути неповною, о
activity: "Активність" activity: "Активність"
images: "Зображення" images: "Зображення"
birthday: "День народження" birthday: "День народження"
yearsOld: "{age} років"
registeredDate: "Приєднався(лась)" registeredDate: "Приєднався(лась)"
location: "Локація" location: "Локація"
theme: "Тема" theme: "Тема"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "Vì người dùng này ở máy chủ khác, thông tin hi
activity: "Hoạt động" activity: "Hoạt động"
images: "Hình ảnh" images: "Hình ảnh"
birthday: "Sinh nhật" birthday: "Sinh nhật"
yearsOld: "{age} tuổi"
registeredDate: "Tham gia" registeredDate: "Tham gia"
location: "Đến từ" location: "Đến từ"
theme: "Chủ đề" theme: "Chủ đề"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "由于此用户来自其它实例,显示的信息可能不
activity: "活动" activity: "活动"
images: "图片" images: "图片"
birthday: "生日" birthday: "生日"
yearsOld: "{age}岁"
registeredDate: "注册于" registeredDate: "注册于"
location: "位置" location: "位置"
theme: "主题" theme: "主题"

View file

@ -258,6 +258,7 @@ remoteUserCaution: "由於該使用者來自遠端實例,因此資訊可能非
activity: "動態" activity: "動態"
images: "圖片" images: "圖片"
birthday: "生日" birthday: "生日"
yearsOld: "{age}歲"
registeredDate: "註冊日期" registeredDate: "註冊日期"
location: "位置" location: "位置"
theme: "外觀主題" theme: "外觀主題"

View file

@ -0,0 +1,18 @@
<template>
<MkTime format="date" mode="absolute" :time="birthday" :utc="true"/> ({{ $t('yearsOld', { age }) }})
</template>
<script lang="ts" setup>
import MkTime from '@/components/global/time.vue';
const props = defineProps<{
birthday: Date | string;
}>();
const age = $computed(() => {
const now = new Date();
const birthday = (typeof props.birthday === 'string') ? new Date(props.birthday) : props.birthday;
return Math.floor((now.getTime() - birthday.getTime()) / 1000 / 31536000);
});
</script>

View file

@ -51,7 +51,7 @@
</dl> </dl>
<dl v-if="user.birthday" class="field"> <dl v-if="user.birthday" class="field">
<dt class="name"><i class="fas fa-birthday-cake fa-fw"></i> {{ i18n.ts.birthday }}</dt> <dt class="name"><i class="fas fa-birthday-cake fa-fw"></i> {{ i18n.ts.birthday }}</dt>
<dd class="value"><MkTime format="date" mode="detail" :time="user.birthday" :utc="true"/></dd> <dd class="value"><MkBirthdayDate :birthday="user.birthday"/></dd>
</dl> </dl>
<dl class="field"> <dl class="field">
<dt class="name"><i class="fas fa-calendar-alt fa-fw"></i> {{ i18n.ts.registeredDate }}</dt> <dt class="name"><i class="fas fa-calendar-alt fa-fw"></i> {{ i18n.ts.registeredDate }}</dt>
@ -112,6 +112,7 @@ import { defineAsyncComponent, onMounted, onUnmounted } from 'vue';
import * as misskey from 'foundkey-js'; import * as misskey from 'foundkey-js';
import XUserTimeline from './index.timeline.vue'; import XUserTimeline from './index.timeline.vue';
import XNote from '@/components/note.vue'; import XNote from '@/components/note.vue';
import MkBirthdayDate from '@/components/birthday-date.vue';
import MkFollowButton from '@/components/follow-button.vue'; import MkFollowButton from '@/components/follow-button.vue';
import MkRemoteCaution from '@/components/remote-caution.vue'; import MkRemoteCaution from '@/components/remote-caution.vue';
import MkInfo from '@/components/ui/info.vue'; import MkInfo from '@/components/ui/info.vue';