useOverlay
全屏遮罩共享行为:Escape 关闭 + body 滚动锁。LxModal / LxDrawer 内部即用它。
用法
ts
import { useOverlay } from '@luxeanor/ui'
// open 可以是 Ref<boolean> 或 () => boolean
useOverlay(() => props.modelValue, close)API
useOverlay(open: Ref<boolean> | (() => boolean), close: () => void): void
行为与边界:
open变 true:监听 Escape、锁 body 滚动;变 false:解除- 滚动锁是引用计数的——叠层浮层(Modal 上再开 Drawer)不会提前解锁
- 组件卸载时若仍打开,自动解锁
- SSR 安全(不触碰 document)