|
'use client'
|
|
import type { FC } from 'react'
|
|
import React, { useEffect } from 'react'
|
|
import cn from 'classnames'
|
|
import type { IMainProps } from '@/app/components/share/chat'
|
|
import Main from '@/app/components/share/chatbot'
|
|
import Loading from '@/app/components/base/loading'
|
|
import { fetchSystemFeatures } from '@/service/share'
|
|
import LogoSite from '@/app/components/base/logo/logo-site'
|
|
|
|
const Chatbot: FC<IMainProps> = () => {
|
|
const [isSSOEnforced, setIsSSOEnforced] = React.useState(true)
|
|
const [loading, setLoading] = React.useState(true)
|
|
|
|
useEffect(() => {
|
|
fetchSystemFeatures().then((res) => {
|
|
setIsSSOEnforced(res.sso_enforced_for_web)
|
|
setLoading(false)
|
|
})
|
|
}, [])
|
|
|
|
return (
|
|
<>
|
|
{
|
|
loading
|
|
? (
|
|
<div className="flex items-center justify-center h-full" >
|
|
<div className={
|
|
cn(
|
|
'flex flex-col items-center w-full grow items-center justify-center',
|
|
'px-6',
|
|
'md:px-[108px]',
|
|
)
|
|
}>
|
|
<Loading type='area' />
|
|
</div>
|
|
</div >
|
|
)
|
|
: (
|
|
<>
|
|
{isSSOEnforced
|
|
? (
|
|
<div className={cn(
|
|
'flex w-full min-h-screen',
|
|
'sm:p-4 lg:p-8',
|
|
'gap-x-20',
|
|
'justify-center lg:justify-start',
|
|
)}>
|
|
<div className={
|
|
cn(
|
|
'flex w-full flex-col bg-white shadow rounded-2xl shrink-0',
|
|
'space-between',
|
|
)
|
|
}>
|
|
<div className='flex items-center justify-between p-6 w-full'>
|
|
<LogoSite />
|
|
</div>
|
|
|
|
<div className={
|
|
cn(
|
|
'flex flex-col items-center w-full grow items-center justify-center',
|
|
'px-6',
|
|
'md:px-[108px]',
|
|
)
|
|
}>
|
|
<div className='flex flex-col md:w-[400px]'>
|
|
<div className="w-full mx-auto">
|
|
<h2 className="text-[16px] font-bold text-gray-900">
|
|
Warning: Chatbot is not available
|
|
</h2>
|
|
<p className="text-[16px] text-gray-600 mt-2">
|
|
Because SSO is enforced. Please contact your administrator.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
: <Main />
|
|
}
|
|
</>
|
|
)}
|
|
</>
|
|
)
|
|
}
|
|
|
|
export default React.memo(Chatbot)
|
|
|