diff --git a/src/components/InfoWindow.vue b/src/components/InfoWindow.vue index b51d395..acae638 100644 --- a/src/components/InfoWindow.vue +++ b/src/components/InfoWindow.vue @@ -1,12 +1,12 @@ + + diff --git a/src/components/Marker.ts b/src/components/Marker.ts index bc2f0ad..4cb9bed 100644 --- a/src/components/Marker.ts +++ b/src/components/Marker.ts @@ -1,5 +1,6 @@ -import { defineComponent, PropType, Ref, toRef } from "vue"; +import { defineComponent, PropType, Ref, toRef, provide } from "vue"; import { IComponentOptions, useSetupMapComponent } from "../composables/index"; +import { markerSymbol } from "../shared/index"; const markerEvents = [ "animation_changed", @@ -35,11 +36,13 @@ export default defineComponent({ }, }, emits: markerEvents, - setup(props, { emit }) { + setup(props, { emit, expose, slots }) { const options = toRef(props, "options") as Ref; - const marker = useSetupMapComponent("Marker", markerEvents, options, emit); + const marker = useSetupMapComponent("Marker", markerEvents, options, emit) as Ref; + provide(markerSymbol, marker); - return { marker }; + expose({ marker }); + + return () => slots.default?.(); }, - render: () => null, }); diff --git a/src/shared/index.ts b/src/shared/index.ts index 7916140..7c6c2b1 100644 --- a/src/shared/index.ts +++ b/src/shared/index.ts @@ -3,6 +3,7 @@ import { InjectionKey, ref, Ref } from "vue"; export const mapSymbol: InjectionKey> = Symbol("map"); export const apiSymbol: InjectionKey> = Symbol("api"); +export const markerSymbol: InjectionKey> = Symbol("marker"); /** * Utilitary flag for components that need to know the map * was fully loaded (including its tiles) to decide their behavior