Skip to content

Instantly share code, notes, and snippets.

@hinaloe
Created March 23, 2019 06:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hinaloe/a9a5f1cdc3d7134466eaf27e784ffd05 to your computer and use it in GitHub Desktop.
Save hinaloe/a9a5f1cdc3d7134466eaf27e784ffd05 to your computer and use it in GitHub Desktop.
diff --git a/src/components/category.js b/src/components/category.js
index 26e08b8..655c0a0 100644
--- a/src/components/category.js
+++ b/src/components/category.js
@@ -134,7 +134,7 @@ export default class Category extends React.Component {
updateDisplay(display) {
var emojis = this.getEmojis()
- if (!emojis) {
+ if (!emojis || this.container == null) {
return
}
diff --git a/src/components/picker/__tests__/nimble-picker.test.js b/src/components/picker/__tests__/nimble-picker.test.js
index 81d2101..4a2d35f 100644
--- a/src/components/picker/__tests__/nimble-picker.test.js
+++ b/src/components/picker/__tests__/nimble-picker.test.js
@@ -1,5 +1,6 @@
import React from 'react'
import NimblePicker from '../nimble-picker'
+import NimbleEmojiIndex from '../../../utils/emoji-index/nimble-emoji-index'
import renderer from 'react-test-renderer'
import data from '../../../../data/apple'
@@ -7,7 +8,7 @@ import data from '../../../../data/apple'
function render(props = {}) {
const defaultProps = { data }
const component = renderer.create(
- <NimblePicker {...props} {...defaultProps} />,
+ <NimblePicker {...props} {...defaultProps} />,
)
return component.getInstance()
}
@@ -27,3 +28,35 @@ test('maintains category ids after it is filtered', () => {
const categoriesWithIds = subject.categories.filter((category) => category.id)
expect(categoriesWithIds.length).toEqual(10)
})
+
+test('with custom emoji and tooltip', () => {
+ const custom = [
+ {
+ id: 'custom_name',
+ name: 'custom_name',
+ short_names: ['custom_name'],
+ text: '',
+ emoticons: [],
+ keywords: ['custom_name'],
+ imageUrl: 'https://example.com/emoji',
+ custom: true,
+ },
+ {
+ id: 'custom_name2',
+ name: 'custom_name2',
+ short_names: ['custom_name2'],
+ text: '',
+ emoticons: [],
+ keywords: ['custom_name2'],
+ imageUrl: 'https://example.com/emoji',
+ custom: true,
+ }
+ ]
+ const subject = render({
+ emojiTooltip: true,
+ autoFocus: true,
+ // emojisToShowFilter: emoji => emoji.id && emoji.id.startsWith('custom'),
+ custom,
+ })
+ subject.handleSearch(new NimbleEmojiIndex(subject.data).search("custom_", {custom}))
+})
\ No newline at end of file
diff --git a/src/components/picker/nimble-picker.js b/src/components/picker/nimble-picker.js
index 736e92f..4b526ec 100644
--- a/src/components/picker/nimble-picker.js
+++ b/src/components/picker/nimble-picker.js
@@ -355,7 +355,9 @@ export default class NimblePicker extends React.PureComponent {
}
this.forceUpdate()
- this.scroll.scrollTop = 0
+ if (this.scroll) {
+ this.scroll.scrollTop = 0
+ }
this.handleScroll()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment