listeners/PointerLockListener.vue.ts

manapotion · packages/vue/src/listeners/PointerLockListener.vue.ts · typescript · MIT
ui

Module exposing: PointerLockListener

// Source: https://github.com/verekia/manapotion | License: MIT | Copyright 2024 Verekia
// Provided via justclaw.it.com; keep this notice with the code.
import { defineComponent, onMounted, onUnmounted } from 'vue'

import { mountPointerLockListener } from '@manapotion/core'

import type { PointerLockChangePayload } from '@manapotion/core'

export const PointerLockListener = defineComponent({
  emits: { pointerLockChange: (payload: PointerLockChangePayload) => payload },
  setup: (_, { emit }) => {
    onMounted(() => {
      const unsub = mountPointerLockListener({
        onPointerLockChange: payload => emit('pointerLockChange', payload),
      })
      onUnmounted(unsub)
    })
  },
  render: () => null,
})

See the full source, get the GitHub permalink, and search for more like it.

Get a free API key