From fd3ccdf32a7b7b05f37b864d834dea2ece479762 Mon Sep 17 00:00:00 2001 From: "hyunwoo93.cha" Date: Fri, 26 Jul 2024 15:18:38 +0900 Subject: [PATCH] encrypt / decrypt logic isolate --- .../components/MobileSend/MobileSendPopUp.jsx | 32 ++++++------------- com.twin.app.shoptime/src/utils/Config.js | 3 ++ .../src/utils/helperMethods.js | 18 +++++++++++ 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/com.twin.app.shoptime/src/components/MobileSend/MobileSendPopUp.jsx b/com.twin.app.shoptime/src/components/MobileSend/MobileSendPopUp.jsx index 6fef0e5e..2e73fdce 100644 --- a/com.twin.app.shoptime/src/components/MobileSend/MobileSendPopUp.jsx +++ b/com.twin.app.shoptime/src/components/MobileSend/MobileSendPopUp.jsx @@ -32,7 +32,11 @@ import { } from "../../actions/eventActions"; import { sendLogShopByMobile } from "../../actions/logActions"; import { ACTIVE_POPUP, LOG_TP_NO } from "../../utils/Config"; -import { $L } from "../../utils/helperMethods"; +import { + $L, + decryptPhoneNumber, + encryptPhoneNumber, +} from "../../utils/helperMethods"; import CustomImage from "../CustomImage/CustomImage"; import TButton from "../TButton/TButton"; import TPopUp from "../TPopUp/TPopUp"; @@ -225,10 +229,6 @@ export default function MobileSendPopUp({ } }, [deviceInfo, dispatch]); - useEffect(() => { - if (phoneNumberList) setRecentSentNumber(phoneNumberList); - }, []); - useEffect(() => { if (!chkAgreeBtn) { if (recentSentNumber && recentSentNumber.length > 0) { @@ -260,10 +260,13 @@ export default function MobileSendPopUp({ (_, index) => index !== selectedIndex ); setRecentSentNumber(updateItems); + + const encryptedNumbers = updateItems.map(encryptPhoneNumber); + dispatch( changeLocalSettings({ phoneNumbers: { - phoneNumberList: updateItems, + phoneNumberList: encryptedNumbers, }, }) ); @@ -282,13 +285,6 @@ export default function MobileSendPopUp({ naturalNumber = "82" + naturalNumber; } - const encryptPhoneNumber = (phoneNumber) => { - if(typeof window === 'object'){ - return window.CryptoJS.AES.encrypt(phoneNumber, SECRET_KEY).toString(); - } - return phoneNumber; - }; - if (recentSentNumber && recentSentNumber.length > 0) { const updatedNumbers = [...recentSentNumber]; @@ -518,18 +514,10 @@ export default function MobileSendPopUp({ useEffect(() => { if (phoneNumberList) { - const decryptPhoneNumber = (encryptedPhoneNumber) => { - if(typeof window === 'object'){ - const bytes = window.CryptoJS.AES.decrypt(encryptedPhoneNumber, SECRET_KEY); - return bytes.toString(window.CryptoJS.enc.Utf8); - } - return encryptedPhoneNumber; - }; - const decryptedNumbers = phoneNumberList.map(decryptPhoneNumber); setRecentSentNumber(decryptedNumbers); } - }, []); + }, [phoneNumberList]); return ( <> diff --git a/com.twin.app.shoptime/src/utils/Config.js b/com.twin.app.shoptime/src/utils/Config.js index 43aa5c95..cff13245 100644 --- a/com.twin.app.shoptime/src/utils/Config.js +++ b/com.twin.app.shoptime/src/utils/Config.js @@ -92,6 +92,9 @@ export const PLAN = "PLAN"; export const ADD_PLAN = "ADD_PLAN"; export const MORE = "MORE"; +// cryptoJS Key +export const SECRET_KEY = "fy7BTKuM9eeTQqEC9sF3Iw5qG43Aaip"; + export const MYPAGE_TABS = { MY_INFO: 30800, MY_ORDERS: 30900, diff --git a/com.twin.app.shoptime/src/utils/helperMethods.js b/com.twin.app.shoptime/src/utils/helperMethods.js index a167fc42..3a112f80 100644 --- a/com.twin.app.shoptime/src/utils/helperMethods.js +++ b/com.twin.app.shoptime/src/utils/helperMethods.js @@ -6,6 +6,7 @@ import stringReSourceEn from "../../resources/en/strings.json"; import stringReSourceGb from "../../resources/gb/strings.json"; import stringReSourceRu from "../../resources/ru/strings.json"; import { getRicCode } from "../api/apiConfig"; +import { SECRET_KEY } from "./Config"; let _boundingRectCache = {}; const BOUNDING_RECT_IGNORE_TIME = 10; @@ -429,3 +430,20 @@ export const removeSpecificTags = (html) => { return sanitizedHtml; }; + +export const encryptPhoneNumber = (phoneNumber) => { + if (typeof window === "object") { + return window.CryptoJS.AES.encrypt(phoneNumber, SECRET_KEY).toString(); + } + + return phoneNumber; +}; + +export const decryptPhoneNumber = (encryptedPhoneNumber) => { + if (typeof window === "object") { + const bytes = window.CryptoJS.AES.decrypt(encryptedPhoneNumber, SECRET_KEY); + return bytes.toString(window.CryptoJS.enc.Utf8); + } + + return encryptedPhoneNumber; +};