Temas
A página pública React é lida na pasta do tema de system.theme. Trocar o tema troca a pasta. Não existe fallback para themes/default/react.
Views .mucrm.php ainda caem no tema default quando o arquivo não existe no tema ativo. A página do site em React não faz isso. A página de plugin nasce em app/modules/{plugin}/views/react e o tema só entra quando existe themes/{tema}/react/modules/{plugin}/.
Tema público
// config/system.php
return [
'theme' => 'delta',
];Com theme = delta, a Engine procura:
themes/delta/react/pages/{Nome}.jsxou.tsxpara página do sitethemes/delta/react/layouts/Public.jsxpara a casca das páginas sem layout própriothemes/delta/react/modules/{plugin}/quando o tema quiser substituir a página do plugin, sem pastaviews
themes/delta/react/pages/Home.jsx
themes/delta/react/layouts/Public.jsx
themes/novo/react/pages/Home.jsx
themes/novo/react/layouts/Public.jsxUm tema só em PHP não tem a pasta react/. As rotas dele seguem com $this->view(). Um tema pode misturar os dois: rotas PHP e rotas que chamam inertia().
Painel
O layout do handler escolhe o tema compartilhado. panels.admin._layouts.app lê sóthemes/panels/admin/react, mesmo que o site público esteja em outro tema.
class dashboard_handler extends handler
{
protected string $layout = 'panels.admin._layouts.app';
public function index()
{
return $this->inertia('Dashboard', [
'online' => $players,
]);
}
}Sem themes/panels/admin/react/app.jsx, o painel continua nas views .mucrm.php.
Tema novo para o cliente
- Coloque as páginas em
themes/novo/react/pagese a casca emlayouts/Public.jsx. - Aponte
system.themeparanovo. - Rode
npm run builde enviepublic/buildjunto com o tema.