para que el JS tenga rol, lista de abogados, lista de
* usuarios involucrables, etc. sin hacer un fetch extra al cargar.
*/
final class Bootstrap {
public static function inject(string $viewPath): void {
$user = Auth::user();
$payload = [
'me' => $user['email'],
'name' => $user['name'],
'role' => Auth::role(),
'isAdmin' => Auth::isAdmin(),
'isSocio' => Auth::isSocio(),
'isAbogado' => Auth::isAbogado(),
'canCreate' => Auth::canCreate(),
'canDelete' => Auth::canDelete(),
'abogados' => Lookups::abogadoNames(),
'users' => Lookups::involucrablesUsers(),
];
$json = json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_HEX_TAG | JSON_HEX_AMP);
$inject = '';
$html = file_get_contents($viewPath);
if ($html === false) {
http_response_code(500);
exit('Vista no disponible.');
}
// Inyectar SOLO antes de la primera ocurrencia de . str_replace
// remplazaba todas — incluyendo las que viven dentro de template
// literals de JS (ej. en exportPDF), lo cual metía un
// espurio que cortaba el