From 062587487a87c7dc7558bdafbb38bbe8e44dd6c7 Mon Sep 17 00:00:00 2001 From: Sivin Varghese <64252451+iamsivin@users.noreply.github.com> Date: Tue, 3 Dec 2024 07:53:41 +0530 Subject: [PATCH] feat: Improve Contact list (#10522) --- .../Contacts/ContactsForm/ContactsForm.vue | 7 +- .../ContactsForm/CreateNewContactDialog.vue | 7 +- .../ContactListHeaderWrapper.vue | 76 ++++++++++--------- .../phonenumberinput/PhoneNumberInput.vue | 9 ++- .../dashboard/i18n/locale/en/contact.json | 6 +- .../dashboard/store/modules/customViews.js | 1 + 6 files changed, 66 insertions(+), 40 deletions(-) diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue index 1813f1057..90329b311 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/ContactsForm.vue @@ -214,6 +214,10 @@ const resetValidation = () => { v$.value.$reset(); }; +const resetForm = () => { + Object.assign(state, defaultState); +}; + watch(() => props.contactData, prepareStateBasedOnProps, { immediate: true, deep: true, @@ -224,6 +228,7 @@ defineExpose({ state, resetValidation, isFormInvalid, + resetForm, }); @@ -261,7 +266,7 @@ defineExpose({ :placeholder="item.placeholder" :message-type="getMessageType(item.key)" :custom-input-class="`h-8 !pt-1 !pb-1 ${ - !isDetailsView ? '[&:not(.error)]:!border-transparent' : '' + !isDetailsView ? '[&:not(.error,.focus)]:!border-transparent' : '' }`" class="w-full" @input=" diff --git a/app/javascript/dashboard/components-next/Contacts/ContactsForm/CreateNewContactDialog.vue b/app/javascript/dashboard/components-next/Contacts/ContactsForm/CreateNewContactDialog.vue index 1a9f183e8..806fcf4ac 100644 --- a/app/javascript/dashboard/components-next/Contacts/ContactsForm/CreateNewContactDialog.vue +++ b/app/javascript/dashboard/components-next/Contacts/ContactsForm/CreateNewContactDialog.vue @@ -27,11 +27,16 @@ const handleDialogConfirm = async () => { emit('create', contact.value); }; +const onSuccess = () => { + contactsFormRef.value?.resetForm(); + dialogRef.value.close(); +}; + const closeDialog = () => { dialogRef.value.close(); }; -defineExpose({ dialogRef, contactsFormRef }); +defineExpose({ dialogRef, contactsFormRef, onSuccess });