@luxfi/core 4.4.1 → 4.4.3

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.
@@ -6,16 +6,16 @@ import { useAuth } from '@hanzo/auth/service'
6
6
  const AuthListener = () => {
7
7
  const auth = useAuth()
8
8
 
9
- useEffect(() => {
10
- if (!!localStorage.getItem('auth-token')) {
11
- console.log("Detected auth-token cookie... Logging in...")
12
- auth.loginWithCustomToken(localStorage.getItem('auth-token') as string)
13
- }
9
+ const requestAuthToken = () => {
10
+ const childFrame = document.getElementById('login') as HTMLIFrameElement
11
+ childFrame?.contentWindow?.postMessage(true, process.env.NEXT_PUBLIC_LOGIN_SITE_URL ?? '')
12
+ }
14
13
 
14
+ useEffect(() => {
15
15
  const handleMessage = (event: any) => {
16
16
  if (event.origin === process.env.NEXT_PUBLIC_AUTH_ORIGIN) {
17
17
  const token = event.data
18
- localStorage.setItem('auth-token', token)
18
+ auth.loginWithCustomToken(token)
19
19
  }
20
20
  }
21
21
 
@@ -26,7 +26,7 @@ const AuthListener = () => {
26
26
  }
27
27
  }, [])
28
28
 
29
- return (<></>)
29
+ return (<iframe id='login' onLoad={requestAuthToken} src={process.env.NEXT_PUBLIC_LOGIN_SITE_URL}/>)
30
30
  }
31
31
 
32
32
  export default AuthListener
@@ -1,3 +1,5 @@
1
+ 'use client'
2
+
1
3
  import Link from 'next/link'
2
4
  import Autoplay from 'embla-carousel-autoplay'
3
5
 
@@ -9,6 +11,7 @@ import { Logo } from '..'
9
11
  import LuxLogo from '../icons/lux-logo'
10
12
  import { legal } from '../../site-def/footer'
11
13
  import domains from './common-auth-domains'
14
+ import { useEffect } from 'react'
12
15
 
13
16
  const LoginPanel: React.FC<{
14
17
  close: () => void
@@ -27,13 +30,28 @@ const LoginPanel: React.FC<{
27
30
  const privacyPolicyUrl = legal.find(({title}) => title === 'Privacy Policy')?.href || ''
28
31
 
29
32
  const onLogin = (token: string) => {
30
- for (const { id, url } of domains) {
31
- const childFrame = document.getElementById(id) as HTMLIFrameElement
32
- childFrame?.contentWindow?.postMessage(token, url)
33
+ localStorage.setItem('auth-token', token)
34
+ for (const { url } of domains) {
35
+ parent?.contentWindow?.postMessage(token, url)
33
36
  }
34
37
  }
35
38
 
36
- return (<>
39
+ useEffect(() => {
40
+ const handleMessage = (event: any) => {
41
+ if (domains.includes(event.origin)) {
42
+ const token = localStorage.getItem('auth-token')
43
+ parent.contentWindow?.postMessage(token, event.origin)
44
+ }
45
+ }
46
+
47
+ window.addEventListener('message', handleMessage)
48
+
49
+ return () => {
50
+ window.removeEventListener('message', handleMessage)
51
+ }
52
+ }, [])
53
+
54
+ return (
37
55
  <div className={cn('grid grid-cols-1 md:grid-cols-2', className)}>
38
56
  <div className='hidden md:flex w-full h-full bg-level-1 flex-row items-end justify-end overflow-y-auto min-h-screen'>
39
57
  <div className='h-full w-full max-w-[750px] px-8 pt-0'>
@@ -86,12 +104,7 @@ const LoginPanel: React.FC<{
86
104
  </div>
87
105
  </div>
88
106
  </div>
89
- <div className="hidden">
90
- {domains.map(({ id, url }) => (
91
- <iframe key={id} id={id} src={`${url}/login`} />
92
- ))}
93
- </div>
94
- </>)
107
+ )
95
108
  }
96
109
 
97
110
  export default LoginPanel
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luxfi/core",
3
- "version": "4.4.1",
3
+ "version": "4.4.3",
4
4
  "description": "Library that contains shared UI primitives, support for a common design system, and other boilerplate support.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/",
@@ -39,8 +39,8 @@
39
39
  "./conf": "./conf/index.ts"
40
40
  },
41
41
  "dependencies": {
42
- "@hanzo/auth": "2.4.1",
43
- "@hanzo/commerce": "6.4.1",
42
+ "@hanzo/auth": "2.4.2",
43
+ "@hanzo/commerce": "6.4.2",
44
44
  "@hanzo/ui": "3.6.3",
45
45
  "@next/third-parties": "^14.1.0",
46
46
  "embla-carousel-autoplay": "^8.0.1",