refactor multiple widget controllers; replace caching logic with action classes for data retrieval, enhancing code clarity and maintainability

This commit is contained in:
F4ilji
2025-07-22 18:22:04 +05:00
parent 7a8a6e023d
commit 528a4b24b0
19 changed files with 320 additions and 110 deletions
@@ -1,6 +1,4 @@
<template>
<div v-if="loading" class="flex flex-col space-y-4">
<div class="flex animate-pulse">
<div class="ms-4 mt-2 w-full border px-4 py-4 rounded-xl shadow-sm">
@@ -35,7 +33,7 @@
</li>
<li class="inline-flex items-center">
<span class="flex items-center text-sm text-gray-500 hover:text-primary-hover focus:outline-none focus:text-primary" href="#">
{{ breadcrumbs.mainSection }}
{{ breadcrumbs.subSection }}
</span>
<svg class="shrink-0 mx-2 size-4 text-gray-400" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="m9 18 6-6-6-6"></path>
@@ -39,7 +39,7 @@
{{ post.data.title }}
</h3>
<p class="mt-3 text-gray-600">
Produce professional, reliable streams easily leveraging Preline's innovative broadcast studio
{{ textLimit(post.data.preview_text, 80) }}
</p>
<p class="mt-4 inline-flex items-center gap-x-1 text-sm text-primary decoration-2 group-hover:underline group-focus:underline font-medium">
Читать далее
@@ -55,7 +55,7 @@
</template>
<script>
import slugify from "slugify";
import { helpers } from "@/mixins/Helpers";
import axios from "axios";
import {Link} from "@inertiajs/vue3";
@@ -84,7 +84,15 @@ export default {
console.error('Ошибка:', error);
this.loading = false; // Установить состояние загрузки в false даже при ошибке
});
}
},
textLimit(text, symbols) {
if (text.length > symbols) {
let LimitedText;
LimitedText = text.substring(0, symbols);
return LimitedText + "...";
}
return text;
},
},
mounted() {
this.getPost(this.block.data.post);