From de2d2f3e0cfc36905f81365624e66a4c2783457f Mon Sep 17 00:00:00 2001 From: Jakub Grzywacz Date: Fri, 30 Jul 2021 12:53:00 +0200 Subject: [PATCH] Feature / recently used emojis (#14) * feat: add translations to recently used * fix: sort order * feat: add recently used emojis * docs: add examples * refactor: change hideRecentlyUsed to enableRecentlyUsed * docs: add enableRecentlyUsed to docs * fix: delete unnecessary arrow * fix: from code review --- README.md | 5 +- .../assets/enable-recently-used-preview.jpg | Bin 0 -> 34370 bytes example/src/App.tsx | 6 ++- example/src/EnableRecently/EnableRecently.tsx | 44 ++++++++++++++++++ example/src/Examples/Examples.tsx | 5 ++ src/components/Categories.tsx | 14 ++++-- src/components/EmojiCategory.tsx | 2 +- src/components/EmojiStaticKeyboard.tsx | 24 +++++++--- src/components/Icon.tsx | 3 ++ src/components/SingleEmoji.tsx | 2 +- src/contexts/KeyboardContext.tsx | 1 + src/contexts/KeyboardProvider.tsx | 1 + src/store/reducers/RecentEmojiReducer.ts | 12 ++--- src/translation/en.ts | 1 + src/translation/pl.ts | 3 +- src/types.ts | 5 +- 16 files changed, 105 insertions(+), 23 deletions(-) create mode 100644 example/assets/enable-recently-used-preview.jpg create mode 100644 example/src/EnableRecently/EnableRecently.tsx diff --git a/README.md b/README.md index 02d4e3d..9ac60dc 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,8 @@ export default function App() { | open | boolean | false | yes | Opens modal picker | | onClose | function | undefined | yes | Request close modal *runs when onEmojiSelected or backdrop pressed* | | emojiSize | number | 28 | no | Custom emoji size | +| enableRecentlyUsed | boolean | false | no | Enable recently used emojis in categories | +| categoryPosition | 'floating' \| 'top' \| 'bottom' | 'floating' | no | Specify category container position | | headerStyles | TextStyle | {} | no | Override category name styles | | knobStyles | ViewStyle | {} | no | Override knob styles | | containerStyles | ViewStyle | {} | no | Override container styles | @@ -60,7 +62,6 @@ export default function App() { | onCategoryChangeFailed | function | warn(info) | no | Callback on category change failed (info: {index, highestMeasuredFrameIndex, averageItemLength}) | | translation | CategoryTranslation | en | no | Translation object *see translation section* | | disabledCategory | CategoryTypes[] | [] | no | Hide categories by passing their slugs | -| categoryPosition | CategoryPosition | categoryPosition | no | Specify category container position | ## 📊 Comparison @@ -119,6 +120,8 @@ You can clone the repo and run `yarn example ios` or `yarn example android` to p ![Preview](/example/assets/static-modal-preview.jpg) ### [Static](/example/src/Static/Static.tsx) ![Preview](/example/assets/static-preview.jpg) +### [Recently used](/example/src/EnableRecently/EnableRecently.tsx) +![Preview](/example/assets/enable-recently-used-preview.jpg) ### [Categories Top](/example/src/TopCategory/TopCategory.tsx) ![Preview](/example/assets/categories-top-preview.jpg) ### [Categories Bottom](/example/src/BottomCategory/BottomCategory.tsx) diff --git a/example/assets/enable-recently-used-preview.jpg b/example/assets/enable-recently-used-preview.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4461b9e1a0d770907dfa1a15c93fcc88e15b9bb GIT binary patch literal 34370 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 { + + + { /> - - ); diff --git a/example/src/EnableRecently/EnableRecently.tsx b/example/src/EnableRecently/EnableRecently.tsx new file mode 100644 index 0000000..6ab7d68 --- /dev/null +++ b/example/src/EnableRecently/EnableRecently.tsx @@ -0,0 +1,44 @@ +import * as React from 'react'; +import { StyleSheet, Text, TouchableOpacity } from 'react-native'; +import { SafeAreaView } from 'react-native-safe-area-context'; +import EmojiPicker from 'rn-emoji-keyboard'; +import type { EmojiType } from 'src/types'; + +const EnableRecently = () => { + const [result, setResult] = React.useState(); + const [isModalOpen, setIsModalOpen] = React.useState(false); + + const handlePick = (emoji: EmojiType) => { + console.log(emoji); + setResult(emoji.emoji); + setIsModalOpen((prev) => !prev); + }; + return ( + + Result: {result} + setIsModalOpen(true)}> + Open + + + setIsModalOpen(false)} + enableRecentlyUsed + /> + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + }, + text: { + textAlign: 'center', + margin: 64, + fontSize: 18, + }, +}); + +export default EnableRecently; diff --git a/example/src/Examples/Examples.tsx b/example/src/Examples/Examples.tsx index 675a11a..f3af438 100644 --- a/example/src/Examples/Examples.tsx +++ b/example/src/Examples/Examples.tsx @@ -11,6 +11,7 @@ type RootStackParamList = { DisabledCategories: undefined; StaticModal: undefined; Static: undefined; + EnableRecently: undefined; TopCategory: undefined; BottomCategory: undefined; }; @@ -39,6 +40,10 @@ const Examples = ({ navigation }: Props) => { title="Static Component" onPress={() => navigation.navigate('Static')} /> +