|
|
|
<?php snippet("header", ['title' => "Game"]) ?>
|
|
|
|
<body class="xoi">
|
|
|
|
<main>
|
|
|
|
<d-renderer :stack="stack"></d-renderer>
|
|
|
|
<!-- <component :is="state.view"></component> -->
|
|
|
|
</main>
|
|
|
|
<script type="module">
|
|
|
|
import { createApp, onMounted, reactive } from "vue";
|
|
|
|
import { vIndex, vAutofocus, EnterHandler } from "<?= asset("assets/js/handlers.js") ?>";
|
|
|
|
import { xoiHandler, initXoiView } from "<?= asset("assets/js/views/xoi/main.js") ?>";
|
|
|
|
import initComponents from "<?= asset("assets/js/components/init.js") ?>";
|
|
|
|
import { renderer, overlayAndGet } from "<?= asset("assets/js/componentPromise.js") ?>";
|
|
|
|
|
|
|
|
const app = createApp({
|
|
|
|
setup() {
|
|
|
|
const stack = reactive([]);
|
|
|
|
const mounted = onMounted(async () => {
|
|
|
|
document.addEventListener("keydown", EnterHandler);
|
|
|
|
await xoiHandler(stack, "<?= $page->id() ?>");
|
|
|
|
})
|
|
|
|
return { stack }
|
|
|
|
}
|
|
|
|
}).directive("index", vIndex).directive("autofocus", vAutofocus);
|
|
|
|
initComponents(app);
|
|
|
|
initXoiView(app);
|
|
|
|
app.component("d-renderer", renderer);
|
|
|
|
app.mount('main')
|
|
|
|
</script>
|
|
|
|
<script type="module">
|
|
|
|
import { connect, autodartsState } from "<?= asset("assets/js/websocket.js") ?>";
|
|
|
|
|
|
|
|
|
|
|
|
document.addEventListener("keydown", (event) => {
|
|
|
|
if (event.key == "F6"){
|
|
|
|
event.preventDefault();
|
|
|
|
fetch('http://localhost:3180/api/reset', {
|
|
|
|
method: 'POST',
|
|
|
|
headers: {
|
|
|
|
'Accept': 'application/json',
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
},
|
|
|
|
})
|
|
|
|
}
|
|
|
|
if (event.key == "F7"){
|
|
|
|
event.preventDefault();
|
|
|
|
fetch('http://localhost:3180/api/start', {
|
|
|
|
method: 'PUT',
|
|
|
|
headers: {
|
|
|
|
'Accept': 'application/json',
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
},
|
|
|
|
})
|
|
|
|
}
|
|
|
|
if (event.key == "F8"){
|
|
|
|
event.preventDefault();
|
|
|
|
fetch('http://localhost:3180/api/stop', {
|
|
|
|
method: 'PUT',
|
|
|
|
headers: {
|
|
|
|
'Accept': 'application/json',
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
},
|
|
|
|
})
|
|
|
|
}
|
|
|
|
if (event.key == "u"){
|
|
|
|
event.preventDefault();
|
|
|
|
connect("ws://localhost:3180/api/events", (event) => {
|
|
|
|
let data = JSON.parse(event.data);
|
|
|
|
if(data.type == "state"){
|
|
|
|
autodartsState.status = data.data.status;
|
|
|
|
const evt = new CustomEvent("autodarts", {detail: data});
|
|
|
|
document.body.dispatchEvent(evt);
|
|
|
|
console.log("Message from server ", data);
|
|
|
|
console.log(autodartsState.status);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
<?php snippet("footer") ?>
|