feat(baileys): oculta termo "Baileys" na página para não-admin
Título e textos da página /baileys ficam genéricos ("Monitor de Eventos")
para usuários comuns; "Baileys Engine"/"servidor Baileys" só p/ admin ou
ruibto@gmail.com.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
|||||||
ArrowDownLeft, ArrowUpRight, Filter, LayoutGrid, ShieldCheck, Clock
|
ArrowDownLeft, ArrowUpRight, Filter, LayoutGrid, ShieldCheck, Clock
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import { io, Socket } from 'socket.io-client';
|
import { io, Socket } from 'socket.io-client';
|
||||||
|
import { useAuthStore } from '../../store/authStore';
|
||||||
|
|
||||||
// ─── Types ────────────────────────────────────────────────────────────────────
|
// ─── Types ────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
@@ -502,6 +503,9 @@ function SessionCard({
|
|||||||
// ─── Main Page ─────────────────────────────────────────────────────────────────
|
// ─── Main Page ─────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
export default function BaileysPage() {
|
export default function BaileysPage() {
|
||||||
|
const user = useAuthStore((s) => s.user);
|
||||||
|
// Termo técnico "Baileys" só para admin ou ruibto@gmail.com.
|
||||||
|
const canSeeTech = user?.role === 'ADMIN' || user?.email === 'ruibto@gmail.com';
|
||||||
const [sessions, setSessions] = useState<Map<string, SessionInfo>>(new Map());
|
const [sessions, setSessions] = useState<Map<string, SessionInfo>>(new Map());
|
||||||
const [selectedSession, setSelectedSession] = useState<SessionInfo | null>(null);
|
const [selectedSession, setSelectedSession] = useState<SessionInfo | null>(null);
|
||||||
const [listening, setListening] = useState(true);
|
const [listening, setListening] = useState(true);
|
||||||
@@ -702,7 +706,7 @@ export default function BaileysPage() {
|
|||||||
<Zap size={24} className="text-brand-400" />
|
<Zap size={24} className="text-brand-400" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-2xl font-black text-white tracking-tight">Baileys Engine</h1>
|
<h1 className="text-2xl font-black text-white tracking-tight">{canSeeTech ? 'Baileys Engine' : 'Monitor de Eventos'}</h1>
|
||||||
<p className="text-slate-500 text-xs mt-0.5">
|
<p className="text-slate-500 text-xs mt-0.5">
|
||||||
{sessionList.length} {sessionList.length === 1 ? 'sessão' : 'sessões'} monitoradas
|
{sessionList.length} {sessionList.length === 1 ? 'sessão' : 'sessões'} monitoradas
|
||||||
</p>
|
</p>
|
||||||
@@ -742,7 +746,7 @@ export default function BaileysPage() {
|
|||||||
<Zap size={28} className="opacity-30" />
|
<Zap size={28} className="opacity-30" />
|
||||||
</div>
|
</div>
|
||||||
<p className="text-sm font-semibold mb-1">Nenhuma sessão detectada</p>
|
<p className="text-sm font-semibold mb-1">Nenhuma sessão detectada</p>
|
||||||
<p className="text-xs text-slate-700">Aguardando eventos do servidor Baileys...</p>
|
<p className="text-xs text-slate-700">Aguardando eventos do servidor{canSeeTech ? ' Baileys' : ''}...</p>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
) : (
|
) : (
|
||||||
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-4 gap-4">
|
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-4 gap-4">
|
||||||
|
|||||||
Reference in New Issue
Block a user