diff --git a/src/features/agenda/components/AgendaEventDialog.vue b/src/features/agenda/components/AgendaEventDialog.vue index 5f08a50..3d4dbbf 100644 --- a/src/features/agenda/components/AgendaEventDialog.vue +++ b/src/features/agenda/components/AgendaEventDialog.vue @@ -105,7 +105,24 @@ const props = defineProps({ feriados: { type: Array, default: () => [] }, // Rota para cadastro completo de paciente (abre em nova aba) - newPatientRoute: { type: String, default: '' } + newPatientRoute: { type: String, default: '' }, + + // ── Locks aditivos (default false — comportamento atual) ────────── + // Usados pelo MelissaPaciente.vue pra abrir esse dialog ja em + // contexto de Sessao + paciente fixo do prontuario. Os 5 callsites + // existentes (TherapistDashboard, PatientsListPage, MelissaAgenda, + // MelissaAgendamentosRecebidos, MelissaLayout) seguem com defaults. + // + // lockType=true: pula o step de escolha de tipo (commitment cards) e + // vai direto pro form. Espera que eventRow ja venha com tipo+commitment + // resolvidos (no MelissaPaciente: tipo='sessao'). + // + // lockPatient=true: esconde os botoes "trocar"/"limpar" do paciente + // e mostra o icon de lock (mesma UX do patientLocked computed que + // ja existia pra modo edit, agora cobre tambem cenarios "criar sessao + // pra paciente fixo"). + lockType: { type: Boolean, default: false }, + lockPatient: { type: Boolean, default: false } }); const emit = defineEmits(['update:modelValue', 'save', 'delete', 'updateSeriesEvent', 'editSeriesOccurrence', 'updated']); @@ -176,6 +193,17 @@ const { resetForm } = _composer; +// Lock de tipo: quando lockType=true (callsite no contexto de Sessao do +// paciente, ex: MelissaPaciente), pula o step 1 e vai direto pro form. +// Watch immediate cobre tanto open quanto re-open com novo eventRow. +watch( + () => [props.lockType, props.modelValue], + ([locked, open]) => { + if (locked && open) step.value = 2; + }, + { immediate: true } +); + // ── recorrência: opções estáticas (consts data — não migradas) ── const freqOpcoes = [ { value: 'avulsa', label: 'Avulsa' }, @@ -718,13 +746,18 @@ const googleCalendarUrl = computed(() => { - + + + +