feat: refresh Raven branding

This commit is contained in:
Esdras Renan 2025-10-17 15:29:08 -03:00
parent 6e2bbb3494
commit c00b4300c1
31 changed files with 128 additions and 138 deletions

View file

@ -25,7 +25,7 @@ import { usePathname } from "next/navigation"
import Link from "next/link"
import { SearchForm } from "@/components/search-form"
import { VersionSwitcher } from "@/components/version-switcher"
import { SidebarBrand } from "@/components/sidebar-brand"
import {
Sidebar,
SidebarContent,
@ -63,57 +63,54 @@ type NavigationGroup = {
items: NavigationItem[]
}
const navigation: { versions: string[]; navMain: NavigationGroup[] } = {
versions: ["Rever Tecnologia"],
navMain: [
{
title: "Operação",
items: [
{ title: "Dashboard", url: "/dashboard", icon: LayoutDashboard, requiredRole: "staff" },
{
title: "Tickets",
url: "/tickets",
icon: Ticket,
requiredRole: "staff",
children: [{ title: "Resolvidos", url: "/tickets/resolved", icon: ShieldCheck, requiredRole: "staff" }],
},
{ title: "Visualizações", url: "/views", icon: PanelsTopLeft, requiredRole: "staff" },
{ title: "Modo Play", url: "/play", icon: PlayCircle, requiredRole: "staff" },
],
},
{
title: "Relatórios",
requiredRole: "staff",
items: [
{ title: "SLA e produtividade", url: "/reports/sla", icon: TrendingUp, requiredRole: "staff" },
{ title: "Qualidade (CSAT)", url: "/reports/csat", icon: LifeBuoy, requiredRole: "staff" },
{ title: "Backlog", url: "/reports/backlog", icon: BarChart3, requiredRole: "staff" },
{ title: "Horas por cliente", url: "/reports/hours", icon: Clock4, requiredRole: "staff" },
],
},
{
title: "Administração",
requiredRole: "admin",
items: [
{
title: "Convites e acessos",
url: "/admin",
icon: UserPlus,
requiredRole: "admin",
exact: true,
},
{ title: "Canais & roteamento", url: "/admin/channels", icon: Waypoints, requiredRole: "admin" },
{ title: "Times & papéis", url: "/admin/teams", icon: UserCog, requiredRole: "admin" },
{ title: "Empresas & clientes", url: "/admin/companies", icon: Building2, requiredRole: "admin" },
{ title: "Máquinas", url: "/admin/machines", icon: MonitorCog, requiredRole: "admin" },
{ title: "Campos personalizados", url: "/admin/fields", icon: Layers3, requiredRole: "admin" },
{ title: "SLAs", url: "/admin/slas", icon: Timer, requiredRole: "admin" },
{ title: "Alertas enviados", url: "/admin/alerts", icon: BellRing, requiredRole: "admin" },
],
},
// Removido grupo "Conta" (Configurações) para evitar redundância com o menu do usuário no rodapé
],
}
const navigation: NavigationGroup[] = [
{
title: "Operação",
items: [
{ title: "Dashboard", url: "/dashboard", icon: LayoutDashboard, requiredRole: "staff" },
{
title: "Tickets",
url: "/tickets",
icon: Ticket,
requiredRole: "staff",
children: [{ title: "Resolvidos", url: "/tickets/resolved", icon: ShieldCheck, requiredRole: "staff" }],
},
{ title: "Visualizações", url: "/views", icon: PanelsTopLeft, requiredRole: "staff" },
{ title: "Modo Play", url: "/play", icon: PlayCircle, requiredRole: "staff" },
],
},
{
title: "Relatórios",
requiredRole: "staff",
items: [
{ title: "SLA e produtividade", url: "/reports/sla", icon: TrendingUp, requiredRole: "staff" },
{ title: "Qualidade (CSAT)", url: "/reports/csat", icon: LifeBuoy, requiredRole: "staff" },
{ title: "Backlog", url: "/reports/backlog", icon: BarChart3, requiredRole: "staff" },
{ title: "Horas por cliente", url: "/reports/hours", icon: Clock4, requiredRole: "staff" },
],
},
{
title: "Administração",
requiredRole: "admin",
items: [
{
title: "Convites e acessos",
url: "/admin",
icon: UserPlus,
requiredRole: "admin",
exact: true,
},
{ title: "Canais & roteamento", url: "/admin/channels", icon: Waypoints, requiredRole: "admin" },
{ title: "Times & papéis", url: "/admin/teams", icon: UserCog, requiredRole: "admin" },
{ title: "Empresas & clientes", url: "/admin/companies", icon: Building2, requiredRole: "admin" },
{ title: "Máquinas", url: "/admin/machines", icon: MonitorCog, requiredRole: "admin" },
{ title: "Campos personalizados", url: "/admin/fields", icon: Layers3, requiredRole: "admin" },
{ title: "SLAs", url: "/admin/slas", icon: Timer, requiredRole: "admin" },
{ title: "Alertas enviados", url: "/admin/alerts", icon: BellRing, requiredRole: "admin" },
],
},
// Removido grupo "Conta" (Configurações) para evitar redundância com o menu do usuário no rodapé
]
export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
const pathname = usePathname()
@ -130,7 +127,7 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
)
const initialExpanded = React.useMemo(() => {
const open = new Set<string>()
navigation.navMain.forEach((group) => {
navigation.forEach((group) => {
group.items.forEach((item) => {
if (!item.children || item.children.length === 0) return
const shouldOpen = item.children.some((child) => {
@ -213,15 +210,16 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
return (
<Sidebar {...props}>
<SidebarHeader className="gap-3">
<VersionSwitcher
label="Raven"
versions={[...navigation.versions]}
defaultVersion={navigation.versions[0]}
<SidebarBrand
logoSrc="/logo-raven.png"
logoAlt="Logotipo Raven"
title="Raven"
subtitle="Por Rever Tecnologia"
/>
<SearchForm placeholder="Buscar tickets" />
</SidebarHeader>
<SidebarContent>
{navigation.navMain.map((group) => {
{navigation.map((group) => {
if (!canAccess(group.requiredRole)) return null
const visibleItems = group.items.filter((item) => canAccess(item.requiredRole))
if (visibleItems.length === 0) return null