/** * Returns a callback used to call the authProvider.checkError() method * and an error from the dataProvider. If the authProvider rejects the call, * the hook logs the user out and shows a logged out notification. * * Used in the useDataProvider hook to check for access denied responses * (e.g. 401 or 403 responses) and trigger a logout. * * @see useLogout * @see useDataProvider * * @returns {Function} logoutIfAccessDenied callback * * @example * * import { useLogoutIfAccessDenied, useNotify, DataProviderContext } from '../app'; * * const FetchRestrictedResource = () => { * const dataProvider = useContext(DataProviderContext); * const logoutIfAccessDenied = useLogoutIfAccessDenied(); * const notify = useNotify() * useEffect(() => { * dataProvider.getOne('secret', { id: 123 }) * .catch(error => { * logoutIfAccessDenied(error); * notify('server error', 'warning'); * }) * }, []); * // ... * } */ declare const useLogoutIfAccessDenied: () => LogoutIfAccessDenied; /** * Call the authProvider.authError() method, using the error passed as argument. * If the authProvider rejects the call, logs the user out and shows a logged out notification. * * @param {Error} error An Error object (usually returned by the dataProvider) * @param {boolean} disableNotification Avoid showing a notification after the user is logged out. false by default. * * @return {Promise} Resolved to true if there was a logout, false otherwise */ declare type LogoutIfAccessDenied = (error?: any, /** @deprecated to disable the notification, authProvider.checkAuth() should return an object with an error property set to true */ disableNotification?: boolean) => Promise; export default useLogoutIfAccessDenied;