MelissaSeguranca: pagina nativa 2-col + grupo "Conta" sai inteiro de Configuracoes
Tira "Seguranca" do MelissaConfiguracoes (era embed cfg-seguranca -> SecurityPage.vue) e cria a /melissa/seguranca nativa Melissa. Sidebar (mse-side): - Card "Estado da conta" — email (mono) + tag "Sessão Ativa" pulsando + warning amber sobre desconectar todos dispositivos - Card "Boas praticas" — 4 dicas com bullet colorido (8+ chars, evite obvio, encerre sessao publica, nao reuse senhas) Main: - Card "Trocar senha" — 3 Password inputs (atual + nova + confirmar) + barra de forca 4-segmentos (Muito fraca/Fraca/Boa/Forte) + match indicator (check verde / x amber) + warning + 2 botoes: "Enviar link por e-mail" (reset por email) + primary "Trocar senha" - Estado "concluido" com check verde + redirect pro login Logica espelhada do SecurityPage: - changePassword: signInWithPassword pra reautenticar + updateUser + hardLogout (signOut global + clear sb-* tokens) apos 2.6s - sendResetEmail: resetPasswordForEmail com redirectTo /auth/reset-password Wire-up: - MelissaLayout: import + render `<MelissaSeguranca v-if=secaoAberta=='seguranca'>` - 'seguranca' sai de MELISSA_CONFIG_ALIASES, entra em MELISSA_NON_CONFIG_SLUGS - SECOES.seguranca atualizado (label + descricao + duplicado removido) - MelissaConfiguracoes: cfg-seguranca removido de COMPONENT_MAP + ROUTE_ALIASES; grupo "Conta" inteiro removido (Perfil/Plano/Negocio/ Seguranca todos viraram nativos agora) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,7 @@ import MelissaPerfil from './MelissaPerfil.vue';
|
||||
import MelissaPlano from './MelissaPlano.vue';
|
||||
import MelissaNegocio from './MelissaNegocio.vue';
|
||||
import MelissaAlterarPlano from './MelissaAlterarPlano.vue';
|
||||
import MelissaSeguranca from './MelissaSeguranca.vue';
|
||||
import MelissaEmbed from './MelissaEmbed.vue';
|
||||
import MelissaCadastrosRecebidos from './MelissaCadastrosRecebidos.vue';
|
||||
import MelissaAgendamentosRecebidos from './MelissaAgendamentosRecebidos.vue';
|
||||
@@ -173,9 +174,10 @@ const SECOES = {
|
||||
plano: { label: 'Meu Plano', icon: 'pi pi-credit-card', descricao: 'Assinatura, recursos liberados e historico de mudancas.' },
|
||||
// Pagina nativa do negocio (MelissaNegocio) — saiu do MelissaConfiguracoes
|
||||
negocio: { label: 'Meu Negócio', icon: 'pi pi-briefcase', descricao: 'Identidade, fiscal, endereco, contato, redes — gamificacao no aside.' },
|
||||
// Pagina nativa de seguranca (MelissaSeguranca) — saiu do MelissaConfiguracoes
|
||||
seguranca: { label: 'Segurança', icon: 'pi pi-shield', descricao: 'Trocar senha + boas praticas + estado da sessao.' },
|
||||
// Pagina nativa de alterar plano (MelissaAlterarPlano) — substitui /therapist/upgrade
|
||||
'alterar-plano': { label: 'Alterar Plano', icon: 'pi pi-arrow-up-right', descricao: 'Escolha um plano pessoal pra ativar todos os recursos.' },
|
||||
seguranca: { label: 'Segurança', icon: 'pi pi-shield', descricao: 'Senha, dispositivos confiáveis e sessões.' },
|
||||
// Onda 1 — pages embedadas via MelissaEmbed (1-coluna, hero glass)
|
||||
'financeiro': { label: 'Financeiro', icon: 'pi pi-wallet', descricao: 'Visão geral, recebíveis e indicadores.' },
|
||||
'financeiro-lancamentos': { label: 'Lançamentos financeiros', icon: 'pi pi-list', descricao: 'Cobranças, pagamentos e recebimentos.' },
|
||||
@@ -201,13 +203,13 @@ const MELISSA_NON_CONFIG_SLUGS = new Set([
|
||||
'tags', 'grupos', 'cadastros-recebidos', 'medicos', 'agendamentos-recebidos',
|
||||
'link-externo', 'notificacoes', 'financeiro', 'financeiro-lancamentos',
|
||||
'documentos', 'documentos-templates', 'relatorios',
|
||||
'perfil', 'plano', 'negocio', 'alterar-plano',
|
||||
'perfil', 'plano', 'negocio', 'seguranca', 'alterar-plano',
|
||||
...MELISSA_EMBED_KEYS
|
||||
]);
|
||||
// Aliases "bonitos" + INLINE_KEYS reconhecidos pelo MelissaConfiguracoes.
|
||||
// Mantidos sincronizados com o ROUTE_ALIASES/INLINE_KEYS de lá.
|
||||
const MELISSA_CONFIG_ALIASES = new Set([
|
||||
'aparencia', 'seguranca', 'bloqueios',
|
||||
'aparencia', 'bloqueios',
|
||||
'fundo', 'relogio', 'cronometro'
|
||||
]);
|
||||
function isMelissaConfigRoute(slug) {
|
||||
@@ -2237,6 +2239,11 @@ function onKeydown(e) {
|
||||
@goto="abrirSecao"
|
||||
/>
|
||||
|
||||
<MelissaSeguranca
|
||||
v-if="layoutReady && secaoAberta === 'seguranca'"
|
||||
@close="fecharSecao"
|
||||
/>
|
||||
|
||||
<MelissaConfiguracoes
|
||||
v-if="layoutReady && isMelissaConfigRoute(secaoAberta)"
|
||||
:secao-rota="secaoAberta"
|
||||
|
||||
Reference in New Issue
Block a user