diff --git a/src/modules/00_support/components/FormChat.vue b/src/modules/00_support/components/FormChat.vue index f5ebd2b01..d328aecc1 100644 --- a/src/modules/00_support/components/FormChat.vue +++ b/src/modules/00_support/components/FormChat.vue @@ -12,8 +12,36 @@ const content = ref(""); const searchInput = ref(""); const currentIssuePage = ref(1); const totalPageIssue = ref(); +const createdByUser = ref(""); const { scrollContainer } = storeToRefs(store); +function dateIssue(timestamp: string): string { + const parsedTimestamp = moment(timestamp); + const diff = moment().diff(parsedTimestamp); + + if (diff < 1000) { + return "just now"; + } else if (diff < 60000) { + return `${Math.floor(diff / 1000)}s`; + } else if (diff < 3600000) { + return `${Math.floor(diff / 60000)}m`; + } else if (diff < 86400000) { + return `${Math.floor(diff / 3600000)}h`; + } else { + const beYear = parsedTimestamp.year() + 543; + const formattedDate = parsedTimestamp.clone().year(beYear).format("DD MMM"); + return formattedDate; + } +} + +function getOnlineStatus(option: "icon" | "status", userId: string) { + const isOnline: boolean = store.userStatus.some((u) => + u.userId.includes(userId) + ); + if (option === "icon") return isOnline ? "green" : "grey"; + if (option === "status") return isOnline ? "ออนไลน์" : "ออฟไลน์"; +} + onMounted(async () => { await store.fetchIssue(); totalPageIssue.value = Math.ceil((store.currentTotalIssue || 0) / 30); @@ -29,11 +57,16 @@ const onLoad = (async (_: any, done: any) => {