{"version":3,"file":"use_signin_url-ClqhxHoz.js","sources":["../../src/lib/use_signin_url.ts"],"sourcesContent":["import React from 'react';\n\nimport once from 'lodash/once';\n\nimport type {DropboxAuth} from '@dropbox/api-v2-client';\n\nimport {replayStorage} from './storage';\nimport {getRoleLoginParam} from './url_utils';\nimport {useOnce} from './use_once';\nimport {getOauthRedirectUrlAndState} from './utils';\nimport {useReelAppGlobalState} from '../context';\n\nconst makeAuthenticationUrl = once(async (dropboxAuth: DropboxAuth) => {\n  const {redirect_url, redirect_state} = getOauthRedirectUrlAndState();\n  const url = await dropboxAuth.getAuthenticationUrl(\n    redirect_url,\n    redirect_state,\n    'code',\n    'offline',\n    undefined,\n    undefined,\n    true,\n  );\n  const urlObj = new URL(url.toString());\n  const roleLoginParam = getRoleLoginParam();\n  if (roleLoginParam) {\n    urlObj.searchParams.set('require_role', roleLoginParam);\n  }\n  replayStorage.storeCodeVerifierForPKCE(dropboxAuth.getCodeVerifier());\n  return urlObj.toString();\n});\n\nexport const useSigninUrl = () => {\n  const sessionContext = useReelAppGlobalState();\n  const {dropboxAuth} = sessionContext;\n  const [authUrl, setAuthUrl] = React.useState<null | string>(null);\n\n  useOnce(() => {\n    (async () => {\n      setAuthUrl(await makeAuthenticationUrl(dropboxAuth));\n    })();\n  });\n\n  return authUrl;\n};\n"],"names":["makeAuthenticationUrl","once","dropboxAuth","redirect_url","redirect_state","getOauthRedirectUrlAndState","url","urlObj","roleLoginParam","getRoleLoginParam","replayStorage","useSigninUrl","sessionContext","useReelAppGlobalState","authUrl","setAuthUrl","React","useOnce"],"mappings":"gZAYA,MAAMA,EAAwBC,EAAK,MAAOC,GAA6B,CACrE,KAAM,CAAC,aAAAC,EAAc,eAAAC,CAAc,EAAIC,EAA4B,EAC7DC,EAAM,MAAMJ,EAAY,qBAC5BC,EACAC,EACA,OACA,UACA,OACA,OACA,EAAA,EAEIG,EAAS,IAAI,IAAID,EAAI,SAAU,CAAA,EAC/BE,EAAiBC,IACvB,OAAID,GACKD,EAAA,aAAa,IAAI,eAAgBC,CAAc,EAE1CE,EAAA,yBAAyBR,EAAY,gBAAiB,CAAA,EAC7DK,EAAO,UAChB,CAAC,EAEYI,EAAe,IAAM,CAChC,MAAMC,EAAiBC,IACjB,CAAC,YAAAX,CAAe,EAAAU,EAChB,CAACE,EAASC,CAAU,EAAIC,EAAM,SAAwB,IAAI,EAEhE,OAAAC,EAAQ,IAAM,EACX,SACYF,EAAA,MAAMf,EAAsBE,CAAW,CAAC,IAClD,CACJ,EAEMY,CACT"}