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.
@@ -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
- setTimeout(function () {
15771
- var _window3;
15783
+ var _window3;
15772
15784
 
15773
- (_window3 = window) == null ? void 0 : _window3.localStorage.setItem(RECENTLY_USED_LS_KEY, JSON.stringify(nextList)); // Prevents the change from being seen immediately.
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
- }, 250);
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 = getRecentlyUsed();
16289
+ var recentlyUsed = React.useMemo(function () {
16290
+ return getRecentlyUsed();
16291
+ }, [recentlyUsedUpdated]);
16271
16292
  var emojiStyle = useEmojiStyleConfig();
16272
16293
 
16273
16294
  if (searchTerm) {