Add egg segment

This commit is contained in:
Joscha 2025-03-03 15:43:11 +01:00
parent db73dee8d7
commit e4545c5a33
3 changed files with 82 additions and 52 deletions

View file

@ -1,15 +1,17 @@
<script setup lang="ts">
import { ref } from "vue";
import CSegmentCalendar from "./CSegmentCalendar.vue";
import CSegmentEgg from "./CSegmentEgg.vue";
import CSegmentText from "./CSegmentText.vue";
const mode = ref<"calendar" | "text">();
const mode = ref<"calendar" | "egg" | "text">();
</script>
<template>
<div class="outer">
<button v-if="mode" class="close" @click="mode = undefined">X</button>
<CSegmentCalendar v-if="mode === 'calendar'" />
<CSegmentEgg v-if="mode === 'egg'" />
<CSegmentText v-if="mode === 'text'" />
<hr v-if="mode !== undefined" />
<section>
@ -18,7 +20,7 @@ const mode = ref<"calendar" | "text">();
<button @click="mode = 'calendar'">Calendar</button>
<button @click="mode = 'text'">Cellular Automaton</button>
<button @click="mode = 'text'">Chat Message</button>
<button @click="mode = 'text'">Easter Egg</button>
<button @click="mode = 'egg'">Easter Egg</button>
<button @click="mode = 'text'">Text</button>
<button @click="mode = 'text'">Tic Tac Toe</button>
</div>

View file

@ -0,0 +1,78 @@
<script setup lang="ts">
import { useApiRequest } from "@/apiRequest";
import { ref, useTemplateRef } from "vue";
import CSegmentError from "./CSegmentError.vue";
const { disabled, error, makeRequest } = useApiRequest();
const form = useTemplateRef<HTMLFormElement>("form");
const seed = ref<number | string>("");
const mode = ref("random");
const feed = ref(true);
function submit() {
const data = new URLSearchParams();
if (typeof seed.value === "number") data.append("seed", seed.value.toFixed());
data.append("mode", mode.value);
data.append("feed", String(feed.value));
void makeRequest("/api/egg", data);
}
</script>
<template>
<form ref="form" @submit.prevent="submit">
<h2>Easter Egg</h2>
<svg viewBox="-2 0 4 6">
<path
fill="#000"
d="M0,0 C1,0,2,2,2,3.5 S1,6,0,6 S-2,5,-2,3.5 S-1,0,0,0"
/>
</svg>
<label>
Seed:
<input
v-model="seed"
type="number"
min="-9223372036854775808"
max="9223372036854775807"
step="1"
placeholder="random"
/>
</label>
<label>
Mode:
<select v-model="mode">
<option value="random">Random</option>
<option value="good">Good</option>
<option value="bad">Bad</option>
</select>
</label>
<label><input v-model="feed" type="checkbox" :disabled /> Feed</label>
<button :disabled>Print</button>
<CSegmentError :message="error" />
</form>
</template>
<style scoped>
form {
display: flex;
flex-direction: column;
gap: 16px;
}
input[type="number"] {
box-sizing: border-box;
width: 100%;
}
svg {
width: 50%;
margin: auto;
}
fieldset {
display: flex;
flex-direction: column;
border: none;
}
</style>