From 8ce5dcfbaa3a855c327e7cd24805c47eb7084697 Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Tue, 13 Jun 2023 10:45:05 +0300 Subject: [PATCH 1/2] MP-100 fix traits refresh --- .../accounts/src/settings/tabs/AccountSettingsTabs.tsx | 7 +++++-- .../accounts/src/settings/tabs/tools/devices/Devices.tsx | 7 ------- .../tabs/tools/service-provider/ServiceProvider.tsx | 8 +------- .../src/settings/tabs/tools/software/Software.tsx | 8 +------- .../settings/tabs/tools/subscriptions/Subscriptions.tsx | 8 +------- 5 files changed, 8 insertions(+), 30 deletions(-) diff --git a/src/apps/accounts/src/settings/tabs/AccountSettingsTabs.tsx b/src/apps/accounts/src/settings/tabs/AccountSettingsTabs.tsx index 58fc63ffc..6fd9f5a9e 100644 --- a/src/apps/accounts/src/settings/tabs/AccountSettingsTabs.tsx +++ b/src/apps/accounts/src/settings/tabs/AccountSettingsTabs.tsx @@ -1,5 +1,6 @@ import { Dispatch, FC, SetStateAction, useMemo, useState } from 'react' import { useLocation } from 'react-router-dom' +import { KeyedMutator } from 'swr' import { useMemberTraits, UserProfile, UserTraits } from '~/libs/core' import { PageTitle, TabsNavbar, TabsNavItem } from '~/libs/ui' @@ -24,13 +25,15 @@ const AccountSettingsTabs: FC = (props: AccountSetting const [activeTab, setActiveTab]: [string, Dispatch>] = useState(activeTabHash) - const { data: memberTraits }: { - data: UserTraits[] | undefined + const { data: memberTraits, mutate: mutateTraits }: { + data: UserTraits[] | undefined, + mutate: KeyedMutator } = useMemberTraits(props.profile.handle) function handleTabChange(tabId: string): void { setActiveTab(tabId) window.location.hash = getHashFromTabId(tabId) + mutateTraits() // mutate member traits to refresh the data } return ( diff --git a/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx b/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx index eeb1ccb27..f8f86b7f9 100644 --- a/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx +++ b/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx @@ -1,7 +1,6 @@ /* eslint-disable complexity */ import { Dispatch, FC, MutableRefObject, SetStateAction, useEffect, useRef, useState } from 'react' import { bind, compact, isEmpty, reject, uniqBy } from 'lodash' -import { KeyedMutator } from 'swr' import { toast } from 'react-toastify' import classNames from 'classnames' @@ -9,7 +8,6 @@ import { createMemberTraitsAsync, updateMemberTraitsAsync, useMemberDevicesLookup, - useMemberTraits, UserProfile, UserTrait, } from '~/libs/core' @@ -64,8 +62,6 @@ const Devices: FC = (props: DevicesProps) => { const [itemToRemove, setItemToRemove]: [UserTrait | undefined, Dispatch>] = useState() - const { mutate: mutateTraits }: { mutate: KeyedMutator } = useMemberTraits(props.profile.handle) - const [selectedDeviceType, setSelectedDeviceType]: [ string | undefined, Dispatch> @@ -174,7 +170,6 @@ const Devices: FC = (props: DevicesProps) => { .then(() => { toast.success('Device deleted successfully') setDeviceTypesData(updatedDeviceTypesData) - mutateTraits() }) .catch(() => { toast.error('Error deleting Device') @@ -280,7 +275,6 @@ const Devices: FC = (props: DevicesProps) => { ...updatedDeviceTypesData || [], deviceUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error updating Device') @@ -309,7 +303,6 @@ const Devices: FC = (props: DevicesProps) => { ...deviceTypesData || [], deviceUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error adding new Device') diff --git a/src/apps/accounts/src/settings/tabs/tools/service-provider/ServiceProvider.tsx b/src/apps/accounts/src/settings/tabs/tools/service-provider/ServiceProvider.tsx index 192d3315e..7446a4c47 100644 --- a/src/apps/accounts/src/settings/tabs/tools/service-provider/ServiceProvider.tsx +++ b/src/apps/accounts/src/settings/tabs/tools/service-provider/ServiceProvider.tsx @@ -1,10 +1,9 @@ import { Dispatch, FC, MutableRefObject, SetStateAction, useEffect, useRef, useState } from 'react' import { bind, isEmpty, reject, trim } from 'lodash' import { toast } from 'react-toastify' -import { KeyedMutator } from 'swr' import classNames from 'classnames' -import { createMemberTraitsAsync, updateMemberTraitsAsync, useMemberTraits, UserProfile, UserTrait } from '~/libs/core' +import { createMemberTraitsAsync, updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core' import { Button, Collapsible, ConfirmModal, IconOutline, InputSelect, InputText } from '~/libs/ui' import { FinancialInstitutionIcon, @@ -65,8 +64,6 @@ const ServiceProvider: FC = (props: ServiceProviderProps) const [itemToRemove, setItemToRemove]: [UserTrait | undefined, Dispatch>] = useState() - const { mutate: mutateTraits }: { mutate: KeyedMutator } = useMemberTraits(props.profile.handle) - useEffect(() => { setServiceProviderTypesData(props.serviceProviderTrait?.traits.data) }, [props.serviceProviderTrait]) @@ -158,7 +155,6 @@ const ServiceProvider: FC = (props: ServiceProviderProps) ...updatedServiceProviderTypesData || [], serviceProviderTypeUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error updating Service Provider') @@ -187,7 +183,6 @@ const ServiceProvider: FC = (props: ServiceProviderProps) ...serviceProviderTypesData || [], serviceProviderTypeUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error adding new Service Provider') @@ -227,7 +222,6 @@ const ServiceProvider: FC = (props: ServiceProviderProps) .then(() => { toast.success('Service Provider deleted successfully') setServiceProviderTypesData(updatedServiceProviderTypesData) - mutateTraits() }) .catch(() => { toast.error('Error deleting Service Provider') diff --git a/src/apps/accounts/src/settings/tabs/tools/software/Software.tsx b/src/apps/accounts/src/settings/tabs/tools/software/Software.tsx index 72e716508..9f16577ab 100644 --- a/src/apps/accounts/src/settings/tabs/tools/software/Software.tsx +++ b/src/apps/accounts/src/settings/tabs/tools/software/Software.tsx @@ -1,10 +1,9 @@ import { Dispatch, FC, MutableRefObject, SetStateAction, useEffect, useRef, useState } from 'react' import { bind, isEmpty, reject, trim } from 'lodash' import { toast } from 'react-toastify' -import { KeyedMutator } from 'swr' import classNames from 'classnames' -import { createMemberTraitsAsync, updateMemberTraitsAsync, useMemberTraits, UserProfile, UserTrait } from '~/libs/core' +import { createMemberTraitsAsync, updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core' import { Button, Collapsible, ConfirmModal, IconOutline, InputSelect, InputText } from '~/libs/ui' import { SettingSection, SoftwareIcon } from '~/apps/accounts/src/lib' @@ -58,8 +57,6 @@ const Software: FC = (props: SoftwareProps) => { const [itemToRemove, setItemToRemove]: [UserTrait | undefined, Dispatch>] = useState() - const { mutate: mutateTraits }: { mutate: KeyedMutator } = useMemberTraits(props.profile.handle) - useEffect(() => { setSoftwareTypesData(props.softwareTrait?.traits.data) }, [props.softwareTrait]) @@ -147,7 +144,6 @@ const Software: FC = (props: SoftwareProps) => { ...updatedSoftwareTypesData || [], softwareTypeUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error updating software') @@ -176,7 +172,6 @@ const Software: FC = (props: SoftwareProps) => { ...softwareTypesData || [], softwareTypeUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error adding new software') @@ -216,7 +211,6 @@ const Software: FC = (props: SoftwareProps) => { .then(() => { toast.success('Software deleted successfully') setSoftwareTypesData(updatedSoftwareTypesData) - mutateTraits() }) .catch(() => { toast.error('Error deleting software') diff --git a/src/apps/accounts/src/settings/tabs/tools/subscriptions/Subscriptions.tsx b/src/apps/accounts/src/settings/tabs/tools/subscriptions/Subscriptions.tsx index acb16c740..f21cecb28 100644 --- a/src/apps/accounts/src/settings/tabs/tools/subscriptions/Subscriptions.tsx +++ b/src/apps/accounts/src/settings/tabs/tools/subscriptions/Subscriptions.tsx @@ -1,10 +1,9 @@ import { Dispatch, FC, MutableRefObject, SetStateAction, useEffect, useRef, useState } from 'react' import { bind, isEmpty, reject, trim } from 'lodash' import { toast } from 'react-toastify' -import { KeyedMutator } from 'swr' import classNames from 'classnames' -import { createMemberTraitsAsync, updateMemberTraitsAsync, useMemberTraits, UserProfile, UserTrait } from '~/libs/core' +import { createMemberTraitsAsync, updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core' import { Button, Collapsible, ConfirmModal, IconOutline, InputText } from '~/libs/ui' import { SettingSection, SubscriptionsIcon } from '~/apps/accounts/src/lib' @@ -51,8 +50,6 @@ const Subscriptions: FC = (props: SubscriptionsProps) => { const [itemToRemove, setItemToRemove]: [UserTrait | undefined, Dispatch>] = useState() - const { mutate: mutateTraits }: { mutate: KeyedMutator } = useMemberTraits(props.profile.handle) - useEffect(() => { setSubscriptionsTypesData(props.subscriptionsTrait?.traits.data) }, [props.subscriptionsTrait]) @@ -132,7 +129,6 @@ const Subscriptions: FC = (props: SubscriptionsProps) => { ...updatedSubscriptionsTypesData || [], softwareTypeUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error updating subscription') @@ -161,7 +157,6 @@ const Subscriptions: FC = (props: SubscriptionsProps) => { ...subscriptionsTypesData || [], softwareTypeUpdate, ]) - mutateTraits() }) .catch(() => { toast.error('Error adding new subscription') @@ -201,7 +196,6 @@ const Subscriptions: FC = (props: SubscriptionsProps) => { .then(() => { toast.success('Subscription deleted successfully') setSubscriptionsTypesData(updatedSubscriptionsTypesData) - mutateTraits() }) .catch(() => { toast.error('Error deleting subscription') From fa96ddcd99415a704ea9bac10787d42356a0f43d Mon Sep 17 00:00:00 2001 From: Kiril Kartunov Date: Tue, 13 Jun 2023 11:21:27 +0300 Subject: [PATCH 2/2] MP-101 reset form after edit on devices --- src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx b/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx index f8f86b7f9..2f013a03b 100644 --- a/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx +++ b/src/apps/accounts/src/settings/tabs/tools/devices/Devices.tsx @@ -146,6 +146,7 @@ const Devices: FC = (props: DevicesProps) => { setSelectedDeviceManufacturerType(undefined) formElRef.current.reset() setIsEditMode(false) + setFormErrors({}) } function onRemoveItemConfirm(): void {