@redzone/taunt-logins-ui-react 0.0.24 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +42 -33
- package/dist/cjs/index.d.cts +2 -1
- package/dist/es/index.d.ts +2 -1
- package/dist/es/index.js +42 -33
- package/package.json +2 -1
package/dist/cjs/index.cjs
CHANGED
|
@@ -80,32 +80,9 @@ function LoadingView() {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
const
|
|
84
|
-
const TauntContext = react.createContext({
|
|
85
|
-
taunt: {},
|
|
86
|
-
tauntServiceEndpoint: "",
|
|
87
|
-
initialised: false,
|
|
88
|
-
loggedIn: false,
|
|
89
|
-
isLoading: false,
|
|
90
|
-
tauntUser: undefined,
|
|
91
|
-
loginDetails: undefined,
|
|
92
|
-
setLoginDetails: DefinitelyUndefined,
|
|
93
|
-
getMe: DefinitelyUndefined,
|
|
94
|
-
metamaskLogin: DefinitelyUndefined,
|
|
95
|
-
otpMagicLogin: DefinitelyUndefined,
|
|
96
|
-
telegramLogin: DefinitelyUndefined,
|
|
97
|
-
metaLogin: DefinitelyUndefined,
|
|
98
|
-
coinbaseLogin: DefinitelyUndefined,
|
|
99
|
-
refreshToken: DefinitelyUndefined,
|
|
100
|
-
getClaimrToken: DefinitelyUndefined,
|
|
101
|
-
getClaimrSkulls: DefinitelyUndefined,
|
|
102
|
-
getClaimrReferralCode: DefinitelyUndefined,
|
|
103
|
-
logout: ()=>{
|
|
104
|
-
/* empty */ }
|
|
105
|
-
});
|
|
83
|
+
const TauntContext = react.createContext(undefined);
|
|
106
84
|
function useTaunt() {
|
|
107
85
|
const ctx = react.useContext(TauntContext);
|
|
108
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
109
86
|
if (!ctx) {
|
|
110
87
|
throw new Error("useTaunt must be used within a TauntProvider");
|
|
111
88
|
}
|
|
@@ -575,18 +552,21 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
575
552
|
if (!tauntServiceEndpoint) {
|
|
576
553
|
throw new Error("TauntProvider: tauntServiceEndpoint is not provided");
|
|
577
554
|
}
|
|
578
|
-
console.log("🔧 Initializing TauntProvider with endpoint:", {
|
|
579
|
-
tauntServiceEndpoint,
|
|
580
|
-
magicKey
|
|
581
|
-
});
|
|
582
555
|
const [initialised, setInitialised] = react.useState(false);
|
|
583
556
|
const [tauntUser, setTauntUser] = react.useState();
|
|
584
557
|
const [loginDetails, setLoginDetails] = react.useState();
|
|
585
|
-
const taunt = react.useMemo(()=>new tauntLogins.TauntApi(tauntServiceEndpoint
|
|
558
|
+
const taunt = react.useMemo(()=>new tauntLogins.TauntApi(tauntServiceEndpoint), [
|
|
586
559
|
tauntServiceEndpoint
|
|
587
560
|
]);
|
|
588
561
|
const [isLoading, setIsLoading] = react.useState(false);
|
|
589
562
|
const loggedIn = !!tauntUser;
|
|
563
|
+
react.useEffect(()=>{
|
|
564
|
+
if (!tauntUser) {
|
|
565
|
+
setLoginDetails(undefined);
|
|
566
|
+
}
|
|
567
|
+
}, [
|
|
568
|
+
tauntUser
|
|
569
|
+
]);
|
|
590
570
|
const getMe = react.useCallback(async (force = false)=>{
|
|
591
571
|
if (!force && !loggedIn) return undefined;
|
|
592
572
|
return taunt.getLoggedInUser();
|
|
@@ -661,26 +641,35 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
661
641
|
return Promise.resolve(undefined);
|
|
662
642
|
}, []);
|
|
663
643
|
const logout = react.useCallback(()=>{
|
|
664
|
-
void taunt.logout().
|
|
644
|
+
void taunt.logout().finally(()=>{
|
|
665
645
|
setTauntUser(undefined);
|
|
666
646
|
});
|
|
667
647
|
}, [
|
|
668
648
|
taunt
|
|
669
649
|
]);
|
|
670
|
-
const refreshToken = react.useCallback(async (token)=>{
|
|
671
|
-
if (!token)
|
|
650
|
+
const refreshToken = react.useCallback(async (token, autoLogoutOnError = true)=>{
|
|
651
|
+
if (!token) {
|
|
652
|
+
if (autoLogoutOnError) {
|
|
653
|
+
logout();
|
|
654
|
+
}
|
|
655
|
+
return;
|
|
656
|
+
}
|
|
672
657
|
setIsLoading(true);
|
|
673
658
|
try {
|
|
674
659
|
await taunt.refresh(token);
|
|
675
660
|
return await refreshUser();
|
|
676
661
|
} catch (error) {
|
|
677
662
|
console.error("Failed to refresh token:", error);
|
|
663
|
+
if (autoLogoutOnError) {
|
|
664
|
+
logout();
|
|
665
|
+
}
|
|
678
666
|
} finally{
|
|
679
667
|
setIsLoading(false);
|
|
680
668
|
}
|
|
681
669
|
}, [
|
|
670
|
+
taunt,
|
|
682
671
|
refreshUser,
|
|
683
|
-
|
|
672
|
+
logout
|
|
684
673
|
]);
|
|
685
674
|
const withTaunt = react.useCallback(async (fn)=>{
|
|
686
675
|
if (loggedIn) {
|
|
@@ -699,6 +688,25 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
699
688
|
const getClaimrReferralCode = react.useCallback(()=>withTaunt((taunt)=>taunt.getClaimrReferralCode()), [
|
|
700
689
|
withTaunt
|
|
701
690
|
]);
|
|
691
|
+
const getAccessDetails = react.useCallback(async ()=>{
|
|
692
|
+
if (loginDetails) {
|
|
693
|
+
return loginDetails;
|
|
694
|
+
}
|
|
695
|
+
if (loggedIn) {
|
|
696
|
+
if (taunt.refreshToken) {
|
|
697
|
+
setLoginDetails(await refreshToken(taunt.refreshToken));
|
|
698
|
+
return loginDetails;
|
|
699
|
+
} else {
|
|
700
|
+
logout();
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
}, [
|
|
704
|
+
loggedIn,
|
|
705
|
+
loginDetails,
|
|
706
|
+
taunt.refreshToken,
|
|
707
|
+
refreshToken,
|
|
708
|
+
logout
|
|
709
|
+
]);
|
|
702
710
|
const safeSetLoginDetails = react.useCallback((props)=>loginWith(async ({ taunt })=>{
|
|
703
711
|
await taunt.setLoginDetails(props);
|
|
704
712
|
return props;
|
|
@@ -733,6 +741,7 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
733
741
|
loginDetails,
|
|
734
742
|
tauntUser,
|
|
735
743
|
setLoginDetails: safeSetLoginDetails,
|
|
744
|
+
getAccessDetails,
|
|
736
745
|
getMe,
|
|
737
746
|
getClaimrToken,
|
|
738
747
|
getClaimrSkulls,
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -99,6 +99,7 @@ interface ContextProps {
|
|
|
99
99
|
metaLogin: () => MaybeUser;
|
|
100
100
|
coinbaseLogin: () => MaybeUser;
|
|
101
101
|
getMe: () => MaybeUser;
|
|
102
|
+
getAccessDetails: () => Promise<TauntAccessDetails | undefined>;
|
|
102
103
|
setLoginDetails: (props: TauntAccessDetails) => MaybeUser;
|
|
103
104
|
refreshToken: (token: string) => MaybeUser;
|
|
104
105
|
getClaimrToken: () => MaybeString;
|
|
@@ -106,7 +107,7 @@ interface ContextProps {
|
|
|
106
107
|
getClaimrReferralCode: () => MaybeString;
|
|
107
108
|
logout: () => void;
|
|
108
109
|
}
|
|
109
|
-
declare const TauntContext: react.Context<ContextProps>;
|
|
110
|
+
declare const TauntContext: react.Context<ContextProps | undefined>;
|
|
110
111
|
declare function useTaunt(): ContextProps;
|
|
111
112
|
|
|
112
113
|
declare const TauntProvider: ({ children, tauntServiceEndpoint, magicKey }: {
|
package/dist/es/index.d.ts
CHANGED
|
@@ -99,6 +99,7 @@ interface ContextProps {
|
|
|
99
99
|
metaLogin: () => MaybeUser;
|
|
100
100
|
coinbaseLogin: () => MaybeUser;
|
|
101
101
|
getMe: () => MaybeUser;
|
|
102
|
+
getAccessDetails: () => Promise<TauntAccessDetails | undefined>;
|
|
102
103
|
setLoginDetails: (props: TauntAccessDetails) => MaybeUser;
|
|
103
104
|
refreshToken: (token: string) => MaybeUser;
|
|
104
105
|
getClaimrToken: () => MaybeString;
|
|
@@ -106,7 +107,7 @@ interface ContextProps {
|
|
|
106
107
|
getClaimrReferralCode: () => MaybeString;
|
|
107
108
|
logout: () => void;
|
|
108
109
|
}
|
|
109
|
-
declare const TauntContext: react.Context<ContextProps>;
|
|
110
|
+
declare const TauntContext: react.Context<ContextProps | undefined>;
|
|
110
111
|
declare function useTaunt(): ContextProps;
|
|
111
112
|
|
|
112
113
|
declare const TauntProvider: ({ children, tauntServiceEndpoint, magicKey }: {
|
package/dist/es/index.js
CHANGED
|
@@ -80,32 +80,9 @@ function LoadingView() {
|
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
const
|
|
84
|
-
const TauntContext = createContext({
|
|
85
|
-
taunt: {},
|
|
86
|
-
tauntServiceEndpoint: "",
|
|
87
|
-
initialised: false,
|
|
88
|
-
loggedIn: false,
|
|
89
|
-
isLoading: false,
|
|
90
|
-
tauntUser: undefined,
|
|
91
|
-
loginDetails: undefined,
|
|
92
|
-
setLoginDetails: DefinitelyUndefined,
|
|
93
|
-
getMe: DefinitelyUndefined,
|
|
94
|
-
metamaskLogin: DefinitelyUndefined,
|
|
95
|
-
otpMagicLogin: DefinitelyUndefined,
|
|
96
|
-
telegramLogin: DefinitelyUndefined,
|
|
97
|
-
metaLogin: DefinitelyUndefined,
|
|
98
|
-
coinbaseLogin: DefinitelyUndefined,
|
|
99
|
-
refreshToken: DefinitelyUndefined,
|
|
100
|
-
getClaimrToken: DefinitelyUndefined,
|
|
101
|
-
getClaimrSkulls: DefinitelyUndefined,
|
|
102
|
-
getClaimrReferralCode: DefinitelyUndefined,
|
|
103
|
-
logout: ()=>{
|
|
104
|
-
/* empty */ }
|
|
105
|
-
});
|
|
83
|
+
const TauntContext = createContext(undefined);
|
|
106
84
|
function useTaunt() {
|
|
107
85
|
const ctx = useContext(TauntContext);
|
|
108
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
109
86
|
if (!ctx) {
|
|
110
87
|
throw new Error("useTaunt must be used within a TauntProvider");
|
|
111
88
|
}
|
|
@@ -575,18 +552,21 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
575
552
|
if (!tauntServiceEndpoint) {
|
|
576
553
|
throw new Error("TauntProvider: tauntServiceEndpoint is not provided");
|
|
577
554
|
}
|
|
578
|
-
console.log("🔧 Initializing TauntProvider with endpoint:", {
|
|
579
|
-
tauntServiceEndpoint,
|
|
580
|
-
magicKey
|
|
581
|
-
});
|
|
582
555
|
const [initialised, setInitialised] = useState(false);
|
|
583
556
|
const [tauntUser, setTauntUser] = useState();
|
|
584
557
|
const [loginDetails, setLoginDetails] = useState();
|
|
585
|
-
const taunt = useMemo(()=>new TauntApi(tauntServiceEndpoint
|
|
558
|
+
const taunt = useMemo(()=>new TauntApi(tauntServiceEndpoint), [
|
|
586
559
|
tauntServiceEndpoint
|
|
587
560
|
]);
|
|
588
561
|
const [isLoading, setIsLoading] = useState(false);
|
|
589
562
|
const loggedIn = !!tauntUser;
|
|
563
|
+
useEffect(()=>{
|
|
564
|
+
if (!tauntUser) {
|
|
565
|
+
setLoginDetails(undefined);
|
|
566
|
+
}
|
|
567
|
+
}, [
|
|
568
|
+
tauntUser
|
|
569
|
+
]);
|
|
590
570
|
const getMe = useCallback(async (force = false)=>{
|
|
591
571
|
if (!force && !loggedIn) return undefined;
|
|
592
572
|
return taunt.getLoggedInUser();
|
|
@@ -661,26 +641,35 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
661
641
|
return Promise.resolve(undefined);
|
|
662
642
|
}, []);
|
|
663
643
|
const logout = useCallback(()=>{
|
|
664
|
-
void taunt.logout().
|
|
644
|
+
void taunt.logout().finally(()=>{
|
|
665
645
|
setTauntUser(undefined);
|
|
666
646
|
});
|
|
667
647
|
}, [
|
|
668
648
|
taunt
|
|
669
649
|
]);
|
|
670
|
-
const refreshToken = useCallback(async (token)=>{
|
|
671
|
-
if (!token)
|
|
650
|
+
const refreshToken = useCallback(async (token, autoLogoutOnError = true)=>{
|
|
651
|
+
if (!token) {
|
|
652
|
+
if (autoLogoutOnError) {
|
|
653
|
+
logout();
|
|
654
|
+
}
|
|
655
|
+
return;
|
|
656
|
+
}
|
|
672
657
|
setIsLoading(true);
|
|
673
658
|
try {
|
|
674
659
|
await taunt.refresh(token);
|
|
675
660
|
return await refreshUser();
|
|
676
661
|
} catch (error) {
|
|
677
662
|
console.error("Failed to refresh token:", error);
|
|
663
|
+
if (autoLogoutOnError) {
|
|
664
|
+
logout();
|
|
665
|
+
}
|
|
678
666
|
} finally{
|
|
679
667
|
setIsLoading(false);
|
|
680
668
|
}
|
|
681
669
|
}, [
|
|
670
|
+
taunt,
|
|
682
671
|
refreshUser,
|
|
683
|
-
|
|
672
|
+
logout
|
|
684
673
|
]);
|
|
685
674
|
const withTaunt = useCallback(async (fn)=>{
|
|
686
675
|
if (loggedIn) {
|
|
@@ -699,6 +688,25 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
699
688
|
const getClaimrReferralCode = useCallback(()=>withTaunt((taunt)=>taunt.getClaimrReferralCode()), [
|
|
700
689
|
withTaunt
|
|
701
690
|
]);
|
|
691
|
+
const getAccessDetails = useCallback(async ()=>{
|
|
692
|
+
if (loginDetails) {
|
|
693
|
+
return loginDetails;
|
|
694
|
+
}
|
|
695
|
+
if (loggedIn) {
|
|
696
|
+
if (taunt.refreshToken) {
|
|
697
|
+
setLoginDetails(await refreshToken(taunt.refreshToken));
|
|
698
|
+
return loginDetails;
|
|
699
|
+
} else {
|
|
700
|
+
logout();
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
}, [
|
|
704
|
+
loggedIn,
|
|
705
|
+
loginDetails,
|
|
706
|
+
taunt.refreshToken,
|
|
707
|
+
refreshToken,
|
|
708
|
+
logout
|
|
709
|
+
]);
|
|
702
710
|
const safeSetLoginDetails = useCallback((props)=>loginWith(async ({ taunt })=>{
|
|
703
711
|
await taunt.setLoginDetails(props);
|
|
704
712
|
return props;
|
|
@@ -733,6 +741,7 @@ const TauntProvider = ({ children, tauntServiceEndpoint, magicKey })=>{
|
|
|
733
741
|
loginDetails,
|
|
734
742
|
tauntUser,
|
|
735
743
|
setLoginDetails: safeSetLoginDetails,
|
|
744
|
+
getAccessDetails,
|
|
736
745
|
getMe,
|
|
737
746
|
getClaimrToken,
|
|
738
747
|
getClaimrSkulls,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redzone/taunt-logins-ui-react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.26",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/es/index.js",
|
|
6
6
|
"module": "./dist/es/index.js",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"postbuild": "npm run copy:styles",
|
|
31
31
|
"clean": "rm -rf dist",
|
|
32
32
|
"lint": "eslint .",
|
|
33
|
+
"npm:login": "npm login",
|
|
33
34
|
"prenpm:publish": "npm run build",
|
|
34
35
|
"npm:publish": "npm publish --access public",
|
|
35
36
|
"fb:login": "firebase login --reauth",
|