@xo-union/tk-component-header-nav
Version:
35 lines • 836 B
JavaScript
import { useState, useEffect, useCallback } from "react";
import { defaultService } from "@xo-union/sdk-membership";
const useMembershipData = loggedIn => {
const [isLoading, setIsLoading] = useState(true);
const [memberData, setMemberData] = useState(null);
useEffect(() => {
defaultService.getMember().then(_ref => {
let {
data
} = _ref;
setMemberData(data.member);
}).catch(() => {
setMemberData(null);
}).finally(() => {
setIsLoading(false);
});
}, [loggedIn]);
const logOut = useCallback(() => {
defaultService.logOut().then(() => {
setMemberData(null);
}).catch(() => {
/* noop */
});
}, []);
return {
data: {
member: memberData,
isLoading
},
actions: {
logOut
}
};
};
export default useMembershipData;