fix #9483
This commit is contained in:
		
							parent
							
								
									d7e0ddcbca
								
							
						
					
					
						commit
						cac784af8a
					
				
					 3 changed files with 34 additions and 150 deletions
				
			
		|  | @ -1,5 +1,5 @@ | ||||||
| <template> | <template> | ||||||
| <div class="omfetrab" :class="['s' + size, 'w' + width, 'h' + height, { asDrawer }]" :style="{ maxHeight: maxHeight ? maxHeight + 'px' : undefined }"> | <div class="omfetrab" :class="['s' + size, 'w' + width, 'h' + height, { asDrawer, asWindow }]" :style="{ maxHeight: maxHeight ? maxHeight + 'px' : undefined }"> | ||||||
| 	<input ref="search" :value="q" class="search" data-prevent-emoji-insert :class="{ filled: q != null && q != '' }" :placeholder="i18n.ts.search" type="search" @input="input()" @paste.stop="paste" @keyup.enter="done()"> | 	<input ref="search" :value="q" class="search" data-prevent-emoji-insert :class="{ filled: q != null && q != '' }" :placeholder="i18n.ts.search" type="search" @input="input()" @paste.stop="paste" @keyup.enter="done()"> | ||||||
| 	<div ref="emojis" class="emojis"> | 	<div ref="emojis" class="emojis"> | ||||||
| 		<section class="result"> | 		<section class="result"> | ||||||
|  | @ -94,6 +94,7 @@ const props = withDefaults(defineProps<{ | ||||||
| 	asReactionPicker?: boolean; | 	asReactionPicker?: boolean; | ||||||
| 	maxHeight?: number; | 	maxHeight?: number; | ||||||
| 	asDrawer?: boolean; | 	asDrawer?: boolean; | ||||||
|  | 	asWindow?: boolean; | ||||||
| }>(), { | }>(), { | ||||||
| 	showPinned: true, | 	showPinned: true, | ||||||
| }); | }); | ||||||
|  | @ -440,6 +441,28 @@ defineExpose({ | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	&.asWindow { | ||||||
|  | 		width: 100% !important; | ||||||
|  | 		height: 100% !important; | ||||||
|  | 
 | ||||||
|  | 		> .emojis { | ||||||
|  | 			::v-deep(section) { | ||||||
|  | 				> .body { | ||||||
|  | 					display: grid; | ||||||
|  | 					grid-template-columns: var(--columns); | ||||||
|  | 					font-size: 30px; | ||||||
|  | 
 | ||||||
|  | 					> .item { | ||||||
|  | 						aspect-ratio: 1 / 1; | ||||||
|  | 						width: auto; | ||||||
|  | 						height: auto; | ||||||
|  | 						min-width: 0; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	> .search { | 	> .search { | ||||||
| 		width: 100%; | 		width: 100%; | ||||||
| 		padding: 12px; | 		padding: 12px; | ||||||
|  |  | ||||||
|  | @ -1,13 +1,13 @@ | ||||||
| <template> | <template> | ||||||
| <MkWindow ref="window" | <MkWindow ref="window" | ||||||
| 	:initial-width="null" | 	:initial-width="300" | ||||||
| 	:initial-height="null" | 	:initial-height="290" | ||||||
| 	:can-resize="false" | 	:can-resize="true" | ||||||
| 	:mini="true" | 	:mini="true" | ||||||
| 	:front="true" | 	:front="true" | ||||||
| 	@closed="emit('closed')" | 	@closed="emit('closed')" | ||||||
| > | > | ||||||
| 	<MkEmojiPicker :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen"/> | 	<MkEmojiPicker :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" as-window @chosen="chosen" :class="$style.picker"/> | ||||||
| </MkWindow> | </MkWindow> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | @ -34,147 +34,8 @@ function chosen(emoji: any) { | ||||||
| } | } | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <style lang="scss" scoped> | <style lang="scss" module> | ||||||
| .omfetrab { | .picker { | ||||||
| 	$pad: 8px; | 	height: 100%; | ||||||
| 	--eachSize: 40px; |  | ||||||
| 
 |  | ||||||
| 	display: flex; |  | ||||||
| 	flex-direction: column; |  | ||||||
| 	contain: content; |  | ||||||
| 
 |  | ||||||
| 	&.big { |  | ||||||
| 		--eachSize: 44px; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	&.w1 { |  | ||||||
| 		width: calc((var(--eachSize) * 5) + (#{$pad} * 2)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	&.w2 { |  | ||||||
| 		width: calc((var(--eachSize) * 6) + (#{$pad} * 2)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	&.w3 { |  | ||||||
| 		width: calc((var(--eachSize) * 7) + (#{$pad} * 2)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	&.h1 { |  | ||||||
| 		--height: calc((var(--eachSize) * 4) + (#{$pad} * 2)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	&.h2 { |  | ||||||
| 		--height: calc((var(--eachSize) * 6) + (#{$pad} * 2)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	&.h3 { |  | ||||||
| 		--height: calc((var(--eachSize) * 8) + (#{$pad} * 2)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	> .search { |  | ||||||
| 		width: 100%; |  | ||||||
| 		padding: 12px; |  | ||||||
| 		box-sizing: border-box; |  | ||||||
| 		font-size: 1em; |  | ||||||
| 		outline: none; |  | ||||||
| 		border: none; |  | ||||||
| 		background: transparent; |  | ||||||
| 		color: var(--fg); |  | ||||||
| 
 |  | ||||||
| 		&:not(.filled) { |  | ||||||
| 			order: 1; |  | ||||||
| 			z-index: 2; |  | ||||||
| 			box-shadow: 0px -1px 0 0px var(--divider); |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	> .emojis { |  | ||||||
| 		height: var(--height); |  | ||||||
| 		overflow-y: auto; |  | ||||||
| 		overflow-x: hidden; |  | ||||||
| 
 |  | ||||||
| 		scrollbar-width: none; |  | ||||||
| 
 |  | ||||||
| 		&::-webkit-scrollbar { |  | ||||||
| 			display: none; |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		> .index { |  | ||||||
| 			min-height: var(--height); |  | ||||||
| 			position: relative; |  | ||||||
| 			border-bottom: solid 0.5px var(--divider); |  | ||||||
| 				 |  | ||||||
| 			> .arrow { |  | ||||||
| 				position: absolute; |  | ||||||
| 				bottom: 0; |  | ||||||
| 				left: 0; |  | ||||||
| 				width: 100%; |  | ||||||
| 				padding: 16px 0; |  | ||||||
| 				text-align: center; |  | ||||||
| 				opacity: 0.5; |  | ||||||
| 				pointer-events: none; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		section { |  | ||||||
| 			> header { |  | ||||||
| 				position: sticky; |  | ||||||
| 				top: 0; |  | ||||||
| 				left: 0; |  | ||||||
| 				z-index: 1; |  | ||||||
| 				padding: 8px; |  | ||||||
| 				font-size: 12px; |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			> div { |  | ||||||
| 				padding: $pad; |  | ||||||
| 
 |  | ||||||
| 				> button { |  | ||||||
| 					position: relative; |  | ||||||
| 					padding: 0; |  | ||||||
| 					width: var(--eachSize); |  | ||||||
| 					height: var(--eachSize); |  | ||||||
| 					border-radius: 4px; |  | ||||||
| 
 |  | ||||||
| 					&:focus-visible { |  | ||||||
| 						outline: solid 2px var(--focus); |  | ||||||
| 						z-index: 1; |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					&:hover { |  | ||||||
| 						background: rgba(0, 0, 0, 0.05); |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					&:active { |  | ||||||
| 						background: var(--accent); |  | ||||||
| 						box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15); |  | ||||||
| 					} |  | ||||||
| 
 |  | ||||||
| 					> * { |  | ||||||
| 						font-size: 24px; |  | ||||||
| 						height: 1.25em; |  | ||||||
| 						vertical-align: -.25em; |  | ||||||
| 						pointer-events: none; |  | ||||||
| 					} |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			&.result { |  | ||||||
| 				border-bottom: solid 0.5px var(--divider); |  | ||||||
| 
 |  | ||||||
| 				&:empty { |  | ||||||
| 					display: none; |  | ||||||
| 				} |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			&.unicode { |  | ||||||
| 				min-height: 384px; |  | ||||||
| 			} |  | ||||||
| 
 |  | ||||||
| 			&.custom { |  | ||||||
| 				min-height: 64px; |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
|  |  | ||||||
|  | @ -61,8 +61,8 @@ function dragClear(fn) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const props = withDefaults(defineProps<{ | const props = withDefaults(defineProps<{ | ||||||
| 	initialWidth?: number; | 	initialWidth: number; | ||||||
| 	initialHeight?: number | null; | 	initialHeight: number | null; | ||||||
| 	canResize?: boolean; | 	canResize?: boolean; | ||||||
| 	closeButton?: boolean; | 	closeButton?: boolean; | ||||||
| 	mini?: boolean; | 	mini?: boolean; | ||||||
|  | @ -386,7 +386,7 @@ function onBrowserResize() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| onMounted(() => { | onMounted(() => { | ||||||
| 	if (props.initialWidth) applyTransformWidth(props.initialWidth); | 	applyTransformWidth(props.initialWidth); | ||||||
| 	if (props.initialHeight) applyTransformHeight(props.initialHeight); | 	if (props.initialHeight) applyTransformHeight(props.initialHeight); | ||||||
| 
 | 
 | ||||||
| 	applyTransformTop((window.innerHeight / 2) - (rootEl.offsetHeight / 2)); | 	applyTransformTop((window.innerHeight / 2) - (rootEl.offsetHeight / 2)); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue