Revisão Logo, Favicon, Robots

This commit is contained in:
2026-05-30 23:54:48 -03:00
parent 3e91269f12
commit 4e26c13240
105 changed files with 8137 additions and 693 deletions
+73
View File
@@ -0,0 +1,73 @@
// ============================================================================
// DETECAO DE AMBIENTE - Automatico por hostname
// ============================================================================
// Um unico build serve todos os ambientes:
// - PRODUCAO (avanzato.com.br): index, tracking ativo
// - HOMOLOGACAO (hml.avanzato.com.br): noindex, tracking desativado
// - DESENVOLVIMENTO (localhost): noindex, tracking desativado
// ============================================================================
const hostname = typeof window !== 'undefined' ? window.location.hostname : '';
export type Environment = 'production' | 'homologation' | 'development';
function detectEnvironment(): Environment {
// Producao: domínio principal
if (hostname === 'avanzato.com.br' || hostname === 'www.avanzato.com.br') {
return 'production';
}
// Homologacao: subdominio hml
if (hostname === 'hml.avanzato.com.br') {
return 'homologation';
}
// Desenvolvimento: localhost, 127.0.0.1, IPs locais, previews
if (
hostname === 'localhost' ||
hostname === '127.0.0.1' ||
hostname.startsWith('192.168.') ||
hostname.startsWith('10.') ||
hostname.startsWith('172.') ||
hostname.includes('kimi.page') || // previews
hostname === '' // SSR
) {
return 'development';
}
// Fallback: se nao reconhece, trata como homologacao (seguro)
return 'homologation';
}
export const ENV = detectEnvironment();
// Helpers
export const IS_PRODUCTION = ENV === 'production';
export const IS_HOMOLOGATION = ENV === 'homologation';
export const IS_DEVELOPMENT = ENV === 'development';
// Configuracoes por ambiente
export const ENV_CONFIG = {
// SEO / Indexacao
allowIndexing: IS_PRODUCTION, // So producao permite Google indexar
robotsMeta: IS_PRODUCTION ? 'index, follow' : 'noindex, nofollow',
// Tracking / Integracoes
mauticActive: IS_PRODUCTION, // So envia leads reais em producao
googleAnalytics: IS_PRODUCTION, // So trackeia em producao
googleAds: IS_PRODUCTION, // So dispara conversões em producao
facebookPixel: IS_PRODUCTION, // So dispara pixel em producao
// Visual
showBanner: !IS_PRODUCTION, // Banner de ambiente em hom/dev
bannerText: IS_HOMOLOGATION ? 'HOMOLOGACAO' : 'DESENVOLVIMENTO',
bannerColor: IS_HOMOLOGATION ? 'bg-yellow-500' : 'bg-blue-500',
} as const;
// Log para debug
if (typeof window !== 'undefined') {
console.log(`[Ambiente] ${ENV.toUpperCase()} | Host: ${hostname}`);
if (!IS_PRODUCTION) {
console.log('[Ambiente] Tracking desativado | SEO: noindex');
}
}
+11 -16
View File
@@ -1,12 +1,7 @@
// Configuracao do Mautic - Avanzato
// URL: https://mkt.avanzato.com.br
// --- DETECAO DE AMBIENTE ---
// Em homologacao (localhost, IP, ou nao-producao), o Mautic fica em modo simulacao
// Apenas loga no console, nao envia dados reais
const hostname = typeof window !== 'undefined' ? window.location.hostname : '';
const PROD_HOSTS = ['avanzato.com.br'];
export const IS_HOMOLOGATION = !PROD_HOSTS.includes(hostname);
import { IS_PRODUCTION } from './environment';
export const MAUTIC_CONFIG = {
baseUrl: 'https://mkt.avanzato.com.br',
@@ -17,8 +12,8 @@ export const MAUTIC_CONFIG = {
contato: { id: '4', enabled: true },
},
// Desativa envio real em homologacao
enabled: !IS_HOMOLOGATION,
// So envia dados reais em producao
enabled: IS_PRODUCTION,
};
/**
@@ -37,9 +32,9 @@ export const sendLeadToMautic = (
return false;
}
// MODO HOMOLOGACAO: simula envio, nao manda dados reais
if (IS_HOMOLOGATION) {
console.log('%c[HOMOLOGACAO] Mautic em modo simulacao - dados NAO enviados ao servidor real', 'background:#f59e0b;color:#000;font-weight:bold;padding:4px 8px;border-radius:4px');
// MODO NAO-PRODUCAO: simula envio, nao manda dados reais
if (!IS_PRODUCTION) {
console.log('%c[' + (window as any).__AVANZATO_ENV__?.toUpperCase() + '] Mautic em modo simulacao - dados NAO enviados', 'background:#f59e0b;color:#000;font-weight:bold;padding:4px 8px;border-radius:4px');
console.log(`[Mautic] Form: ${formType} | Form ID: ${formConfig.id}`);
console.log(`[Mautic] Dados que seriam enviados:`, JSON.stringify(formData, null, 2));
console.log(`[Mautic] Em producao, enviaria para: ${MAUTIC_CONFIG.baseUrl}/form/submit?formId=${formConfig.id}`);
@@ -123,8 +118,8 @@ export const sendLeadViaMailto = (formData: Record<string, string>): void => {
* Desativado em homologacao para nao poluir dados
*/
export const trackConversion = (): void => {
if (IS_HOMOLOGATION) {
console.log('%c[HOMOLOGACAO] Google Ads conversion NAO disparado (ambiente de teste)', 'color:#f59e0b');
if (!IS_PRODUCTION) {
console.log('%c[' + (window as any).__AVANZATO_ENV__ + '] Google Ads conversion NAO disparado', 'color:#f59e0b');
return;
}
if (typeof window !== 'undefined' && (window as any).gtag) {
@@ -142,12 +137,12 @@ export const trackConversion = (): void => {
* Desativado em homologacao
*/
export const trackFacebookPixel = (eventName: string = 'Lead', params?: Record<string, any>): void => {
if (IS_HOMOLOGATION) {
console.log(`%c[HOMOLOGACAO] Facebook Pixel "${eventName}" NAO disparado (ambiente de teste)`, 'color:#f59e0b', params);
if (!IS_PRODUCTION) {
console.log(`%c[${(window as any).__AVANZATO_ENV__}] Facebook Pixel "${eventName}" NAO disparado`, 'color:#f59e0b', params);
return;
}
if (typeof window !== 'undefined' && (window as any).fbq) {
(window as any).fbq('track', eventName, params || {});
console.log(`[Facebook Pixel] Evento: ${eventName}`, params);
}
};
};
+9 -12
View File
@@ -11,20 +11,17 @@
// Opcao 2: URL da imagem (deixe svgInline vazio e preencha imageUrl)
export const LOGO = {
// Se quiser usar SVG inline, cole o codigo aqui entre as crases
// Exemplo: svgInline: `<svg ...>...</svg>`
svgInline: `<svg width="40" height="40" viewBox="0 0 100 100">
<path d="M50 15 L75 75 H60 L55 60 H45 L40 75 H25 L50 15 Z M48 48 H52 L50 40 L48 48 Z"
fill="#cbf400" stroke="#cbf400" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/>
</svg>`,
// Opcao 1: SVG inline (deixe vazio se for usar imagem)
svgInline: '',
// Se quiser usar imagem (PNG/JPG), coloque o arquivo em public/assets/
// e defina: imageUrl: '/assets/logo.png'
imageUrl: '',
// Opcao 2: URL da imagem
// Use '/logo.png' para carregar da pasta public/ (funciona em qualquer ambiente)
// Use 'https://avanzato.com.br/logo.png' apenas se for carregar de servidor externo
imageUrl: '/logo.png',
// Texto ao lado do logo (deixe vazio se nao quiser texto)
text: 'avanzato',
textHighlight: '.', // O ponto verde apos o texto
// Texto ao lado do logo (deixe vazio se o logo ja tiver texto)
text: '',
textHighlight: '',
// Link do logo (para onde vai quando clica)
href: '/',