{"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"}