feat: add emoji

pull/103/head
crazywoola 3 years ago
parent ae26dd1abb
commit 01384e634c

@ -1,16 +1,4 @@
'use client' 'use client'
declare global {
namespace JSX {
interface IntrinsicElements {
'em-emoji': React.DetailedHTMLProps<
React.HTMLAttributes<HTMLElement>,
HTMLElement
>;
}
}
}
import data from '@emoji-mart/data' import data from '@emoji-mart/data'
import { init } from 'emoji-mart' import { init } from 'emoji-mart'
// import AppIcon from '@/app/components/base/app-icon' // import AppIcon from '@/app/components/base/app-icon'
@ -25,6 +13,17 @@ import {
} from '@heroicons/react/24/outline' } from '@heroicons/react/24/outline'
import React from 'react' import React from 'react'
declare global {
namespace JSX {
interface IntrinsicElements {
'em-emoji': React.DetailedHTMLProps<
React.HTMLAttributes<HTMLElement>,
HTMLElement
>;
}
}
}
init({ data }) init({ data })
const backgroundColors = [ const backgroundColors = [
@ -122,7 +121,12 @@ const EmojiSelect: FC<IEmojiSelectProps> = ({
</div> </div>
} }
const EmojiPicker: FC = () => { interface IEmojiPickerProps {
onSelect?: (emoji: string, background: string) => void
}
const EmojiPicker: FC<IEmojiPickerProps> = ({
onSelect
}) => {
const [selectedEmoji, setSelectedEmoji] = useState('') const [selectedEmoji, setSelectedEmoji] = useState('')
const [selectBackground, setSelectBackground] = useState('') const [selectBackground, setSelectBackground] = useState('')
@ -140,7 +144,10 @@ const EmojiPicker: FC = () => {
<EmojiSelect onSelect={(itm) => { <EmojiSelect onSelect={(itm) => {
setSelectedEmoji(itm) setSelectedEmoji(itm)
}} /> }} />
<ColorSelect selectedEmoji={selectedEmoji} onSelect={color => setSelectBackground(color)} /> <ColorSelect selectedEmoji={selectedEmoji} onSelect={color => {
setSelectBackground(color)
onSelect && onSelect(selectedEmoji, color)
}} />
<Divider className='m-0' /> <Divider className='m-0' />
<div className='w-full flex items-center justify-center p-3'> <div className='w-full flex items-center justify-center p-3'>
<Button type="primary" className='w-full' onClick={() => { }}> <Button type="primary" className='w-full' onClick={() => { }}>

Loading…
Cancel
Save