| 123456789101112131415161718192021222324252627282930313233343536 | 
							- 'use client'
 - import { useEffect } from 'react'
 - 
 - export const useOAuthCallback = () => {
 -   useEffect(() => {
 -     if (window.opener) {
 -       window.opener.postMessage({
 -         type: 'oauth_callback',
 -       }, '*')
 -       window.close()
 -     }
 -   }, [])
 - }
 - 
 - export const openOAuthPopup = (url: string, callback: () => void) => {
 -   const width = 600
 -   const height = 600
 -   const left = window.screenX + (window.outerWidth - width) / 2
 -   const top = window.screenY + (window.outerHeight - height) / 2
 - 
 -   const popup = window.open(
 -     url,
 -     'OAuth',
 -     `width=${width},height=${height},left=${left},top=${top},scrollbars=yes`,
 -   )
 - 
 -   const handleMessage = (event: MessageEvent) => {
 -     if (event.data?.type === 'oauth_callback') {
 -       window.removeEventListener('message', handleMessage)
 -       callback()
 -     }
 -   }
 - 
 -   window.addEventListener('message', handleMessage)
 -   return popup
 - }
 
 
  |