1
0
forked from noxious/client

worked on modal

This commit is contained in:
Colin Kallemein 2024-05-31 20:55:20 +02:00
parent 9c4bbe5d09
commit 2db7fc9905
2 changed files with 56 additions and 35 deletions

View File

@ -1,10 +1,8 @@
<template> <template>
<div> <div>
<div id="characters-wrapper"> <div class="characters-wrapper">
<div id="characters"> <div class="list">
<h1>Select your character</h1> <div v-for="character in characters" :key="character.id" class="character">
<div id="list">
<div v-for="character in characters" :key="character.id">
<input type="radio" :id="character.id" name="character" :value="character.id" v-model="selected_character" /> <input type="radio" :id="character.id" name="character" :value="character.id" v-model="selected_character" />
<label :for="character.id"> <label :for="character.id">
{{ character.name }} {{ character.name }}
@ -13,11 +11,12 @@
</div> </div>
</div> </div>
<div class="buttons-wrapper">
<button @click="select_character()">Play</button> <button @click="select_character()">Play</button>
<button @click="openCreator">Create New</button>
<hr>
<Create />
</div> </div>
<Create :isOpen="isCharacterCreatorOpened" @modal-close="closeCreator" @submit="submitHandler" name="character-create" />
</div> </div>
@ -49,10 +48,24 @@ function select_character() {
}); });
} }
} }
const isCharacterCreatorOpened = ref(false);
const openCreator = () => {
isCharacterCreatorOpened.value = true;
};
const closeCreator = () => {
isCharacterCreatorOpened.value = false;
};
const submitHandler = ()=>{
//here you do whatever
}
</script> </script>
<style lang="scss"> <style lang="scss">
#characters-wrapper { .characters-wrapper {
// vertical and vertical center // vertical and vertical center
height: 100vh; height: 100vh;
display: flex; display: flex;
@ -61,13 +74,7 @@ function select_character() {
align-items: center; align-items: center;
} }
#characters { .list {
background: #FFFFFF;
padding:30px;
color:black;
}
#list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center; justify-content: center;

View File

@ -1,19 +1,32 @@
<template> <template>
<form method="post" @submit.prevent="create"> <div class="create-container" v-if="isOpen">
<form method="post" @submit.prevent="create">
<h1>Create your character</h1> <h1>Create your character</h1>
<div> <div>
<label for="name">Name</label> <label for="name">Name</label>
<input v-model="name" type="text" name="name" id="name"> <input v-model="name" type="text" name="name" id="name">
</div> </div>
<div> <div>
<button>Create</button> <button @click.stop="create">Create</button>
</div>
</form>
<button @click.stop="emit('modal-close')">Cancel</button>
</div> </div>
</form>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { useSocketStore } from '@/stores/socket' import { useSocketStore } from '@/stores/socket'
import { ref, defineEmits } from 'vue' import { ref, defineEmits, defineProps } from 'vue'
import {onClickOutside} from '@vueuse/core'
const props = defineProps({
isOpen: Boolean
});
const emit = defineEmits(["modal-close"]);
const target = ref(null)
onClickOutside(target, () => emit('modal-close'));
const socket = useSocketStore(); const socket = useSocketStore();
@ -24,5 +37,6 @@ function create() {
socket.getConnection.emit('character:create', { name: name.value }); socket.getConnection.emit('character:create', { name: name.value });
// emit('character:create'); // emit('character:create');
name.value = ''; name.value = '';
props.isOpen = false;
} }
</script> </script>