mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-10-30 18:12:25 -04:00 
			
		
		
		
	Merge pull request #2714 from mikiher/keyboard-navigation
Fix input width in MultiSelect UI components - replacement solution
This commit is contained in:
		
						commit
						0d9d2fa4be
					
				| @ -11,7 +11,7 @@ | ||||
|             </div> | ||||
|             {{ item }} | ||||
|           </div> | ||||
|           <input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" style="min-width: 40px; width: fit-content" class="h-full bg-primary focus:outline-none px-1" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" /> | ||||
|           <input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" class="h-full bg-primary focus:outline-none px-1 w-6" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" /> | ||||
|         </div> | ||||
|       </form> | ||||
| 
 | ||||
| @ -110,6 +110,15 @@ export default { | ||||
|       this.typingTimeout = setTimeout(() => { | ||||
|         this.currentSearch = this.textInput | ||||
|       }, 100) | ||||
|       this.setInputWidth() | ||||
|     }, | ||||
|     setInputWidth() { | ||||
|       setTimeout(() => { | ||||
|         var value = this.$refs.input.value | ||||
|         var len = value.length * 7 + 24 | ||||
|         this.$refs.input.style.width = len + 'px' | ||||
|         this.recalcMenuPos() | ||||
|       }, 50) | ||||
|     }, | ||||
|     recalcMenuPos() { | ||||
|       if (!this.menu || !this.$refs.inputWrapper) return | ||||
| @ -199,7 +208,10 @@ export default { | ||||
|         e.stopPropagation() | ||||
|         e.preventDefault() | ||||
|       } | ||||
|       if (this.$refs.input) this.$refs.input.focus() | ||||
|       if (this.$refs.input) {  | ||||
|         this.$refs.input.style.width = '24px' | ||||
|         this.$refs.input.focus() | ||||
|       } | ||||
| 
 | ||||
|       var newSelected = null | ||||
|       if (this.selected.includes(itemValue)) { | ||||
| @ -252,6 +264,7 @@ export default { | ||||
|       } else { | ||||
|         this.insertNewItem(this.textInput) | ||||
|       } | ||||
|       if (this.$refs.input) this.$refs.input.style.width = '24px' | ||||
|     }, | ||||
|     scroll() { | ||||
|       this.recalcMenuPos() | ||||
|  | ||||
| @ -14,7 +14,7 @@ | ||||
|           <div v-if="showEdit && !disabled" class="rounded-full cursor-pointer w-6 h-6 mx-0.5 bg-bg flex items-center justify-center"> | ||||
|             <span class="material-icons text-white hover:text-success pt-px pr-px" style="font-size: 1.1rem" @click.stop="addItem">add</span> | ||||
|           </div> | ||||
|           <input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" style="min-width: 40px; width: fit-content" class="h-full bg-primary focus:outline-none px-1" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" /> | ||||
|           <input v-show="!readonly" ref="input" v-model="textInput" :disabled="disabled" class="h-full bg-primary focus:outline-none px-1 w-6" @keydown="keydownInput" @focus="inputFocus" @blur="inputBlur" @paste="inputPaste" /> | ||||
|         </div> | ||||
|       </form> | ||||
| 
 | ||||
| @ -127,6 +127,15 @@ export default { | ||||
|       this.typingTimeout = setTimeout(() => { | ||||
|         this.search() | ||||
|       }, 250)       | ||||
|       this.setInputWidth() | ||||
|     }, | ||||
|     setInputWidth() { | ||||
|       setTimeout(() => { | ||||
|         var value = this.$refs.input.value | ||||
|         var len = value.length * 7 + 24 | ||||
|         this.$refs.input.style.width = len + 'px' | ||||
|         this.recalcMenuPos() | ||||
|       }, 50) | ||||
|     }, | ||||
|     recalcMenuPos() { | ||||
|       if (!this.menu || !this.$refs.inputWrapper) return | ||||
| @ -219,7 +228,10 @@ export default { | ||||
|         e.stopPropagation() | ||||
|         e.preventDefault() | ||||
|       } | ||||
|       if (this.$refs.input) this.$refs.input.focus() | ||||
|       if (this.$refs.input) { | ||||
|         this.$refs.input.style.width = '24px' | ||||
|         this.$refs.input.focus() | ||||
|       } | ||||
| 
 | ||||
|       let newSelected = null | ||||
|       if (this.getIsSelected(item.id)) { | ||||
| @ -282,6 +294,7 @@ export default { | ||||
|           name: this.textInput | ||||
|         }) | ||||
|       } | ||||
|       if (this.$refs.input) this.$refs.input.style.width = '24px' | ||||
|     }, | ||||
|     scroll() { | ||||
|       this.recalcMenuPos() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user