@redzone/taunt-logins-ui-react 0.0.4 → 0.0.6
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/App.d.ts +2 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/magic.d.ts +3 -0
- package/dist/lib/metamask.d.ts +3 -0
- package/dist/lib/tauntContext.d.ts +12 -0
- package/dist/lib/tauntProvider.d.ts +5 -0
- package/dist/main.d.ts +1 -0
- package/dist/taunt-logins-ui-react.d.ts +2 -0
- package/dist/taunt-logins-ui-react.js +3089 -0
- package/dist/taunt-logins-ui-react.js.map +1 -0
- package/dist/taunt-logins-ui-react.umd.cjs +7 -0
- package/dist/taunt-logins-ui-react.umd.cjs.map +1 -0
- package/package.json +25 -16
- package/.history/index_20251002141038.html +0 -13
- package/.history/index_20251002141344.html +0 -13
- package/.history/package_20251002154235.json +0 -32
- package/.history/package_20251002160110.json +0 -33
- package/.history/package_20251002161109.json +0 -33
- package/.history/package_20251002161124.json +0 -32
- package/.history/package_20251002161826.json +0 -32
- package/.history/package_20251002162139.json +0 -32
- package/.history/package_20251002162605.json +0 -35
- package/.history/package_20251002162619.json +0 -35
- package/.history/package_20251002162631.json +0 -35
- package/.history/package_20251002162639.json +0 -35
- package/.history/package_20251002162659.json +0 -35
- package/.history/package_20251002162811.json +0 -39
- package/.history/package_20251002162820.json +0 -39
- package/.history/src/App_20251002141038.tsx +0 -35
- package/.history/src/App_20251002142848.tsx +0 -15
- package/.history/src/App_20251002152540.tsx +0 -15
- package/.history/src/App_20251002152831.tsx +0 -17
- package/.history/src/App_20251002153145.tsx +0 -18
- package/.history/src/App_20251002153323.tsx +0 -25
- package/.history/src/App_20251002153420.tsx +0 -32
- package/.history/src/App_20251002153429.tsx +0 -33
- package/.history/src/App_20251002153457.tsx +0 -39
- package/.history/src/App_20251002153516.tsx +0 -39
- package/.history/src/App_20251002153520.tsx +0 -39
- package/.history/src/App_20251002153546.tsx +0 -41
- package/.history/src/App_20251002154625.tsx +0 -41
- package/.history/src/App_20251002154740.tsx +0 -47
- package/.history/src/App_20251002154812.tsx +0 -47
- package/.history/src/App_20251002154841.tsx +0 -47
- package/.history/src/App_20251002154915.tsx +0 -54
- package/.history/src/App_20251002160347.tsx +0 -54
- package/.history/src/lib/exports_20251002160004.ts +0 -0
- package/.history/src/lib/exports_20251002160045.ts +0 -3
- package/.history/src/lib/index_20251002162704.ts +0 -0
- package/.history/src/lib/index_20251002162712.ts +0 -1
- package/.history/src/lib/magic_20251002142829.tsx +0 -0
- package/.history/src/lib/magic_20251002142848.tsx +0 -44
- package/.history/src/lib/magic_20251002152540.tsx +0 -28
- package/.history/src/lib/magic_20251002152543.tsx +0 -28
- package/.history/src/lib/magic_20251002152546.tsx +0 -28
- package/.history/src/lib/magic_20251002152802.tsx +0 -47
- package/.history/src/lib/magic_20251002154740.tsx +0 -47
- package/.history/src/lib/magic_20251002155035.tsx +0 -47
- package/.history/src/lib/magic_20251002160411.tsx +0 -49
- package/.history/src/lib/magic_20251002160428.tsx +0 -49
- package/.history/src/lib/magic_20251002161028.tsx +0 -50
- package/.history/src/lib/magic_20251002162134.tsx +0 -50
- package/.history/src/lib/metamask_20251002141612.tsx +0 -0
- package/.history/src/lib/metamask_20251002142622.tsx +0 -38
- package/.history/src/lib/metamask_20251002142654.tsx +0 -41
- package/.history/src/lib/metamask_20251002142726.tsx +0 -44
- package/.history/src/lib/metamask_20251002142848.tsx +0 -0
- package/.history/src/lib/metamask_20251002152802.tsx +0 -28
- package/.history/src/lib/metamask_20251002153516.tsx +0 -27
- package/.history/src/lib/metamask_20251002154228.tsx +0 -27
- package/.history/src/lib/metamask_20251002154523.tsx +0 -27
- package/.history/src/lib/metamask_20251002162122.tsx +0 -27
- package/.history/src/lib/styling_20251002154448.css +0 -0
- package/.history/src/lib/styling_20251002154523.css +0 -19
- package/.history/src/lib/styling_20251002154531.css +0 -19
- package/.history/src/lib/styling_20251002154544.css +0 -20
- package/.history/src/lib/styling_20251002154548.css +0 -19
- package/.history/src/lib/styling_20251002160446.css +0 -20
- package/.history/src/lib/styling_20251002160511.css +0 -23
- package/.history/src/lib/styling_20251002160515.css +0 -24
- package/.history/src/lib/styling_20251002160815.css +0 -24
- package/.history/src/lib/styling_20251002160910.css +0 -24
- package/.history/src/lib/styling_20251002160915.css +0 -24
- package/.history/src/lib/styling_20251002160952.css +0 -24
- package/.history/src/lib/styling_20251002161001.css +0 -24
- package/.history/src/lib/styling_20251002161011.css +0 -24
- package/.history/src/lib/styling_20251002161016.css +0 -24
- package/.history/src/lib/styling_20251002161036.css +0 -25
- package/.history/src/lib/tauntContext_20251002142359.ts +0 -0
- package/.history/src/lib/tauntContext_20251002142622.ts +0 -17
- package/.history/src/lib/tauntContext_20251002152540.ts +0 -22
- package/.history/src/lib/tauntContext_20251002152802.ts +0 -22
- package/.history/src/lib/tauntProvider_20251002142503.tsx +0 -0
- package/.history/src/lib/tauntProvider_20251002142622.tsx +0 -15
- package/.history/src/lib/tauntProvider_20251002143158.tsx +0 -19
- package/.history/src/lib/tauntProvider_20251002144018.tsx +0 -19
- package/.history/src/lib/tauntProvider_20251002152234.tsx +0 -40
- package/.history/src/lib/tauntProvider_20251002152802.tsx +0 -40
- package/.history/src/lib/tauntProvider_20251002153101.tsx +0 -49
- package/.history/src/lib/taunt_20251002160026.ts +0 -0
- package/.history/src/lib/taunt_20251002160045.ts +0 -2
- package/.history/src/main_20251002141038.tsx +0 -10
- package/.history/src/main_20251002141444.tsx +0 -12
- package/.history/src/main_20251002160347.tsx +0 -12
- package/.history/vite.config_20251002141038.ts +0 -7
- package/.history/vite.config_20251002141323.ts +0 -10
- package/.prettierrc.mjs +0 -22
- package/eslint.config.js +0 -23
- package/index.html +0 -13
- package/public/vite.svg +0 -1
- package/src/App.css +0 -42
- package/src/App.tsx +0 -54
- package/src/index.css +0 -68
- package/src/lib/magic.tsx +0 -50
- package/src/lib/metamask.tsx +0 -27
- package/src/lib/styling.css +0 -25
- package/src/lib/tauntContext.ts +0 -22
- package/src/lib/tauntProvider.tsx +0 -49
- package/src/main.tsx +0 -12
- package/tsconfig.app.json +0 -28
- package/tsconfig.json +0 -7
- package/tsconfig.node.json +0 -26
- package/vite.config.ts +0 -10
package/eslint.config.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import js from '@eslint/js'
|
|
2
|
-
import globals from 'globals'
|
|
3
|
-
import reactHooks from 'eslint-plugin-react-hooks'
|
|
4
|
-
import reactRefresh from 'eslint-plugin-react-refresh'
|
|
5
|
-
import tseslint from 'typescript-eslint'
|
|
6
|
-
import { defineConfig, globalIgnores } from 'eslint/config'
|
|
7
|
-
|
|
8
|
-
export default defineConfig([
|
|
9
|
-
globalIgnores(['dist']),
|
|
10
|
-
{
|
|
11
|
-
files: ['**/*.{ts,tsx}'],
|
|
12
|
-
extends: [
|
|
13
|
-
js.configs.recommended,
|
|
14
|
-
tseslint.configs.recommended,
|
|
15
|
-
reactHooks.configs['recommended-latest'],
|
|
16
|
-
reactRefresh.configs.vite,
|
|
17
|
-
],
|
|
18
|
-
languageOptions: {
|
|
19
|
-
ecmaVersion: 2020,
|
|
20
|
-
globals: globals.browser,
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
])
|
package/index.html
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>redzone-taunt-logins-ui-react</title>
|
|
8
|
-
</head>
|
|
9
|
-
<body>
|
|
10
|
-
<div id="root"></div>
|
|
11
|
-
<script type="module" src="/src/main.tsx"></script>
|
|
12
|
-
</body>
|
|
13
|
-
</html>
|
package/public/vite.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/src/App.css
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
#root {
|
|
2
|
-
max-width: 1280px;
|
|
3
|
-
margin: 0 auto;
|
|
4
|
-
padding: 2rem;
|
|
5
|
-
text-align: center;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.logo {
|
|
9
|
-
height: 6em;
|
|
10
|
-
padding: 1.5em;
|
|
11
|
-
will-change: filter;
|
|
12
|
-
transition: filter 300ms;
|
|
13
|
-
}
|
|
14
|
-
.logo:hover {
|
|
15
|
-
filter: drop-shadow(0 0 2em #646cffaa);
|
|
16
|
-
}
|
|
17
|
-
.logo.react:hover {
|
|
18
|
-
filter: drop-shadow(0 0 2em #61dafbaa);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
@keyframes logo-spin {
|
|
22
|
-
from {
|
|
23
|
-
transform: rotate(0deg);
|
|
24
|
-
}
|
|
25
|
-
to {
|
|
26
|
-
transform: rotate(360deg);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
@media (prefers-reduced-motion: no-preference) {
|
|
31
|
-
a:nth-of-type(2) .logo {
|
|
32
|
-
animation: logo-spin infinite 20s linear;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.card {
|
|
37
|
-
padding: 2em;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.read-the-docs {
|
|
41
|
-
color: #888;
|
|
42
|
-
}
|
package/src/App.tsx
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// import "./App.css"
|
|
2
|
-
|
|
3
|
-
import { MagicEmailInput } from "./lib/magic"
|
|
4
|
-
import { MetaMaskButton } from "./lib/metamask"
|
|
5
|
-
import { useTaunt } from "./lib/tauntContext"
|
|
6
|
-
import { TauntProvider } from "./lib/tauntProvider"
|
|
7
|
-
|
|
8
|
-
function App() {
|
|
9
|
-
return (
|
|
10
|
-
<TauntProvider
|
|
11
|
-
tauntServiceEndpoint={import.meta.env.VITE_TAUNT_SERVICE_ENDPOINT}
|
|
12
|
-
magicKey={import.meta.env.VITE_MAGIC_KEY}>
|
|
13
|
-
<div
|
|
14
|
-
style={{
|
|
15
|
-
display: "flex",
|
|
16
|
-
flexDirection: "column",
|
|
17
|
-
gap: 8,
|
|
18
|
-
alignItems: "center"
|
|
19
|
-
}}>
|
|
20
|
-
<MagicEmailInput />
|
|
21
|
-
<MetaMaskButton />
|
|
22
|
-
<LogoutButton />
|
|
23
|
-
<TauntDeets />
|
|
24
|
-
</div>
|
|
25
|
-
</TauntProvider>
|
|
26
|
-
)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
function LogoutButton() {
|
|
30
|
-
const { deets } = useTaunt()
|
|
31
|
-
if (!deets) return null
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<button
|
|
35
|
-
className="ml-2 p-2 bg-blue-500 text-white rounded-md"
|
|
36
|
-
type="button">
|
|
37
|
-
Logout
|
|
38
|
-
</button>
|
|
39
|
-
)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function TauntDeets() {
|
|
43
|
-
const { deets } = useTaunt()
|
|
44
|
-
return (
|
|
45
|
-
<textarea
|
|
46
|
-
rows={5}
|
|
47
|
-
cols={50}
|
|
48
|
-
value={JSON.stringify(deets, null, 2)}
|
|
49
|
-
readOnly
|
|
50
|
-
/>
|
|
51
|
-
)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export default App
|
package/src/index.css
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
3
|
-
line-height: 1.5;
|
|
4
|
-
font-weight: 400;
|
|
5
|
-
|
|
6
|
-
color-scheme: light dark;
|
|
7
|
-
color: rgba(255, 255, 255, 0.87);
|
|
8
|
-
background-color: #242424;
|
|
9
|
-
|
|
10
|
-
font-synthesis: none;
|
|
11
|
-
text-rendering: optimizeLegibility;
|
|
12
|
-
-webkit-font-smoothing: antialiased;
|
|
13
|
-
-moz-osx-font-smoothing: grayscale;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
a {
|
|
17
|
-
font-weight: 500;
|
|
18
|
-
color: #646cff;
|
|
19
|
-
text-decoration: inherit;
|
|
20
|
-
}
|
|
21
|
-
a:hover {
|
|
22
|
-
color: #535bf2;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
body {
|
|
26
|
-
margin: 0;
|
|
27
|
-
display: flex;
|
|
28
|
-
place-items: center;
|
|
29
|
-
min-width: 320px;
|
|
30
|
-
min-height: 100vh;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
h1 {
|
|
34
|
-
font-size: 3.2em;
|
|
35
|
-
line-height: 1.1;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
button {
|
|
39
|
-
border-radius: 8px;
|
|
40
|
-
border: 1px solid transparent;
|
|
41
|
-
padding: 0.6em 1.2em;
|
|
42
|
-
font-size: 1em;
|
|
43
|
-
font-weight: 500;
|
|
44
|
-
font-family: inherit;
|
|
45
|
-
background-color: #1a1a1a;
|
|
46
|
-
cursor: pointer;
|
|
47
|
-
transition: border-color 0.25s;
|
|
48
|
-
}
|
|
49
|
-
button:hover {
|
|
50
|
-
border-color: #646cff;
|
|
51
|
-
}
|
|
52
|
-
button:focus,
|
|
53
|
-
button:focus-visible {
|
|
54
|
-
outline: 4px auto -webkit-focus-ring-color;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@media (prefers-color-scheme: light) {
|
|
58
|
-
:root {
|
|
59
|
-
color: #213547;
|
|
60
|
-
background-color: #ffffff;
|
|
61
|
-
}
|
|
62
|
-
a:hover {
|
|
63
|
-
color: #747bff;
|
|
64
|
-
}
|
|
65
|
-
button {
|
|
66
|
-
background-color: #f9f9f9;
|
|
67
|
-
}
|
|
68
|
-
}
|
package/src/lib/magic.tsx
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { useCallback, useMemo, useState } from "react"
|
|
2
|
-
|
|
3
|
-
import "./styling.css"
|
|
4
|
-
|
|
5
|
-
import { useTaunt } from "./tauntContext"
|
|
6
|
-
|
|
7
|
-
export const MagicEmailInput = ({
|
|
8
|
-
onEmail
|
|
9
|
-
}: {
|
|
10
|
-
onEmail?: (email: string) => void
|
|
11
|
-
}) => {
|
|
12
|
-
const { otpMagicLogin } = useTaunt()
|
|
13
|
-
const [email, setEmail] = useState<string>()
|
|
14
|
-
|
|
15
|
-
const initialised = useMemo(() => email !== undefined, [email])
|
|
16
|
-
|
|
17
|
-
const validEmail = useMemo(() => {
|
|
18
|
-
const validRegex =
|
|
19
|
-
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
|
|
20
|
-
return email?.match(validRegex) ? email : undefined
|
|
21
|
-
}, [email])
|
|
22
|
-
|
|
23
|
-
const runMagic = useCallback(() => {
|
|
24
|
-
if (!validEmail) return
|
|
25
|
-
|
|
26
|
-
if (onEmail) {
|
|
27
|
-
onEmail(email!)
|
|
28
|
-
} else {
|
|
29
|
-
otpMagicLogin(email!)
|
|
30
|
-
}
|
|
31
|
-
}, [validEmail, onEmail])
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<div style={{ display: "flex", flexDirection: "row", gap: 8 }}>
|
|
35
|
-
{initialised && !validEmail && (
|
|
36
|
-
<div style={{ color: "red" }}>Please enter a valid email</div>
|
|
37
|
-
)}
|
|
38
|
-
<input
|
|
39
|
-
class="rdz-input"
|
|
40
|
-
onChange={(e) => setEmail(e.target.value ? e.target.value : undefined)}
|
|
41
|
-
placeholder="Enter your email"
|
|
42
|
-
type="email"
|
|
43
|
-
value={email}
|
|
44
|
-
/>
|
|
45
|
-
<button class="rdz-button" onClick={runMagic} type="button">
|
|
46
|
-
Send Magic Link
|
|
47
|
-
</button>
|
|
48
|
-
</div>
|
|
49
|
-
)
|
|
50
|
-
}
|
package/src/lib/metamask.tsx
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { useCallback } from "react"
|
|
2
|
-
|
|
3
|
-
import "./styling.css"
|
|
4
|
-
|
|
5
|
-
import { useTaunt } from "./tauntContext"
|
|
6
|
-
|
|
7
|
-
export const MetaMaskButton = ({
|
|
8
|
-
openMetamask
|
|
9
|
-
}: {
|
|
10
|
-
openMetamask?: () => void
|
|
11
|
-
}) => {
|
|
12
|
-
const { metamaskLogin } = useTaunt()
|
|
13
|
-
|
|
14
|
-
const runMetamask = useCallback(() => {
|
|
15
|
-
if (openMetamask) {
|
|
16
|
-
openMetamask()
|
|
17
|
-
} else {
|
|
18
|
-
metamaskLogin()
|
|
19
|
-
}
|
|
20
|
-
}, [metamaskLogin, openMetamask])
|
|
21
|
-
|
|
22
|
-
return (
|
|
23
|
-
<button class="rdz-button" onClick={runMetamask}>
|
|
24
|
-
Login with Metamask
|
|
25
|
-
</button>
|
|
26
|
-
)
|
|
27
|
-
}
|
package/src/lib/styling.css
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
.rdz-button,
|
|
2
|
-
.rdz-input {
|
|
3
|
-
font-family: Avenir, Helvetica, Arial, sans-serif !important;
|
|
4
|
-
line-height: 1.5;
|
|
5
|
-
font-weight: 400 !important;
|
|
6
|
-
|
|
7
|
-
color: lightgray;
|
|
8
|
-
border-radius: 8px;
|
|
9
|
-
border: 1px solid transparent;
|
|
10
|
-
padding: 0.6em 1.2em;
|
|
11
|
-
font-size: 1em;
|
|
12
|
-
font-weight: 500;
|
|
13
|
-
font-family: inherit;
|
|
14
|
-
background-color: #1a1a1a;
|
|
15
|
-
cursor: pointer;
|
|
16
|
-
transition: border-color 0.25s;
|
|
17
|
-
|
|
18
|
-
&:hover {
|
|
19
|
-
border-color: #646cff;
|
|
20
|
-
}
|
|
21
|
-
&:focus,
|
|
22
|
-
&:focus-visible {
|
|
23
|
-
outline: 4px auto -webkit-focus-ring-color;
|
|
24
|
-
}
|
|
25
|
-
}
|
package/src/lib/tauntContext.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { createContext, useContext } from "react"
|
|
2
|
-
|
|
3
|
-
type ContextProps = {
|
|
4
|
-
tauntServiceEndpoint: string
|
|
5
|
-
deets?: { accessToken: string; refreshToken: string }
|
|
6
|
-
metamaskLogin: () => void
|
|
7
|
-
otpMagicLogin: (email: string) => void
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export const TauntContext = createContext<ContextProps>({
|
|
11
|
-
tauntServiceEndpoint: "",
|
|
12
|
-
metamaskLogin: () => {},
|
|
13
|
-
otpMagicLogin: () => {}
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
export function useTaunt() {
|
|
17
|
-
const ctx = useContext(TauntContext)
|
|
18
|
-
if (!ctx) {
|
|
19
|
-
throw new Error("useTaunt must be used within a TauntProvider")
|
|
20
|
-
}
|
|
21
|
-
return ctx
|
|
22
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
tauntMagicEmailOTPLogin,
|
|
3
|
-
tauntMetamaskLogin
|
|
4
|
-
} from "@redzone/taunt-logins"
|
|
5
|
-
import { useCallback, useState } from "react"
|
|
6
|
-
|
|
7
|
-
import { TauntContext } from "./tauntContext"
|
|
8
|
-
|
|
9
|
-
export const TauntProvider = ({
|
|
10
|
-
children,
|
|
11
|
-
tauntServiceEndpoint,
|
|
12
|
-
magicKey
|
|
13
|
-
}: {
|
|
14
|
-
children: React.ReactNode
|
|
15
|
-
tauntServiceEndpoint?: string
|
|
16
|
-
magicKey?: string
|
|
17
|
-
}) => {
|
|
18
|
-
const [deets, setDeets] = useState<{
|
|
19
|
-
accessToken: string
|
|
20
|
-
refreshToken: string
|
|
21
|
-
}>()
|
|
22
|
-
|
|
23
|
-
const otpMagicLogin = useCallback(
|
|
24
|
-
(email: string) => {
|
|
25
|
-
if (!magicKey) throw new Error("magicKey is required for OTP login")
|
|
26
|
-
|
|
27
|
-
tauntMagicEmailOTPLogin(tauntServiceEndpoint!, magicKey, email!).then(
|
|
28
|
-
setDeets
|
|
29
|
-
)
|
|
30
|
-
},
|
|
31
|
-
[tauntServiceEndpoint]
|
|
32
|
-
)
|
|
33
|
-
|
|
34
|
-
const metamaskLogin = useCallback(
|
|
35
|
-
() => tauntMetamaskLogin(tauntServiceEndpoint!).then(setDeets),
|
|
36
|
-
[tauntServiceEndpoint]
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
if (!tauntServiceEndpoint) {
|
|
40
|
-
return <div>tauntServiceEndpoint is required</div>
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return (
|
|
44
|
-
<TauntContext.Provider
|
|
45
|
-
value={{ tauntServiceEndpoint, deets, otpMagicLogin, metamaskLogin }}>
|
|
46
|
-
{children}
|
|
47
|
-
</TauntContext.Provider>
|
|
48
|
-
)
|
|
49
|
-
}
|
package/src/main.tsx
DELETED
package/tsconfig.app.json
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
4
|
-
"target": "ES2022",
|
|
5
|
-
"useDefineForClassFields": true,
|
|
6
|
-
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
7
|
-
"module": "ESNext",
|
|
8
|
-
"types": ["vite/client"],
|
|
9
|
-
"skipLibCheck": true,
|
|
10
|
-
|
|
11
|
-
/* Bundler mode */
|
|
12
|
-
"moduleResolution": "bundler",
|
|
13
|
-
"allowImportingTsExtensions": true,
|
|
14
|
-
"verbatimModuleSyntax": true,
|
|
15
|
-
"moduleDetection": "force",
|
|
16
|
-
"noEmit": true,
|
|
17
|
-
"jsx": "react-jsx",
|
|
18
|
-
|
|
19
|
-
/* Linting */
|
|
20
|
-
"strict": true,
|
|
21
|
-
"noUnusedLocals": true,
|
|
22
|
-
"noUnusedParameters": true,
|
|
23
|
-
"erasableSyntaxOnly": true,
|
|
24
|
-
"noFallthroughCasesInSwitch": true,
|
|
25
|
-
"noUncheckedSideEffectImports": true
|
|
26
|
-
},
|
|
27
|
-
"include": ["src"]
|
|
28
|
-
}
|
package/tsconfig.json
DELETED
package/tsconfig.node.json
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
-
"target": "ES2023",
|
|
5
|
-
"lib": ["ES2023"],
|
|
6
|
-
"module": "ESNext",
|
|
7
|
-
"types": ["node"],
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
|
|
10
|
-
/* Bundler mode */
|
|
11
|
-
"moduleResolution": "bundler",
|
|
12
|
-
"allowImportingTsExtensions": true,
|
|
13
|
-
"verbatimModuleSyntax": true,
|
|
14
|
-
"moduleDetection": "force",
|
|
15
|
-
"noEmit": true,
|
|
16
|
-
|
|
17
|
-
/* Linting */
|
|
18
|
-
"strict": true,
|
|
19
|
-
"noUnusedLocals": true,
|
|
20
|
-
"noUnusedParameters": true,
|
|
21
|
-
"erasableSyntaxOnly": true,
|
|
22
|
-
"noFallthroughCasesInSwitch": true,
|
|
23
|
-
"noUncheckedSideEffectImports": true
|
|
24
|
-
},
|
|
25
|
-
"include": ["vite.config.ts"]
|
|
26
|
-
}
|