I am developing an app for chat using laravel 5.6 and vue js. Though I am new at vue I have managed to get working using a package called
emoji-mart-vue from npm.
Everything is working fine except the emojis which get rendered in teaxtarea are shown as black and white while I need to display them in the original way they are shown in the emoji picker.
Any help in this regards is highly appreciated.
What I have tried:
TextareaEmojiPicker.vue
<
template
>
<
div
class
="
textarea-emoji-picker"
>
<
textarea
ref
="
textarea"
class
="
textarea"
:value
="
value"
@input
="
$emit('input', $event.target.value)"
>
<
/textarea
>
<
picker
v-show
="
showEmojiPicker"
title
="
Pick your emoji..."
emoji
="
point_up"
@select
="
addEmoji"
class
="
emoji-trigger"
:class
="
{ 'triggered': showEmojiPicker }"
@mousedown.prevent
="
toggleEmojiPicker"
style
="
width:20px;height:20px"
viewBox
="
0 0 24 24"
<
path
fill
="
#888888"
d
="
M20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12M22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2A10,10 0 0,1 22,12M10,9.5C10,10.3 9.3,11 8.5,11C7.7,11 7,10.3 7,9.5C7,8.7 7.7,8 8.5,8C9.3,8 10,8.7 10,9.5M17,9.5C17,10.3 16.3,11 15.5,11C14.7,11 14,10.3 14,9.5C14,8.7 14.7,8 15.5,8C16.3,8 17,8.7 17,9.5M12,17.23C10.25,17.23 8.71,16.5 7.81,15.42L9.23,14C9.68,14.72 10.75,15.23 12,15.23C13.25,15.23 14.32,14.72 14.77,14L16.19,15.42C15.29,16.5 13.75,17.23 12,17.23Z"
/
>
<
/span
>
<
/template
>
<
script
>
import { Picker }
from
'
emoji-mart-vue'
;
export
default
{
components: { Picker },
name:
"
TextareaEmojiPicker"
,
props: {
value
: {
type:
String
,
default
:
'
'
data () {
return
{
showEmojiPicker:
false
methods: {
toggleEmojiPicker () {
this
.showEmojiPicker = !this.showEmojiPicker
addEmoji (emoji) {
const
textarea =
this
.$refs.textarea;
const
cursorPosition = textarea.selectionEnd;
const
start =
this
.
value
.substring(
0
, textarea.selectionStart);
const
end =
this
.
value
.substring(textarea.selectionStart);
const
text = start + emoji.native + end;
this
.$emit(
'
input'
, text);
textarea.focus();
this
.$nextTick(() => {
textarea.selectionEnd = cursorPosition + emoji.native.length;
<
/
script
>
<
style
scoped
>
box-sizing
:
border-box
;
.
textarea-emoji-picker
{
position
:
relative
;
width
:
400px
;
margin
:
0 auto
;
.
textarea
{
width
:
100%
;
min-height
:
300px
;
outline
:
none
;
box-shadow
:
none
;
padding
:
10px 28px 10px 10px
;
font-size
:
15px
;
border
:
1px solid #BABABA
;
color
:
#333
;
border-radius
:
2px
;
box-shadow
:
0px 2px 4px 0 rgba(0,0,0,0.1) inset
;
resize
:
vertical
;
.
emoji-mart
{
position
:
absolute
;
top
:
33px
;
right
:
10px
;
.
emoji-trigger
{
position
:
absolute
;
top
:
10px
;
right
:
10px
;
cursor
:
pointer
;
height
:
20px
;
.
emoji-trigger
path
{
transition
:
0.1s all
;
.
emoji-trigger:hover
path
{
fill
:
#000000
;
.
emoji-trigger
.
triggered
path
{
fill
:
darken(#FEC84A, 15%)
;
</
style
>
and
emoji-vue.vue
imports
TextareaEmojiPicker.vue
here:
<
template
>
<
div
class
="
emoji-page"
>
<
textarea-emoji-picker
v-model
="
text"
/
>
<
/template
>
<
script
>
import TextareaEmojiPicker
from
'
./TextareaEmojiPicker'
export
default
{
name:
"
emoji-vue"
,
components: { TextareaEmojiPicker },
data () {
return
{
text:
'
'
<
/
script
>
<
style
scoped
>
.
emoji-page
{
padding-top
:
50px
;
</
style
>
You should talk to the people who created it - they should provide technical support and will know more about their product than we will. If they don't, then find another package, as you will doubtless have further problems down the line!
A quick google would have found you the author:
emoji-mart-vue - Google Search
[
^
]
Read the question carefully.
Understand that English isn't everyone's first language so be lenient of bad
spelling and grammar.
If a question is poorly phrased then either ask for clarification, ignore it, or
edit the question
and fix the problem. Insults are not welcome.
Don't tell someone to read the manual. Chances are they have and don't get it.
Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.
1) The author is busy, or didn't get the message.
2) The author doesn't care to respond, or fix it.
Either way, it's a good sign to abandon that package, and use something that is supported within a "reasonable" timeframe.
Or read the source code, understand it, and fix the problem yourself. That's what we would have to do and we don't have any known need for whatever the heck it is that the package does...