47 lines
2.4 KiB
JavaScript
47 lines
2.4 KiB
JavaScript
const fs = require('fs');
|
|
let code = fs.readFileSync('src/sections/HistoriaClinica.tsx', 'utf8');
|
|
|
|
const regex = /<div className="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4">\s*<div className="flex gap-2">\s*\{canEdit && <Button variant="outline" onClick=\{\(\) => \{ reset\(\); setDialog\(true\); \}\}>\s*<Plus className="h-4 w-4 mr-2" \/>\s*Nuevo Estudio\s*<\/Button>\}\s*<\/div>\s*<Select value=\{filtro\} onValueChange=\{\(v: 'todos' \| 'internacion'\) => setFiltro\(v\)\}>\s*<SelectTrigger className="w-\[180px\]">\s*<SelectValue placeholder="Filtrar" \/>\s*<\/SelectTrigger>\s*<SelectContent>\s*<SelectItem value="todos">Todos los estudios<\/SelectItem>\s*<SelectItem value="internacion">Solo esta internación<\/SelectItem>\s*<\/SelectContent>\s*<\/Select>\s*<\/div>/g;
|
|
|
|
const repl = `
|
|
{portalNode ? createPortal(
|
|
<>
|
|
{canEdit && <Button variant="outline" onClick={() => { reset(); setDialog(true); }}>
|
|
<Plus className="h-4 w-4 mr-2" />
|
|
Nuevo Estudio
|
|
</Button>}
|
|
<Select value={filtro} onValueChange={(v: 'todos' | 'internacion') => setFiltro(v)}>
|
|
<SelectTrigger className="w-[180px]">
|
|
<SelectValue placeholder="Filtrar" />
|
|
</SelectTrigger>
|
|
<SelectContent>
|
|
<SelectItem value="todos">Todos los estudios</SelectItem>
|
|
<SelectItem value="internacion">Solo esta internación</SelectItem>
|
|
</SelectContent>
|
|
</Select>
|
|
</>,
|
|
portalNode
|
|
) : (
|
|
<div className="flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4 mb-4">
|
|
<div className="flex gap-2">
|
|
{canEdit && <Button variant="outline" onClick={() => { reset(); setDialog(true); }}>
|
|
<Plus className="h-4 w-4 mr-2" />
|
|
Nuevo Estudio
|
|
</Button>}
|
|
</div>
|
|
<Select value={filtro} onValueChange={(v: 'todos' | 'internacion') => setFiltro(v)}>
|
|
<SelectTrigger className="w-[180px]">
|
|
<SelectValue placeholder="Filtrar" />
|
|
</SelectTrigger>
|
|
<SelectContent>
|
|
<SelectItem value="todos">Todos los estudios</SelectItem>
|
|
<SelectItem value="internacion">Solo esta internación</SelectItem>
|
|
</SelectContent>
|
|
</Select>
|
|
</div>
|
|
)}
|
|
`.trim();
|
|
|
|
code = code.replace(regex, repl);
|
|
fs.writeFileSync('src/sections/HistoriaClinica.tsx', code);
|