From 36fc18906474b19f5498bbd1659c5e078d169662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90?= Date: Sat, 26 Nov 2022 13:05:44 +0800 Subject: [PATCH] feat(status): edit history --- components/common/dropdown/DropdownItem.vue | 6 ++-- components/modal/ModalContainer.vue | 5 ++- components/status/StatusCard.vue | 34 ++---------------- components/status/StatusDetails.vue | 7 +++- components/status/StatusEditIndicator.vue | 20 ----------- components/status/StatusSpoiler.vue | 1 - components/status/edit/StatusEditHistory.vue | 31 ++++++++++++++++ .../status/edit/StatusEditIndicator.vue | 36 +++++++++++++++++++ components/status/edit/StatusEditPreview.vue | 29 +++++++++++++++ composables/dialog.ts | 8 +++++ composables/time.ts | 34 +++++++++++++++++- 11 files changed, 152 insertions(+), 59 deletions(-) delete mode 100644 components/status/StatusEditIndicator.vue create mode 100644 components/status/edit/StatusEditHistory.vue create mode 100644 components/status/edit/StatusEditIndicator.vue create mode 100644 components/status/edit/StatusEditPreview.vue diff --git a/components/common/dropdown/DropdownItem.vue b/components/common/dropdown/DropdownItem.vue index 54f1fac9..7dc93b7e 100644 --- a/components/common/dropdown/DropdownItem.vue +++ b/components/common/dropdown/DropdownItem.vue @@ -8,10 +8,10 @@ defineProps<{ }>() const emit = defineEmits(['click']) -const { hide } = inject(dropdownContextKey)! +const { hide } = inject(dropdownContextKey, undefined) || {} const handleClick = (evt: MouseEvent) => { - hide() + hide?.() emit('click', evt) } @@ -23,7 +23,7 @@ const handleClick = (evt: MouseEvent) => { >
-
+
diff --git a/components/modal/ModalContainer.vue b/components/modal/ModalContainer.vue index 49122f83..9a1b5770 100644 --- a/components/modal/ModalContainer.vue +++ b/components/modal/ModalContainer.vue @@ -1,5 +1,5 @@ diff --git a/components/status/StatusCard.vue b/components/status/StatusCard.vue index 81af3578..def01689 100644 --- a/components/status/StatusCard.vue +++ b/components/status/StatusCard.vue @@ -34,37 +34,7 @@ function go() { } const createdAt = useFormattedDateTime(status.createdAt) -const timeago = useTimeAgo(() => status.createdAt, { - showSecond: true, - messages: { - justNow: 'just now', - past: n => n, - future: n => n.match(/\d/) ? `in ${n}` : n, - month: (n, past) => n === 1 - ? past - ? 'last month' - : 'next month' - : `${n}m`, - year: (n, past) => n === 1 - ? past - ? 'last year' - : 'next year' - : `${n}y`, - day: (n, past) => n === 1 - ? past - ? 'yesterday' - : 'tomorrow' - : `${n}d`, - week: (n, past) => n === 1 - ? past - ? 'last week' - : 'next week' - : `${n} week${n > 1 ? 's' : ''}`, - hour: n => `${n}h`, - minute: n => `${n}min`, - second: n => `${n}s`, - }, -}) +const timeago = useTimeAgo(() => status.createdAt, timeAgoOptions)