|
|
|
@@ -61,22 +61,18 @@ const WebAppStoreProvider: FC<PropsWithChildren> = ({ children }) => { |
|
|
|
const pathname = usePathname() |
|
|
|
const searchParams = useSearchParams() |
|
|
|
const redirectUrlParam = searchParams.get('redirect_url') |
|
|
|
const session = searchParams.get('session') |
|
|
|
const sysUserId = searchParams.get('sys.user_id') |
|
|
|
const [shareCode, setShareCode] = useState<string | null>(null) |
|
|
|
useEffect(() => { |
|
|
|
const shareCodeFromRedirect = getShareCodeFromRedirectUrl(redirectUrlParam) |
|
|
|
const shareCodeFromPathname = getShareCodeFromPathname(pathname) |
|
|
|
const newShareCode = shareCodeFromRedirect || shareCodeFromPathname |
|
|
|
setShareCode(newShareCode) |
|
|
|
updateShareCode(newShareCode) |
|
|
|
}, [pathname, redirectUrlParam, updateShareCode]) |
|
|
|
|
|
|
|
// Compute shareCode directly |
|
|
|
const shareCode = getShareCodeFromRedirectUrl(redirectUrlParam) || getShareCodeFromPathname(pathname) |
|
|
|
updateShareCode(shareCode) |
|
|
|
|
|
|
|
const { isFetching, data: accessModeResult } = useGetWebAppAccessModeByCode(shareCode) |
|
|
|
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(true) |
|
|
|
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(false) |
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
if (accessModeResult?.accessMode) { |
|
|
|
updateWebAppAccessMode(accessModeResult.accessMode) |
|
|
|
if (accessModeResult?.accessMode === AccessMode.PUBLIC && session && sysUserId) { |
|
|
|
if (accessModeResult.accessMode === AccessMode.PUBLIC) { |
|
|
|
setIsFetchingAccessToken(true) |
|
|
|
checkOrSetAccessToken(shareCode).finally(() => { |
|
|
|
setIsFetchingAccessToken(false) |
|
|
|
@@ -86,7 +82,8 @@ const WebAppStoreProvider: FC<PropsWithChildren> = ({ children }) => { |
|
|
|
setIsFetchingAccessToken(false) |
|
|
|
} |
|
|
|
} |
|
|
|
}, [accessModeResult, updateWebAppAccessMode, setIsFetchingAccessToken, shareCode, session, sysUserId]) |
|
|
|
}, [accessModeResult, updateWebAppAccessMode, shareCode]) |
|
|
|
|
|
|
|
if (isFetching || isFetchingAccessToken) { |
|
|
|
return <div className='flex h-full w-full items-center justify-center'> |
|
|
|
<Loading /> |