All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 28s
Lazy-load create forms (Post, Activity, Favorite, Rowing) directly into their corresponding home components with an admin-only toggle button, replacing the need to navigate to the admin page. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
1.0 KiB
Vue
40 lines
1.0 KiB
Vue
<script setup>
|
|
import Button from "@/components/input/Button.vue";
|
|
import { ref } from "vue";
|
|
import { gql } from "@/graphql";
|
|
|
|
const emit = defineEmits(["done", "cancel"]);
|
|
|
|
const title = ref("");
|
|
const content = ref("");
|
|
|
|
async function post() {
|
|
try {
|
|
const data = await gql(
|
|
`mutation CreatePost($input: CreatePostInput!) { createPost(input: $input) { id } }`,
|
|
{ input: { title: title.value, content: content.value } },
|
|
);
|
|
title.value = "";
|
|
content.value = "";
|
|
console.log(data.createPost);
|
|
emit("done");
|
|
} catch (err) {
|
|
console.error(err);
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<div class="flex flex-col">
|
|
<h1>Create Post</h1>
|
|
<input type="text" v-model="title" placeholder="Title" @keyup.enter="post" />
|
|
<textarea
|
|
class="h-50"
|
|
v-model="content"
|
|
placeholder="Content"
|
|
></textarea>
|
|
<Button @click="post">Upload</Button>
|
|
<Button @click="emit('cancel')">Cancel</Button>
|
|
</div>
|
|
</template>
|