2121 class =" emoji-picker"
2222 :class =" { 'picker-reaction': emojiReaction }"
2323 :style =" {
24- top: `${emojiPickerHeight}px`,
25- right: positionRight ? '85px' : '',
26- display: emojiPickerHeight || !emojiReaction ? 'initial' : 'none'
24+ height: `${emojiPickerHeight}px`,
25+ top: positionTop ? emojiPickerHeight : `${emojiPickerTop}px`,
26+ right: positionTop ? '-50px' : positionRight ? '70px' : '',
27+ display: emojiPickerTop || !emojiReaction ? 'initial' : 'none'
2728 }"
2829 >
2930 <div class =" emoji-picker__search" >
@@ -60,11 +61,18 @@ export default {
6061 EmojiPicker,
6162 SvgIcon
6263 },
63- props: [' emojiOpened' , ' emojiReaction' , ' roomFooterRef' , ' positionRight' ],
64+ props: [
65+ ' emojiOpened' ,
66+ ' emojiReaction' ,
67+ ' roomFooterRef' ,
68+ ' positionTop' ,
69+ ' positionRight'
70+ ],
6471 data () {
6572 return {
6673 search: ' ' ,
67- emojiPickerHeight: ' '
74+ emojiPickerHeight: 320 ,
75+ emojiPickerTop: 0
6876 }
6977 },
7078 methods: {
@@ -73,17 +81,20 @@ export default {
7381 },
7482 openEmoji (ev ) {
7583 this .$emit (' openEmoji' , true )
76- this .setEmojiPickerHeight (ev .clientY )
84+ this .setEmojiPickerHeight (ev .clientY , ev . view . innerHeight )
7785 },
78- setEmojiPickerHeight (clientY ) {
86+ setEmojiPickerHeight (clientY , innerHeight ) {
7987 setTimeout (() => {
8088 if (! this .roomFooterRef ) return
8189
90+ if (innerHeight < 700 ) this .emojiPickerHeight = 300
91+
8292 const roomFooterTop = this .roomFooterRef .getBoundingClientRect ().top
83- const pickerTopPosition = roomFooterTop - clientY > 320
93+ const pickerTopPosition =
94+ roomFooterTop - clientY > this .emojiPickerHeight - 80
8495
85- if (pickerTopPosition) this .emojiPickerHeight = clientY
86- else this .emojiPickerHeight = clientY - 320
96+ if (pickerTopPosition) this .emojiPickerTop = clientY
97+ else this .emojiPickerTop = clientY - this . emojiPickerHeight
8798 }, 0 )
8899 }
89100 }
@@ -96,23 +107,13 @@ export default {
96107 display : flex ;
97108}
98109
99- .regular-input {
100- padding : 0.5rem 1rem ;
101- border-radius : 3px ;
102- border : var (--chat-border-style );
103- width : 20rem ;
104- height : 12rem ;
105- outline : none ;
106- }
107-
108110.emoji-picker {
109111 position : absolute ;
110112 z-index : 9999 ;
111113 bottom : 32px ;
112114 right : 10px ;
113115 border : var (--chat-border-style );
114- width : 15rem ;
115- height : 20rem ;
116+ width : 240px ;
116117 overflow : scroll ;
117118 padding : 1rem ;
118119 box-sizing : border-box ;
0 commit comments