Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Laravel 12 React TypeScript StarterKits Default Layout (https://javascript.ru/forum/library-toolkit-framework/86340-laravel-12-react-typescript-starterkits-default-layout.html)

DzonyB 08.03.2025 13:47

Laravel 12 React TypeScript StarterKits Default Layout
 
Привет всем собственно вопрос в заголовке . Решил испробовать эту связку , но столкнулся с проблемой несовпадения типов. Использую PHP Storm . Методом проб и ошибок добился что осталась одна ошибка в строке

Код:

page.then((module:ComponentProps<any>)
ругается на <any> . А так код рабочий , и все работает . Но все равно смущает красная строка . Может ли кто нибудь поделиться своими соображениями и подправить мой код . Заранее спасибо . Вот весь мой код .
Разместил код здесь, так как не знаю к какой теме он относится.
P.S Пробовал через Copilot , но с каждым разом количество ошибок увеличивалось и достигло почти 70. smile))
И в результате он завис. smile))


import '../css/app.css';

import { createInertiaApp } from '@inertiajs/react';
import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers';
import { createRoot } from 'react-dom/client';
import { initializeTheme } from './hooks/use-appearance';
import { ComponentProps,ReactNode} from 'react';
import Layout from './layouts/app/app';

const appName = import.meta.env.VITE_APP_NAME || 'Laravel';

createInertiaApp({

    title: (title) => `${title} - ${appName}`,

    // resolve: (name) => resolvePageComponent(`./pages/${name}.tsx`, import.meta.glob('./pages/**/*.tsx')),

    resolve: (name) => {

        const page = resolvePageComponent(`./pages/${name}.tsx`, import.meta.glob('./pages/**/*.tsx'));
        page.then((module:ComponentProps<any>) => {
            module.default.layout = module.default.layout || ((page:ReactNode) => <Layout children={page} />);
        });
        return page;
    },

    setup({ el, App, props }) {
        const root = createRoot(el);

        setTimeout(() => {
            delete el.dataset.page;
        });

        root.render(<App {...props} />);
    },
    progress: {
        color: '#4B5563',
    },
});

// This will set light / dark mode on load...
initializeTheme();


Часовой пояс GMT +3, время: 09:15.