diff --git a/resources/js/views/NewsList.vue b/resources/js/views/NewsList.vue index 37777d1..3386917 100644 --- a/resources/js/views/NewsList.vue +++ b/resources/js/views/NewsList.vue @@ -1,27 +1,29 @@ @@ -33,41 +35,36 @@ import SMPanelList from "../components/SMPanelList.vue"; import SMPanel from "../components/SMPanel.vue"; import SMPage from "../components/SMPage.vue"; import { SMDate } from "../helpers/datetime"; +import { PostCollection, Post } from "../helpers/api.types"; -const formMessage = reactive({ - icon: "", - type: "", - message: "", -}); - +const message = ref(""); const loading = ref(true); -const posts = reactive([]); +let posts: Array = reactive([]); const handleLoad = async () => { - formMessage.type = "error"; - formMessage.icon = "fa-solid fa-circle-exclamation"; - formMessage.message = ""; + message.value = ""; - try { - let result = await api.get({ - url: "/posts", - params: { - limit: 5, - }, - }); - posts.value = result.json.posts; + api.get({ + url: "/posts", + params: { + limit: 5, + }, + }) + .then((result) => { + const data = result.data as PostCollection; - posts.value.forEach((post) => { - post.publish_at = new SMDate(post.publish_at, { - format: "ymd", - utc: true, - }).format("yyyy/MM/dd HH:mm:ss"); + posts = data.posts; + posts.forEach((post) => { + post.publish_at = new SMDate(post.publish_at, { + format: "ymd", + utc: true, + }).format("yyyy/MM/dd HH:mm:ss"); + }); + }) + .catch((error) => { + message.value = + error.data?.message || "The server is currently not available"; }); - } catch (error) { - formMessage.message = - error.response?.data?.message || - "The server is currently not available"; - } loading.value = false; };