You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
ygdc/site/templates/xoi.php

79 lines
2.6 KiB

<?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") ?>