From 3798d01da19d97e3a88a6de142def887323d63a9 Mon Sep 17 00:00:00 2001 From: F4ilji Date: Tue, 7 Apr 2026 22:30:06 +0500 Subject: [PATCH] changes --- .../js/componentss/ui/buttons/BackButton.vue | 22 ++++++++++++++----- resources/js/ssr.js | 14 ++++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/resources/js/componentss/ui/buttons/BackButton.vue b/resources/js/componentss/ui/buttons/BackButton.vue index 39c07db..df31984 100755 --- a/resources/js/componentss/ui/buttons/BackButton.vue +++ b/resources/js/componentss/ui/buttons/BackButton.vue @@ -14,11 +14,11 @@ export default { props: { title: { type: String, - required: true, // Сделаем title обязательным + required: true, }, link: { type: String, - required: true, // Сделаем link обязательным + required: true, } }, computed: { @@ -28,10 +28,20 @@ export default { new URL(this.link); return this.link; // Если это валидный URL, возвращаем его } catch (e) { - // Если это не валидный URL, предполагаем, что это название роута Inertia - // Убедитесь, что функция route() доступна глобально или импортирована - // (обычно она доступна в Laravel-приложениях через Inertia) - return route(this.link); + // Если это не валидный URL, предполагаем, что это название роута + // Используем this.route() который доступен через ZiggyVue mixin + if (typeof this.route === 'function') { + try { + return this.route(this.link); + } catch (err) { + console.error('Route function failed:', err); + return '#'; + } + } + + // Fallback: возвращаем ссылку как есть или хэш + console.warn('route() function is not available'); + return '#'; } } } diff --git a/resources/js/ssr.js b/resources/js/ssr.js index 29375ae..88247be 100755 --- a/resources/js/ssr.js +++ b/resources/js/ssr.js @@ -4,6 +4,7 @@ import createServer from '@inertiajs/vue3/server' import { renderToString } from '@vue/server-renderer' import { createSSRApp, h } from 'vue' import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m'; +import { default as Router } from '../../vendor/tightenco/ziggy/dist/index.m.js'; createServer(page => createInertiaApp({ @@ -32,6 +33,19 @@ createServer(page => ziggyConfig.location = new URL(process.env.APP_URL || 'http://localhost'); } + // Создаем функцию route с правильной конфигурацией + const route = (name, params, absolute, config) => { + const ziggyConfigForRoute = { + ...page.props.ziggy, + location: ziggyConfig.location, + }; + const router = new Router(name, params, absolute, ziggyConfigForRoute); + return router.toString(); + }; + + // Делаем route доступным глобально + ssrApp.config.globalProperties.route = route; + return ssrApp .use(plugin) .use(ZiggyVue, ziggyConfig);