14 changed files with 247 additions and 44 deletions
			
			
		@ -0,0 +1,83 @@ | 
				
			|||||
 | 
					<!-- similar to ContactNameDialog --> | 
				
			||||
 | 
					<template> | 
				
			||||
 | 
					  <div v-if="visible" class="dialog-overlay"> | 
				
			||||
 | 
					    <div class="dialog"> | 
				
			||||
 | 
					      <h1 class="text-xl font-bold text-center mb-4">Inviter's Name</h1> | 
				
			||||
 | 
					      Note that their name is only stored on this device. | 
				
			||||
 | 
					      <input | 
				
			||||
 | 
					        type="text" | 
				
			||||
 | 
					        placeholder="Name" | 
				
			||||
 | 
					        class="block w-full rounded border border-slate-400 mb-4 px-3 py-2" | 
				
			||||
 | 
					        v-model="newText" | 
				
			||||
 | 
					      /> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					      <div class="mt-8"> | 
				
			||||
 | 
					        <div class="grid grid-cols-1 sm:grid-cols-2 gap-2"> | 
				
			||||
 | 
					          <button | 
				
			||||
 | 
					            type="button" | 
				
			||||
 | 
					            class="block w-full text-center text-lg font-bold uppercase bg-gradient-to-b from-blue-400 to-blue-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-2 py-3 rounded-md mb-2" | 
				
			||||
 | 
					            @click="onClickSaveChanges()" | 
				
			||||
 | 
					          > | 
				
			||||
 | 
					            Save | 
				
			||||
 | 
					          </button> | 
				
			||||
 | 
					          <button | 
				
			||||
 | 
					            type="button" | 
				
			||||
 | 
					            class="block w-full text-center text-md uppercase bg-gradient-to-b from-slate-400 to-slate-700 shadow-[inset_0_-1px_0_0_rgba(0,0,0,0.5)] text-white px-2 py-3 rounded-md mb-2" | 
				
			||||
 | 
					            @click="onClickCancel()" | 
				
			||||
 | 
					          > | 
				
			||||
 | 
					            Cancel | 
				
			||||
 | 
					          </button> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					      </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					  </div> | 
				
			||||
 | 
					</template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<script lang="ts"> | 
				
			||||
 | 
					import { Vue, Component } from "vue-facing-decorator"; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					@Component | 
				
			||||
 | 
					export default class UserNameDialog extends Vue { | 
				
			||||
 | 
					  callback: (name?: string) => void = () => {}; | 
				
			||||
 | 
					  newText = ""; | 
				
			||||
 | 
					  visible = false; | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  async open(aCallback?: (name?: string) => void) { | 
				
			||||
 | 
					    this.callback = aCallback || this.callback; | 
				
			||||
 | 
					    this.visible = true; | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  async onClickSaveChanges() { | 
				
			||||
 | 
					    this.visible = false; | 
				
			||||
 | 
					    this.callback(this.newText); | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					  onClickCancel() { | 
				
			||||
 | 
					    this.visible = false; | 
				
			||||
 | 
					    this.callback(); | 
				
			||||
 | 
					  } | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<style> | 
				
			||||
 | 
					.dialog-overlay { | 
				
			||||
 | 
					  position: fixed; | 
				
			||||
 | 
					  top: 0; | 
				
			||||
 | 
					  left: 0; | 
				
			||||
 | 
					  right: 0; | 
				
			||||
 | 
					  bottom: 0; | 
				
			||||
 | 
					  background-color: rgba(0, 0, 0, 0.5); | 
				
			||||
 | 
					  display: flex; | 
				
			||||
 | 
					  justify-content: center; | 
				
			||||
 | 
					  align-items: center; | 
				
			||||
 | 
					  padding: 1.5rem; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					.dialog { | 
				
			||||
 | 
					  background-color: white; | 
				
			||||
 | 
					  padding: 1rem; | 
				
			||||
 | 
					  border-radius: 0.5rem; | 
				
			||||
 | 
					  width: 100%; | 
				
			||||
 | 
					  max-width: 500px; | 
				
			||||
 | 
					} | 
				
			||||
 | 
					</style> | 
				
			||||
					Loading…
					
					
				
		Reference in new issue