emoji-picker-react 4.0.0-rc.11 → 4.0.0-rc.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/context/PickerContext.d.ts +1 -0
- package/dist/emoji-picker-react.cjs.development.js +27 -6
- package/dist/emoji-picker-react.cjs.development.js.map +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js +1 -1
- package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
- package/dist/emoji-picker-react.esm.js +28 -7
- package/dist/emoji-picker-react.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/body/RecentlyUsed.tsx +8 -2
- package/src/components/context/PickerContext.tsx +16 -0
- package/src/dataUtils/recentlyUsed.ts +5 -7
- package/src/hooks/useMouseDownHandlers.ts +5 -2
|
@@ -16,6 +16,7 @@ export declare function useEmojisThatFailedToLoadState(): ReactState<Set<string>
|
|
|
16
16
|
export declare function useIsPastInitialLoad(): boolean;
|
|
17
17
|
export declare function useEmojiVariationPickerState(): ReactState<DataEmoji | null>;
|
|
18
18
|
export declare function useSkinToneFanOpenState(): ReactState<boolean>;
|
|
19
|
+
export declare function useUpdateRecentlyUsed(): [number, () => void];
|
|
19
20
|
export declare type FilterState = Record<string, FilterDict>;
|
|
20
21
|
declare type ActiveCategoryState = null | string;
|
|
21
22
|
export {};
|
|
@@ -15486,6 +15486,7 @@ function PickerContextProvider(_ref) {
|
|
|
15486
15486
|
|
|
15487
15487
|
var filterRef = React.useRef(alphaNumericEmojiIndex);
|
|
15488
15488
|
var disallowClickRef = React.useRef(false);
|
|
15489
|
+
var recentlyUsedUpdateState = useDebouncedState(Date.now(), 250);
|
|
15489
15490
|
var searchTerm = useDebouncedState('', 100);
|
|
15490
15491
|
var skinToneFanOpenState = React.useState(false);
|
|
15491
15492
|
var activeSkinTone = React.useState(defaultSkinTone);
|
|
@@ -15500,6 +15501,7 @@ function PickerContextProvider(_ref) {
|
|
|
15500
15501
|
useMarkInitialLoad(setIsPastInitialLoad);
|
|
15501
15502
|
return React.createElement(PickerContext.Provider, {
|
|
15502
15503
|
value: {
|
|
15504
|
+
recentlyUsedUpdateState: recentlyUsedUpdateState,
|
|
15503
15505
|
filterRef: filterRef,
|
|
15504
15506
|
searchTerm: searchTerm,
|
|
15505
15507
|
activeCategoryState: activeCategoryState,
|
|
@@ -15513,6 +15515,7 @@ function PickerContextProvider(_ref) {
|
|
|
15513
15515
|
}, children);
|
|
15514
15516
|
}
|
|
15515
15517
|
var PickerContext = /*#__PURE__*/React.createContext({
|
|
15518
|
+
recentlyUsedUpdateState: [/*#__PURE__*/Date.now(), function () {}],
|
|
15516
15519
|
searchTerm: ['', function () {}],
|
|
15517
15520
|
activeCategoryState: [null, function () {}],
|
|
15518
15521
|
activeSkinTone: [exports.SkinTones.NEUTRAL, function () {}],
|
|
@@ -15593,6 +15596,16 @@ function useSkinToneFanOpenState() {
|
|
|
15593
15596
|
|
|
15594
15597
|
return skinToneFanOpenState;
|
|
15595
15598
|
}
|
|
15599
|
+
function useUpdateRecentlyUsed() {
|
|
15600
|
+
var _React$useContext10 = React.useContext(PickerContext),
|
|
15601
|
+
recentlyUsedUpdateState = _React$useContext10.recentlyUsedUpdateState;
|
|
15602
|
+
|
|
15603
|
+
var recentlyUsedUpdated = recentlyUsedUpdateState[0],
|
|
15604
|
+
setRecentlyUsedUpdate = recentlyUsedUpdateState[1];
|
|
15605
|
+
return [recentlyUsedUpdated, function updateRecentlyUsed() {
|
|
15606
|
+
setRecentlyUsedUpdate(Date.now());
|
|
15607
|
+
}];
|
|
15608
|
+
}
|
|
15596
15609
|
|
|
15597
15610
|
function useActiveCategoryScrollDetection(bodyRef) {
|
|
15598
15611
|
var _useActiveCategorySta = useActiveCategoryState(),
|
|
@@ -15767,11 +15780,9 @@ function setRecentlyUsed(emoji, skinTone) {
|
|
|
15767
15780
|
nextList.length = Math.min(nextList.length, 14);
|
|
15768
15781
|
|
|
15769
15782
|
try {
|
|
15770
|
-
|
|
15771
|
-
var _window3;
|
|
15783
|
+
var _window3;
|
|
15772
15784
|
|
|
15773
|
-
|
|
15774
|
-
}, 10);
|
|
15785
|
+
(_window3 = window) == null ? void 0 : _window3.localStorage.setItem(RECENTLY_USED_LS_KEY, JSON.stringify(nextList)); // Prevents the change from being seen immediately.
|
|
15775
15786
|
} catch (_unused2) {// ignore
|
|
15776
15787
|
}
|
|
15777
15788
|
}
|
|
@@ -15838,6 +15849,10 @@ function useMouseDownHandlers(BodyRef) {
|
|
|
15838
15849
|
|
|
15839
15850
|
var onEmojiClick = useOnEmojiClickConfig();
|
|
15840
15851
|
var emojiStyle = useEmojiStyleConfig();
|
|
15852
|
+
|
|
15853
|
+
var _useUpdateRecentlyUse = useUpdateRecentlyUsed(),
|
|
15854
|
+
updateRecentlyUsed = _useUpdateRecentlyUse[1];
|
|
15855
|
+
|
|
15841
15856
|
React.useEffect(function () {
|
|
15842
15857
|
if (!BodyRef.current) {
|
|
15843
15858
|
return;
|
|
@@ -15874,6 +15889,7 @@ function useMouseDownHandlers(BodyRef) {
|
|
|
15874
15889
|
|
|
15875
15890
|
var unified = emojiUnified(emoji);
|
|
15876
15891
|
var skinToneToUse = activeVariationFromUnified(unified) || activeSkinTone;
|
|
15892
|
+
updateRecentlyUsed();
|
|
15877
15893
|
setRecentlyUsed(emoji, skinToneToUse);
|
|
15878
15894
|
onEmojiClick(event, emojiClickOutput(emoji, skinToneToUse));
|
|
15879
15895
|
}
|
|
@@ -15904,7 +15920,7 @@ function useMouseDownHandlers(BodyRef) {
|
|
|
15904
15920
|
closeAllOpenToggles();
|
|
15905
15921
|
setAnchoredEmojiRef(event.target);
|
|
15906
15922
|
setEmojiVariationPicker(emoji);
|
|
15907
|
-
},
|
|
15923
|
+
}, 500);
|
|
15908
15924
|
}
|
|
15909
15925
|
|
|
15910
15926
|
function onMouseUp() {
|
|
@@ -16264,10 +16280,15 @@ function EmojiCategory(_ref) {
|
|
|
16264
16280
|
function RecentlyUsed(_ref) {
|
|
16265
16281
|
var categoryConfig = _ref.categoryConfig;
|
|
16266
16282
|
|
|
16283
|
+
var _useUpdateRecentlyUse = useUpdateRecentlyUsed(),
|
|
16284
|
+
recentlyUsedUpdated = _useUpdateRecentlyUse[0];
|
|
16285
|
+
|
|
16267
16286
|
var _useSearchTermState = useSearchTermState(),
|
|
16268
16287
|
searchTerm = _useSearchTermState[0];
|
|
16269
16288
|
|
|
16270
|
-
var recentlyUsed =
|
|
16289
|
+
var recentlyUsed = React.useMemo(function () {
|
|
16290
|
+
return getRecentlyUsed();
|
|
16291
|
+
}, [recentlyUsedUpdated]);
|
|
16271
16292
|
var emojiStyle = useEmojiStyleConfig();
|
|
16272
16293
|
|
|
16273
16294
|
if (searchTerm) {
|