2022-06-30 12:35:29 +03:00
|
|
|
<template>
|
2022-08-07 21:29:22 +03:00
|
|
|
<div class="wavelovers">
|
|
|
|
<NavigationList />
|
|
|
|
<router-view />
|
|
|
|
<GamepadList v-if="gamepads.length > 0"
|
|
|
|
:gamepads="gamepads" />
|
|
|
|
<MessageItem v-else>Press any gamepad button or connect a new gamepad to vibrate.</MessageItem>
|
|
|
|
</div>
|
2022-06-30 12:35:29 +03:00
|
|
|
</template>
|
|
|
|
|
2022-07-14 17:50:28 +03:00
|
|
|
<script lang="ts">
|
|
|
|
import { defineComponent } from 'vue';
|
2022-08-07 21:29:22 +03:00
|
|
|
import store from '@/store/index';
|
|
|
|
import NavigationList from '@/components/NavigationList.vue';
|
|
|
|
import GamepadList from '@/components/GamepadList.vue';
|
|
|
|
import MessageItem from '@/components/MessageItem.vue';
|
|
|
|
import Vibrator from '@/models/Vibrator';
|
2022-06-30 12:35:29 +03:00
|
|
|
|
2022-07-14 17:50:28 +03:00
|
|
|
export default defineComponent({
|
2022-07-21 16:07:17 +03:00
|
|
|
name: 'App',
|
2022-08-07 21:29:22 +03:00
|
|
|
components: {
|
|
|
|
NavigationList: NavigationList,
|
|
|
|
GamepadList: GamepadList,
|
|
|
|
MessageItem: MessageItem,
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
gamepads: function (): Vibrator[] {
|
|
|
|
return store.getters.gamepads as Vibrator[];
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
addEventListeners(): void {
|
|
|
|
window.addEventListener('gamepadconnected', (event: GamepadEvent) => store.dispatch('addGamepad', event));
|
|
|
|
window.addEventListener('gamepaddisconnected', (event: GamepadEvent) => store.dispatch('deleteGamepad', event));
|
|
|
|
},
|
|
|
|
removeEventListeners(): void {
|
|
|
|
window.removeEventListener('gamepadconnected', (event: GamepadEvent) => store.dispatch('addGamepad', event));
|
|
|
|
window.removeEventListener('gamepaddisconnected', (event: GamepadEvent) => store.dispatch('deleteGamepad', event));
|
|
|
|
},
|
|
|
|
},
|
|
|
|
mounted() {
|
|
|
|
this.addEventListeners();
|
|
|
|
},
|
|
|
|
unmounted() {
|
|
|
|
this.removeEventListeners();
|
|
|
|
},
|
2022-07-14 17:50:28 +03:00
|
|
|
});
|
2022-06-30 12:35:29 +03:00
|
|
|
</script>
|
|
|
|
|
2022-08-07 21:29:22 +03:00
|
|
|
<style lang="scss">
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|