Some checks failed
- Cria 10 novos templates React Email (invite, password-reset, new-login, sla-warning, sla-breached, ticket-created, ticket-resolved, ticket-assigned, ticket-status, ticket-comment) - Adiciona envio de email ao criar convite de usuario - Adiciona security_invite em COLLABORATOR_VISIBLE_TYPES - Melhora tabela de equipe com badges de papel e colunas fixas - Atualiza TicketCard com nova interface de props - Remove botao de limpeza de dados antigos do admin 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
139 lines
4.9 KiB
TypeScript
139 lines
4.9 KiB
TypeScript
import * as React from "react"
|
|
import { Button, Heading, Hr, Section, Text } from "@react-email/components"
|
|
|
|
import { RavenEmailLayout } from "./_components/layout"
|
|
import { EMAIL_COLORS } from "./_components/tokens"
|
|
|
|
export type SlaWarningEmailProps = {
|
|
ticketNumber: string
|
|
ticketTitle: string
|
|
timeRemaining: string
|
|
ticketUrl: string
|
|
}
|
|
|
|
export default function SlaWarningEmail(props: SlaWarningEmailProps) {
|
|
const { ticketNumber, ticketTitle, timeRemaining, ticketUrl } = props
|
|
|
|
return (
|
|
<RavenEmailLayout title="Alerta de SLA" preview={`Chamado #${ticketNumber} esta proximo de estourar o SLA`}>
|
|
<Section style={{ textAlign: "center", margin: "24px 0" }}>
|
|
<div
|
|
style={{
|
|
display: "inline-block",
|
|
width: "64px",
|
|
height: "64px",
|
|
backgroundColor: "#fef3c7",
|
|
borderRadius: "50%",
|
|
lineHeight: "64px",
|
|
fontSize: "28px",
|
|
border: "1px solid #f59e0b",
|
|
}}
|
|
>
|
|
⚠
|
|
</div>
|
|
</Section>
|
|
|
|
<Heading style={{ margin: "0 0 12px 0", fontSize: "26px", fontWeight: 700, color: EMAIL_COLORS.textPrimary, textAlign: "center" }}>
|
|
Alerta de SLA
|
|
</Heading>
|
|
|
|
<Text style={{ margin: "0 0 24px 0", fontSize: "15px", lineHeight: "1.7", color: EMAIL_COLORS.textSecondary, textAlign: "center" }}>
|
|
O chamado abaixo esta proximo de estourar o tempo de atendimento acordado.
|
|
</Text>
|
|
|
|
<Section
|
|
style={{
|
|
backgroundColor: "#fffbeb",
|
|
borderRadius: "12px",
|
|
border: "1px solid #fcd34d",
|
|
margin: "24px 0",
|
|
}}
|
|
>
|
|
<table cellPadding="0" cellSpacing="0" role="presentation" style={{ width: "100%" }}>
|
|
<tbody>
|
|
<tr>
|
|
<td style={{ padding: "16px 20px", borderBottom: "1px solid #fde68a" }}>
|
|
<table cellPadding="0" cellSpacing="0" role="presentation" style={{ width: "100%" }}>
|
|
<tbody>
|
|
<tr>
|
|
<td style={{ color: "#92400e", fontSize: "13px", fontWeight: 500, width: "120px" }}>
|
|
Chamado
|
|
</td>
|
|
<td style={{ color: "#78350f", fontSize: "14px", fontWeight: 600 }}>
|
|
#{ticketNumber}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style={{ padding: "16px 20px", borderBottom: "1px solid #fde68a" }}>
|
|
<table cellPadding="0" cellSpacing="0" role="presentation" style={{ width: "100%" }}>
|
|
<tbody>
|
|
<tr>
|
|
<td style={{ color: "#92400e", fontSize: "13px", fontWeight: 500, width: "120px" }}>
|
|
Titulo
|
|
</td>
|
|
<td style={{ color: "#78350f", fontSize: "14px" }}>
|
|
{ticketTitle}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style={{ padding: "16px 20px" }}>
|
|
<table cellPadding="0" cellSpacing="0" role="presentation" style={{ width: "100%" }}>
|
|
<tbody>
|
|
<tr>
|
|
<td style={{ color: "#92400e", fontSize: "13px", fontWeight: 500, width: "120px" }}>
|
|
Tempo restante
|
|
</td>
|
|
<td style={{ color: "#dc2626", fontSize: "14px", fontWeight: 700 }}>
|
|
{timeRemaining}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</Section>
|
|
|
|
<Section style={{ textAlign: "center", margin: "32px 0" }}>
|
|
<Button
|
|
href={ticketUrl}
|
|
style={{
|
|
display: "inline-block",
|
|
backgroundColor: EMAIL_COLORS.primary,
|
|
color: EMAIL_COLORS.primaryForeground,
|
|
textDecoration: "none",
|
|
borderRadius: "12px",
|
|
padding: "14px 24px",
|
|
fontWeight: 800,
|
|
fontSize: "14px",
|
|
border: `1px solid ${EMAIL_COLORS.primaryDark}`,
|
|
}}
|
|
>
|
|
Ver chamado
|
|
</Button>
|
|
</Section>
|
|
|
|
<Hr style={{ borderColor: EMAIL_COLORS.border, margin: "24px 0" }} />
|
|
|
|
<Text style={{ margin: 0, fontSize: "12px", color: EMAIL_COLORS.textMuted, textAlign: "center" }}>
|
|
Acesse o sistema para mais detalhes e acompanhe o status do chamado.
|
|
</Text>
|
|
</RavenEmailLayout>
|
|
)
|
|
}
|
|
|
|
SlaWarningEmail.PreviewProps = {
|
|
ticketNumber: "41025",
|
|
ticketTitle: "Computador nao liga apos atualizacao",
|
|
timeRemaining: "45 minutos",
|
|
ticketUrl: "https://raven.rever.com.br/tickets/abc123",
|
|
} satisfies SlaWarningEmailProps
|