diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue b/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue index 51d306311..4c7b9249e 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsDetailsLayout.vue @@ -7,6 +7,7 @@ import { vOnClickOutside } from '@vueuse/components'; import Button from 'dashboard/components-next/button/Button.vue'; import Breadcrumb from 'dashboard/components-next/breadcrumb/Breadcrumb.vue'; import ComposeConversation from 'dashboard/components-next/NewConversation/ComposeConversation.vue'; +import VoiceCallButton from 'dashboard/components-next/Contacts/VoiceCallButton.vue'; const props = defineProps({ selectedContact: { @@ -99,6 +100,11 @@ const closeMobileSidebar = () => { :disabled="isUpdating" @click="toggleBlock" /> + + +import { mapActions } from 'vuex'; import PreChatForm from '../components/PreChat/Form.vue'; import configMixin from '../mixins/configMixin'; import routerMixin from '../mixins/routerMixin'; @@ -19,6 +20,8 @@ export default { emitter.off(ON_CONVERSATION_CREATED, this.handleConversationCreated); }, methods: { + ...mapActions('conversation', ['clearConversations']), + ...mapActions('conversationAttributes', ['clearConversationAttributes']), handleConversationCreated() { // Redirect to messages page after conversation is created this.replaceRoute('messages'); @@ -48,6 +51,8 @@ export default { }, }); } else { + this.clearConversations(); + this.clearConversationAttributes(); this.$store.dispatch('conversation/createConversation', { fullName: fullName, emailAddress: emailAddress, diff --git a/config/locales/pt_BR.yml b/config/locales/pt_BR.yml index 7ddc6d31f..71ab85e3a 100644 --- a/config/locales/pt_BR.yml +++ b/config/locales/pt_BR.yml @@ -20,9 +20,9 @@ pt_BR: hello: 'Olá, mundo' inbox: reauthorization: - success: 'Channel reauthorized successfully' - not_required: 'Reauthorization is not required for this inbox' - invalid_channel: 'Invalid channel type for reauthorization' + success: 'Canal reautenticado com sucesso' + not_required: 'Reautenticação não é necessária para esta caixa de entrada' + invalid_channel: 'Tipo de canal inválido para reautenticar' messages: reset_password_success: Legal! A solicitação de alteração de senha foi bem sucedida. Verifique seu e-mail para obter instruções. reset_password_failure: Uh ho! Não conseguimos encontrar nenhum usuário com o e-mail especificado. @@ -59,12 +59,12 @@ pt_BR: slack: invalid_channel_id: 'Canal de slack inválido. Por favor, tente novamente' whatsapp: - token_exchange_failed: 'Failed to exchange code for access token. Please try again.' - invalid_token_permissions: 'The access token does not have the required permissions for WhatsApp.' - phone_info_fetch_failed: 'Failed to fetch phone number information. Please try again.' + token_exchange_failed: 'Falha ao trocar o código por um token de acesso. Por favor, tente novamente.' + invalid_token_permissions: 'O token de acesso não tem as permissões necessárias para o WhatsApp.' + phone_info_fetch_failed: 'Falha ao obter a informação do número de telefone. Por favor, tente novamente.' reauthorization: - generic: 'Failed to reauthorize WhatsApp. Please try again.' - not_supported: 'Reauthorization is not supported for this type of WhatsApp channel.' + generic: 'Falha ao reautenticar o WhatsApp. Por favor, tente novamente.' + not_supported: 'Reautenticação não é suportado por este tipo de canal WhatsApp.' inboxes: imap: socket_error: Por favor, verifique a conexão de rede, endereço IMAP e tente novamente. @@ -257,8 +257,8 @@ pt_BR: description: 'Crie issues em Linear diretamente da sua janela de conversa. Alternativamente, vincule as issues lineares existentes para um processo de rastreamento de problemas mais simples e eficiente.' notion: name: 'Notion' - short_description: 'Integrate databases, documents and pages directly with Captain.' - description: 'Connect your Notion workspace to enable Captain to access and generate intelligent responses using content from your databases, documents, and pages to provide more contextual customer support.' + short_description: 'Integre banco de dados, documentos e páginas diretamente com o Capitão.' + description: 'Conecte o seu espaço de trabalho Notion para permitir que o Capitão acesse e gere respostas inteligentes usando o conteúdo de seus bancos de dados, documentos e páginas para fornecer suporte ao cliente mais contextual.' shopify: name: 'Shopify' short_description: 'Acessar detalhes do pedido e dados de clientes da sua loja Shopify.' @@ -359,9 +359,9 @@ pt_BR: portals: send_instructions: email_required: 'E-mail é obrigatório' - invalid_email_format: 'Invalid email format' - custom_domain_not_configured: 'Custom domain is not configured' - instructions_sent_successfully: 'Instructions sent successfully' - subject: 'Finish setting up %{custom_domain}' + invalid_email_format: 'Formato inválido de e-mail' + custom_domain_not_configured: 'Domínio personalizado não está configurado' + instructions_sent_successfully: 'Instruções enviadas com sucesso' + subject: 'Termine de configurar %{custom_domain}' ssl_status: - custom_domain_not_configured: 'Custom domain is not configured' + custom_domain_not_configured: 'Domínio personalizado não está configurado'