From d13c53114bc18401566b503cb9da481d8d4c7dfd Mon Sep 17 00:00:00 2001
From: yikoyu <2282373181@qq.com>
Date: Wed, 3 May 2023 23:44:13 +0800
Subject: [PATCH] fix: cannot switch locale

emojiDataPromise is cached, making it impossible to switch languages later
---
 packages/picmo/src/createPicker.ts | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/packages/picmo/src/createPicker.ts b/packages/picmo/src/createPicker.ts
index f1d27ab..ffd0aa7 100644
--- a/packages/picmo/src/createPicker.ts
+++ b/packages/picmo/src/createPicker.ts
@@ -18,6 +18,7 @@ function initData(options: PickerOptions): Promise<DataStore> {
 let pickerIndex = 0;
 
 let emojiDataPromise;
+let __lastLocale__;
 
 function getPickerId() {
   return `picmo-${Date.now()}-${pickerIndex++}`;
@@ -41,8 +42,11 @@ export function createPicker(options: Partial<PickerOptions>): EmojiPicker {
   }));
 
   const events = new AppEvents();
-  if (!emojiDataPromise) {
+
+  const isLocaleChange = __lastLocale__ !== finalOptions.locale
+  if (!emojiDataPromise || isLocaleChange) {
     emojiDataPromise = initData(finalOptions);
+    __lastLocale__ = finalOptions.locale
   }
 
   const i18n = new Bundle(finalOptions.i18n);