fix: disable items in publish dropdown menu panel if web app access not set

pull/19898/head
NFish 1 year ago
parent 0301bd3ac1
commit ddb3e32c1a

@ -89,7 +89,7 @@ const AppPublisher = ({
const appMode = (appDetail?.mode !== 'completion' && appDetail?.mode !== 'workflow') ? 'chat' : appDetail.mode const appMode = (appDetail?.mode !== 'completion' && appDetail?.mode !== 'workflow') ? 'chat' : appDetail.mode
const appURL = `${appBaseURL}${basePath}/${appMode}/${accessToken}` const appURL = `${appBaseURL}${basePath}/${appMode}/${accessToken}`
const isChatApp = ['chat', 'agent-chat', 'completion'].includes(appDetail?.mode || '') const isChatApp = ['chat', 'agent-chat', 'completion'].includes(appDetail?.mode || '')
const { data: useCanAccessApp, isLoading: isGettingUserCanAccessApp, refetch } = useGetUserCanAccessApp({ appId: appDetail?.id, enabled: false }) const { data: userCanAccessApp, isLoading: isGettingUserCanAccessApp, refetch } = useGetUserCanAccessApp({ appId: appDetail?.id, enabled: false })
const { data: appAccessSubjects, isLoading: isGettingAppWhiteListSubjects } = useAppWhiteListSubjects(appDetail?.id, open && appDetail?.access_mode === AccessMode.SPECIFIC_GROUPS_MEMBERS) const { data: appAccessSubjects, isLoading: isGettingAppWhiteListSubjects } = useAppWhiteListSubjects(appDetail?.id, open && appDetail?.access_mode === AccessMode.SPECIFIC_GROUPS_MEMBERS)
useEffect(() => { useEffect(() => {
@ -287,9 +287,10 @@ const AppPublisher = ({
{!isAppAccessSet && <p className='system-xs-regular mt-1 text-text-warning'>{t('app.publishApp.notSetDesc')}</p>} {!isAppAccessSet && <p className='system-xs-regular mt-1 text-text-warning'>{t('app.publishApp.notSetDesc')}</p>}
</div> </div>
<div className='flex flex-col gap-y-1 border-t-[0.5px] border-t-divider-regular p-4 pt-3'> <div className='flex flex-col gap-y-1 border-t-[0.5px] border-t-divider-regular p-4 pt-3'>
<Tooltip triggerClassName='flex' disabled={useCanAccessApp?.result} popupContent={t('app.noAccessPermission')} asChild={false}> <Tooltip triggerClassName='flex' disabled={userCanAccessApp?.result} popupContent={t('app.noAccessPermission')} asChild={false}>
<SuggestedAction <SuggestedAction
disabled={!publishedAt} className='flex-1'
disabled={!publishedAt || !userCanAccessApp?.result}
link={appURL} link={appURL}
icon={<RiPlayCircleLine className='h-4 w-4' />} icon={<RiPlayCircleLine className='h-4 w-4' />}
> >
@ -298,9 +299,10 @@ const AppPublisher = ({
</Tooltip> </Tooltip>
{appDetail?.mode === 'workflow' || appDetail?.mode === 'completion' {appDetail?.mode === 'workflow' || appDetail?.mode === 'completion'
? ( ? (
<Tooltip triggerClassName='flex' disabled={useCanAccessApp?.result} popupContent={t('app.noAccessPermission')} asChild={false}> <Tooltip triggerClassName='flex' disabled={userCanAccessApp?.result} popupContent={t('app.noAccessPermission')} asChild={false}>
<SuggestedAction <SuggestedAction
disabled={!publishedAt} className='flex-1'
disabled={!publishedAt || !userCanAccessApp?.result}
link={`${appURL}${appURL.includes('?') ? '&' : '?'}mode=batch`} link={`${appURL}${appURL.includes('?') ? '&' : '?'}mode=batch`}
icon={<RiPlayList2Line className='h-4 w-4' />} icon={<RiPlayList2Line className='h-4 w-4' />}
> >
@ -320,44 +322,41 @@ const AppPublisher = ({
{t('workflow.common.embedIntoSite')} {t('workflow.common.embedIntoSite')}
</SuggestedAction> </SuggestedAction>
)} )}
<Tooltip triggerClassName='flex' disabled={useCanAccessApp?.result} popupContent={t('app.noAccessPermission')} asChild={false}> <Tooltip triggerClassName='flex' disabled={userCanAccessApp?.result} popupContent={t('app.noAccessPermission')} asChild={false}>
<SuggestedAction <SuggestedAction
className='flex-1'
onClick={() => { onClick={() => {
publishedAt && handleOpenInExplore() publishedAt && handleOpenInExplore()
}} }}
disabled={!publishedAt} disabled={!publishedAt || !userCanAccessApp?.result}
icon={<RiPlanetLine className='h-4 w-4' />} icon={<RiPlanetLine className='h-4 w-4' />}
> >
{t('workflow.common.openInExplore')} {t('workflow.common.openInExplore')}
</SuggestedAction> </SuggestedAction>
</Tooltip> </Tooltip>
<div className='flex'> <SuggestedAction
<SuggestedAction disabled={!publishedAt}
disabled={!publishedAt} link='./develop'
link='./develop' icon={<RiTerminalBoxLine className='h-4 w-4' />}
icon={<RiTerminalBoxLine className='h-4 w-4' />} >
> {t('workflow.common.accessAPIReference')}
{t('workflow.common.accessAPIReference')} </SuggestedAction>
</SuggestedAction>
</div>
{appDetail?.mode === 'workflow' && ( {appDetail?.mode === 'workflow' && (
<div className='flex' > <WorkflowToolConfigureButton
<WorkflowToolConfigureButton disabled={!publishedAt}
disabled={!publishedAt} published={!!toolPublished}
published={!!toolPublished} detailNeedUpdate={!!toolPublished && published}
detailNeedUpdate={!!toolPublished && published} workflowAppId={appDetail?.id}
workflowAppId={appDetail?.id} icon={{
icon={{ content: (appDetail.icon_type === 'image' ? '🤖' : appDetail?.icon) || '🤖',
content: (appDetail.icon_type === 'image' ? '🤖' : appDetail?.icon) || '🤖', background: (appDetail.icon_type === 'image' ? appDefaultIconBackground : appDetail?.icon_background) || appDefaultIconBackground,
background: (appDetail.icon_type === 'image' ? appDefaultIconBackground : appDetail?.icon_background) || appDefaultIconBackground, }}
}} name={appDetail?.name}
name={appDetail?.name} description={appDetail?.description}
description={appDetail?.description} inputs={inputs}
inputs={inputs} handlePublish={handlePublish}
handlePublish={handlePublish} onRefreshData={onRefreshData}
onRefreshData={onRefreshData} />
/>
</div>
)} )}
</div> </div>
</>} </>}

Loading…
Cancel
Save