30 lines
907 B
TypeScript
30 lines
907 B
TypeScript
import { useMemo } from 'react'
|
|
import { useSearchParams } from 'react-router-dom'
|
|
import VisitorChat from '@/widgets/VisitorChat'
|
|
|
|
/** 供 widget.js iframe 嵌入的无边框页面 */
|
|
const WidgetEmbed = () => {
|
|
const [params] = useSearchParams()
|
|
const channelKey = useMemo(() => params.get('channel_key') || 'WK_8a3f2e', [params])
|
|
const embedded = params.get('embedded') === '1'
|
|
const initialPage = useMemo(() => ({
|
|
url: params.get('page_url') || undefined,
|
|
title: params.get('page_title') || undefined,
|
|
referrer: params.get('referrer') || undefined,
|
|
}), [params])
|
|
|
|
return (
|
|
<div className="h-screen w-screen overflow-hidden bg-transparent">
|
|
<VisitorChat
|
|
defaultOpen
|
|
channelKey={channelKey}
|
|
embedded={embedded}
|
|
layout={embedded ? 'fill' : 'floating'}
|
|
initialPage={initialPage}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default WidgetEmbed
|