Revisão Logo, Favicon, Robots
This commit is contained in:
@@ -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
@@ -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
@@ -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: '/',
|
||||
|
||||
Reference in New Issue
Block a user