diff --git a/packages/authentication/CHANGELOG.md b/packages/authentication/CHANGELOG.md index 85624015..a981779f 100644 --- a/packages/authentication/CHANGELOG.md +++ b/packages/authentication/CHANGELOG.md @@ -1,5 +1,11 @@ # @baseapp-frontend/authentication +## 4.0.4 + +### Patch Changes + +- Make sure the log out listener is loaded only once in useCurrentProfile + ## 4.0.3 ### Patch Changes diff --git a/packages/authentication/modules/profile/useCurrentProfile/index.ts b/packages/authentication/modules/profile/useCurrentProfile/index.ts index 7abf4f64..91d7cbde 100644 --- a/packages/authentication/modules/profile/useCurrentProfile/index.ts +++ b/packages/authentication/modules/profile/useCurrentProfile/index.ts @@ -1,7 +1,5 @@ 'use client' -import { useCallback, useEffect } from 'react' - import { LOGOUT_EVENT, ServerSideRenderingOption, @@ -27,6 +25,17 @@ const initialProfile = getProfileFromCookie() export const profileAtom = atom(initialProfile) +profileAtom.onMount = (setAtom) => { + const removeCurrentProfile = () => { + setAtom(null) + removeCookie(CURRENT_PROFILE_KEY) + } + eventEmitter.on(LOGOUT_EVENT, removeCurrentProfile) + return () => { + eventEmitter.off(LOGOUT_EVENT, removeCurrentProfile) + } +} + /** * By using `useCurrentProfile` with the `noSSR` option set to `false`, causes Next.js to dynamically render the affected pages, instead of statically rendering them. */ @@ -54,15 +63,6 @@ const useCurrentProfile = ({ noSSR = true }: ServerSideRenderingOption = {}) => } } - const removeCurrentProfile = useCallback(() => setCurrentProfile(null), []) - - useEffect(() => { - eventEmitter.on(LOGOUT_EVENT, removeCurrentProfile) - return () => { - eventEmitter.off(LOGOUT_EVENT, removeCurrentProfile) - } - }, []) - if (isSSR) { return { currentProfile: getProfileFromCookie({ noSSR }), diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 9c4bed2c..e482d38a 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/components +## 0.0.25 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/authentication@4.0.4 + ## 0.0.24 ### Patch Changes