初始化模版工程

This commit is contained in:
Cloud Bot
2026-03-20 07:33:46 +00:00
commit 23717e0ecd
386 changed files with 51675 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import { useEffect } from 'react'
import { usePPTEditContext } from '../context'
import { useToolPostion } from './useToolPostion'
import type { UseInjectModeReturn } from '../hooks/useIframeMode'
export const useDiff = (
useIframeReturn: UseInjectModeReturn,
isDoc?: boolean,
) => {
const editorContext = usePPTEditContext()
const { selectedElement, editor, tipPosition } = useIframeReturn
const docModeToolPosition = useToolPostion(editor, !!isDoc)
useEffect(() => {
const hasActive = editor?.EditorRegistry.hasActiveEditor()
const reWriteState = { ...useIframeReturn }
if (isDoc) {
// 重写状态
reWriteState.position = docModeToolPosition
reWriteState.tipPosition = docModeToolPosition
editorContext?.setState(reWriteState)
return
}
if (hasActive && selectedElement) {
// 有激活的实例且为当前的实例
editorContext?.setState(reWriteState)
} else if (!selectedElement && !hasActive) {
// 失焦后清空所有状态关闭tip
reWriteState.position = null
reWriteState.tipPosition = null
editorContext?.setState(reWriteState)
}
}, [selectedElement, editor, tipPosition, isDoc, docModeToolPosition])
}