summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Andreas Wang <codingforpeace@protonmail.com>2026-03-13 17:38:13 +0100
committerDaniel Andreas Wang <codingforpeace@protonmail.com>2026-03-13 17:38:13 +0100
commitf68ff92f12f8ad4bc4f157b78771d16067eaaf97 (patch)
tree89e6eaf30d851e43d0796d808c82b55baa885d2b
parent0608a926af3e11794f0f86e8fdff5b7a4ffd9254 (diff)
add clockHEADmain
-rw-r--r--package-lock.json7
-rw-r--r--package.json1
-rw-r--r--src/views/HomeView.vue28
3 files changed, 34 insertions, 2 deletions
diff --git a/package-lock.json b/package-lock.json
index 6625aa8..a1c923d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "news-app",
"version": "0.0.0",
"dependencies": {
+ "dayjs": "^1.11.20",
"dotenv": "^16.5.0",
"express": "^4.21.2",
"pinia": "^3.0.4",
@@ -1964,6 +1965,12 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="
},
+ "node_modules/dayjs": {
+ "version": "1.11.20",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.20.tgz",
+ "integrity": "sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==",
+ "license": "MIT"
+ },
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
diff --git a/package.json b/package.json
index 90d5b56..f651fa5 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"type-check": "vue-tsc --build"
},
"dependencies": {
+ "dayjs": "^1.11.20",
"dotenv": "^16.5.0",
"express": "^4.21.2",
"pinia": "^3.0.4",
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index a5290ec..c780410 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -1,15 +1,39 @@
<script setup lang="ts">
-import { onMounted } from 'vue'
+import { ref, onMounted, onUnmounted } from 'vue'
+import dayjs from 'dayjs'
+import utc from 'dayjs/plugin/utc'
+import timezone from 'dayjs/plugin/timezone'
import { useNewsStore } from '@/stores/news'
+dayjs.extend(utc)
+dayjs.extend(timezone)
+
+const tehranTime = ref('')
const store = useNewsStore()
+let interval: ReturnType<typeof setInterval>
+
+const updateClocks = () => {
+ tehranTime.value = dayjs().tz('Asia/Tehran').format('HH:mm:ss')
+}
onMounted(() => {
- store.fetchTopHeadlines({ country: 'us' })
+ updateClocks()
+ interval = setInterval(updateClocks, 1000)
+ store.fetchEverything({ q: 'iran' })
+})
+
+onUnmounted(() => {
+ clearInterval(interval)
})
</script>
<template>
+ <div class="container">
+ <div class="clock">
+ <div class="time">Tehran time: {{ tehranTime }}</div>
+ </div>
+ </div>
+
<main>
<p v-if="store.loading">Loading...</p>
<p v-else-if="store.error">{{ store.error }}</p>