fix: call checkOrSetAccessToken when app access mode is PUBLIC (#23195)
Co-authored-by: crazywoola <427733928@qq.com>
This commit is contained in:
@@ -46,6 +46,12 @@ const OPTION_MAP = {
|
|||||||
? `,
|
? `,
|
||||||
baseUrl: '${url}${basePath}'`
|
baseUrl: '${url}${basePath}'`
|
||||||
: ''},
|
: ''},
|
||||||
|
inputs: {
|
||||||
|
// You can define the inputs from the Start node here
|
||||||
|
// key is the variable name
|
||||||
|
// e.g.
|
||||||
|
// name: "NAME"
|
||||||
|
},
|
||||||
systemVariables: {
|
systemVariables: {
|
||||||
// user_id: 'YOU CAN DEFINE USER ID HERE',
|
// user_id: 'YOU CAN DEFINE USER ID HERE',
|
||||||
// conversation_id: 'YOU CAN DEFINE CONVERSATION ID HERE, IT MUST BE A VALID UUID',
|
// conversation_id: 'YOU CAN DEFINE CONVERSATION ID HERE, IT MUST BE A VALID UUID',
|
||||||
|
@@ -61,22 +61,18 @@ const WebAppStoreProvider: FC<PropsWithChildren> = ({ children }) => {
|
|||||||
const pathname = usePathname()
|
const pathname = usePathname()
|
||||||
const searchParams = useSearchParams()
|
const searchParams = useSearchParams()
|
||||||
const redirectUrlParam = searchParams.get('redirect_url')
|
const redirectUrlParam = searchParams.get('redirect_url')
|
||||||
const session = searchParams.get('session')
|
|
||||||
const sysUserId = searchParams.get('sys.user_id')
|
// Compute shareCode directly
|
||||||
const [shareCode, setShareCode] = useState<string | null>(null)
|
const shareCode = getShareCodeFromRedirectUrl(redirectUrlParam) || getShareCodeFromPathname(pathname)
|
||||||
useEffect(() => {
|
updateShareCode(shareCode)
|
||||||
const shareCodeFromRedirect = getShareCodeFromRedirectUrl(redirectUrlParam)
|
|
||||||
const shareCodeFromPathname = getShareCodeFromPathname(pathname)
|
|
||||||
const newShareCode = shareCodeFromRedirect || shareCodeFromPathname
|
|
||||||
setShareCode(newShareCode)
|
|
||||||
updateShareCode(newShareCode)
|
|
||||||
}, [pathname, redirectUrlParam, updateShareCode])
|
|
||||||
const { isFetching, data: accessModeResult } = useGetWebAppAccessModeByCode(shareCode)
|
const { isFetching, data: accessModeResult } = useGetWebAppAccessModeByCode(shareCode)
|
||||||
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(true)
|
const [isFetchingAccessToken, setIsFetchingAccessToken] = useState(false)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (accessModeResult?.accessMode) {
|
if (accessModeResult?.accessMode) {
|
||||||
updateWebAppAccessMode(accessModeResult.accessMode)
|
updateWebAppAccessMode(accessModeResult.accessMode)
|
||||||
if (accessModeResult?.accessMode === AccessMode.PUBLIC && session && sysUserId) {
|
if (accessModeResult.accessMode === AccessMode.PUBLIC) {
|
||||||
setIsFetchingAccessToken(true)
|
setIsFetchingAccessToken(true)
|
||||||
checkOrSetAccessToken(shareCode).finally(() => {
|
checkOrSetAccessToken(shareCode).finally(() => {
|
||||||
setIsFetchingAccessToken(false)
|
setIsFetchingAccessToken(false)
|
||||||
@@ -86,7 +82,8 @@ const WebAppStoreProvider: FC<PropsWithChildren> = ({ children }) => {
|
|||||||
setIsFetchingAccessToken(false)
|
setIsFetchingAccessToken(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [accessModeResult, updateWebAppAccessMode, setIsFetchingAccessToken, shareCode, session, sysUserId])
|
}, [accessModeResult, updateWebAppAccessMode, shareCode])
|
||||||
|
|
||||||
if (isFetching || isFetchingAccessToken) {
|
if (isFetching || isFetchingAccessToken) {
|
||||||
return <div className='flex h-full w-full items-center justify-center'>
|
return <div className='flex h-full w-full items-center justify-center'>
|
||||||
<Loading />
|
<Loading />
|
||||||
|
Reference in New Issue
Block a user