let slot = slots[name]
// vapor slots rendered in vdom
- if (slot && slots.__interop) {
+ if (slot && slots._vapor) {
const ret = (openBlock(), createBlock(VaporSlot, props))
ret.vs = { slot, fallback }
return ret
type VaporSlot,
dynamicSlotsProxyHandlers,
getSlot,
- staticSlotsProxyHandler,
} from './componentSlots'
import { hmrReload, hmrRerender } from './hmr'
this.slots = rawSlots
? rawSlots.$
? new Proxy(rawSlots, dynamicSlotsProxyHandlers)
- : new Proxy(rawSlots, staticSlotsProxyHandler)
+ : rawSlots
: EMPTY_OBJ
}
export type DynamicSlotFn = () => DynamicSlot | DynamicSlot[]
export type DynamicSlotSource = StaticSlots | DynamicSlotFn
-export const staticSlotsProxyHandler: ProxyHandler<any> = {
- get(target, key) {
- if (key === '__vapor') {
- return true
- } else {
- return target[key]
- }
- },
-}
-
export const dynamicSlotsProxyHandlers: ProxyHandler<RawSlots> = {
- get: (target, key: string) => {
- if (key === '__vapor') {
- return true
- } else {
- return getSlot(target, key)
- }
- },
+ get: getSlot,
has: (target, key: string) => !!getSlot(target, key),
getOwnPropertyDescriptor(target, key: string) {
const slot = getSlot(target, key)