Page MenuHomePhorge

D8282.1767389831.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D8282.1767389831.diff

diff --git a/native/components/emoji-keyboard.react.js b/native/components/emoji-keyboard.react.js
--- a/native/components/emoji-keyboard.react.js
+++ b/native/components/emoji-keyboard.react.js
@@ -1,7 +1,10 @@
// @flow
+import AsyncStorage from '@react-native-async-storage/async-storage';
import * as React from 'react';
-import EmojiPicker from 'rn-emoji-keyboard';
+import EmojiPicker, { useRecentPicksPersistence } from 'rn-emoji-keyboard';
+
+const STORAGE_KEY = 'EMOJI_KEYBOARD_RECENT';
const categoryOrder = [
'recently_used',
@@ -17,6 +20,23 @@
'search',
];
+const initializationCallback = async () => {
+ const recentlyUsedEmojis = await AsyncStorage.getItem(STORAGE_KEY);
+ return JSON.parse(recentlyUsedEmojis ?? '[]');
+};
+
+const onStateChangeCallback = async nextRecentlyUsedEmojis => {
+ await AsyncStorage.setItem(
+ STORAGE_KEY,
+ JSON.stringify(nextRecentlyUsedEmojis),
+ );
+};
+
+const useRecentPicksPersistenceArgs = {
+ initialization: initializationCallback,
+ onStateChange: onStateChangeCallback,
+};
+
export type EmojiSelection = {
+emoji: string,
+name: string,
@@ -35,6 +55,8 @@
function EmojiKeyboard(props: Props): React.Node {
const { onEmojiSelected, emojiKeyboardOpen, onEmojiKeyboardClose } = props;
+ useRecentPicksPersistence(useRecentPicksPersistenceArgs);
+
return (
<EmojiPicker
onEmojiSelected={onEmojiSelected}

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 2, 9:37 PM (51 m, 43 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5883317
Default Alt Text
D8282.1767389831.diff (1 KB)

Event Timeline