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