Files
bigcapital/packages/webapp/src/hooks/state/authentication.tsx
Ahmed Bouhuolia e380c598d3 fix: Showing the real mail address on email confirmation view (#445)
* fix: Showing the real mail address on email confirmation view

* chore: remove the unused hook
2024-05-15 14:03:58 +02:00

148 lines
3.2 KiB
TypeScript

// @ts-nocheck
import { useDispatch, useSelector } from 'react-redux';
import { useCallback } from 'react';
import { isAuthenticated } from '@/store/authentication/authentication.reducer';
import {
setAuthTenantId,
setAuthToken,
setAuthUserId,
setEmailConfirmed,
setLogin,
setOrganizationId,
setLocale,
} from '@/store/authentication/authentication.actions';
import { useQueryClient } from 'react-query';
import { removeCookie } from '@/utils';
/**
* Removes the authentication cookies.
*/
function removeAuthenticationCookies() {
removeCookie('token');
removeCookie('organization_id');
removeCookie('tenant_id');
removeCookie('authenticated_user_id');
removeCookie('locale');
}
export const useAuthActions = () => {
const dispatch = useDispatch();
const queryClient = useQueryClient();
return {
setLogin: useCallback((login) => dispatch(setLogin(login)), [dispatch]),
setLogout: useCallback(() => {
// Resets store state.
// dispatch(setStoreReset());
// Remove all cached queries.
queryClient.removeQueries();
removeAuthenticationCookies();
window.location.reload();
}, [queryClient]),
};
};
/**
* Retrieve whether the user is authenticated.
*/
export const useIsAuthenticated = () => {
return useSelector(isAuthenticated);
};
/**
* Retrieve the authentication token.
*/
export const useAuthToken = () => {
return useSelector((state) => state.authentication.token);
};
/**
* Retrieve the authentication user.
*/
export const useAuthUser = () => {
return useSelector((state) => ({}));
};
/**
* Retrieve the authenticated organization id.
*/
export const useAuthOrganizationId = () => {
return useSelector((state) => state.authentication.organizationId);
};
/**
* Retrieves the user's email verification status.
*/
export const useAuthUserVerified = () => {
return useSelector((state) => state.authentication.verified);
};
/**
* Retrieves the user's email address.
* @returns {string}
*/
export const useAuthUserVerifyEmail = () => {
return useSelector((state) => state.authentication.verifyEmail);
};
/**
* Sets the user's email verification status.
*/
export const useSetAuthEmailConfirmed = () => {
const dispatch = useDispatch();
return useCallback(
(verified?: boolean = true, email: string) =>
dispatch(setEmailConfirmed(verified, email)),
[dispatch],
);
};
export const useSetOrganizationId = () => {
const dispatch = useDispatch();
return useCallback(
(organizationId: string) => dispatch(setOrganizationId(organizationId)),
[dispatch],
);
};
export const useSetAuthToken = () => {
const dispatch = useDispatch();
return useCallback(
(authToken: string) => dispatch(setAuthToken(authToken)),
[dispatch],
);
};
export const useSetTenantId = () => {
const dispatch = useDispatch();
return useCallback(
(tenantId: string) => dispatch(setAuthTenantId(tenantId)),
[dispatch],
);
};
export const useSetAuthUserId = () => {
const dispatch = useDispatch();
return useCallback(
(userId: string) => dispatch(setAuthUserId(userId)),
[dispatch],
);
};
export const useSetLocale = () => {
const dispatch = useDispatch();
return useCallback(
(locale: string) => dispatch(setLocale(locale)),
[dispatch],
);
};