Skip to content

Commit 4d10e9b

Browse files
committed
refactor(recoverAccount): adapt recoverAccount to changes
1 parent e79fc35 commit 4d10e9b

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/index.tsx

+17-9
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ const defaultSettings = {
3939

4040
const errors = {
4141
noUserFound: 'No current user found - are you logged in?',
42+
noUserTokenFound: 'no user token found',
43+
noRecoveryTokenFound: 'no recovery token found',
4244
};
4345

4446
type MaybeUserPromise = Promise<User | undefined>;
@@ -61,10 +63,7 @@ export type ReactNetlifyIdentityAPI = {
6163
) => MaybeUserPromise;
6264
logoutUser: () => MaybeUserPromise;
6365
requestPasswordRecovery: (email: string) => Promise<void>;
64-
recoverAccount: (
65-
token: string,
66-
remember?: boolean | undefined
67-
) => Promise<User>;
66+
recoverAccount: (remember?: boolean | undefined) => MaybeUserPromise;
6867
updateUser: (fields: { data: object }) => MaybeUserPromise;
6968
getFreshJWT: () => Promise<string>;
7069
authedFetch: {
@@ -190,7 +189,7 @@ export function useNetlifyIdentity(
190189
) =>
191190
goTrueInstance.signup(email, password, data).then(user => {
192191
if (directLogin) {
193-
_setUser(user);
192+
return _setUser(user);
194193
}
195194

196195
return user;
@@ -210,9 +209,18 @@ export function useNetlifyIdentity(
210209
);
211210

212211
const recoverAccount = useCallback(
213-
(token: string, remember?: boolean | undefined) =>
214-
goTrueInstance.recover(token, remember),
215-
[goTrueInstance]
212+
(remember?: boolean | undefined) => {
213+
if (!param.token) {
214+
throw new Error(errors.noRecoveryTokenFound);
215+
}
216+
217+
return goTrueInstance.recover(param.token, remember).then(user => {
218+
// clean up consumed token
219+
setParam(defaultParam);
220+
return _setUser(user);
221+
});
222+
},
223+
[goTrueInstance, _setUser, param]
216224
);
217225

218226
const updateUser = useCallback(
@@ -249,7 +257,7 @@ export function useNetlifyIdentity(
249257
options: RequestInit = {}
250258
) => {
251259
if (!user?.token?.access_token) {
252-
throw new Error('no user token found');
260+
throw new Error(errors.noUserTokenFound);
253261
}
254262

255263
const defaultObj = {

0 commit comments

Comments
 (0)