From ad93c35912571a87f91c97d342a19d3e93a1cb97 Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 22 Jan 2026 15:50:30 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=9B=BF=E6=8D=A2;=20=E5=AE=A2=E8=BF=90?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/actions/ConversationActions.js | 25 +++++++++++++++++-- src/channel/bubbleMsgUtils.js | 5 ++-- .../Conversations/Online/Input/Template.jsx | 2 ++ 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/actions/ConversationActions.js b/src/actions/ConversationActions.js index 98f20d6..ee0c85f 100644 --- a/src/actions/ConversationActions.js +++ b/src/actions/ConversationActions.js @@ -23,6 +23,12 @@ export const fetchTemplates = async (params) => { 'first_message_for_not_reply', // 'free_style_3', // 'free_style_4', + // CR + 'notification_of_following_up_by_cr_v3','notification_of_following_up_by_cr_v1', + 'notification_of_following_up_by_cr_v2', + 'membership_activation_update_by_cr_v1', '45d_before_the_trip_referral_voucher_by_cr_v0', + 'membership_activation_update_by_cr_v0', + 'departure_reminder_by_cr_v5','departure_reminder_by_cr_v2', ]; // shouwcase const scNames = ['trip_planner_showcase', 'showcase_different', 'order_status_updated']; @@ -37,6 +43,13 @@ export const fetchTemplates = async (params) => { 'one_day_before_ending_the_trip_contacted_by_yuni','one_day_before_ending_the_trip_first_time_by_yuni', 'post_booking_confirmation_welcome', ]; + const crNamesAuto = [ + 'notification_of_status_changed', 'notification_of_next_trip_planning_by_cr_v2', + 'notification_of_payment_received_3_asea_by_cr', 'one_day_after_payment_by_yuni', + '30_days_after_end_of_the_trip_asean_referral_voucher_by_cr', + '7notification_of_one_day_before_ending_the_trip_only_asean_by_cr_v7', + 'notification_of_one_day_before_ending_the_trip_by_cr_v2', + ]; const crNamesOmit = [ 'birthday_greetings_by_marketing','one_day_before_ending_the_trip_by_marketing', 'introduce_the_voucher_one_day_before_ending_the_trip_by_marketing', @@ -61,8 +74,16 @@ export const fetchTemplates = async (params) => { components: groupBy(ele.components, (_c) => _c.type.toLowerCase()), key: ele.name, // displayName: ele.name.startsWith('order_updated') ? templatesDisplayNameMap['order_updated']+`_${i}` : templatesDisplayNameMap?.[ele.name] || ele.name, - displayName: templatesDisplayNameMap?.[ele.name] || (ele.name.startsWith('order_updated') ? templatesDisplayNameMap['order_updated']+`_${i}` : ele.name), - displayLanguage: crNamesOmit.includes(ele.name) ? '客运-' : (crNames.includes(ele.name) || ele.name.includes('by_cr')) ? ele.language + '-客运' : scNames.includes(ele.name) ? ele.language + '-示例' : ele.language, + displayName: templatesDisplayNameMap?.[ele.name] || (ele.name.startsWith('order_updated') ? templatesDisplayNameMap['order_updated'] + `_${i}` : ele.name), + displayLanguage: crNamesOmit.includes(ele.name) + ? '客运-' + : crNamesAuto.includes(ele.name) + ? '客运Task' + : crNames.includes(ele.name) || ele.name.includes('by_cr') + ? ele.language + '-客运' + : scNames.includes(ele.name) + ? ele.language + '-示例' + : ele.language, })) const top2Name = topName.concat(canUseTemplates.filter(_t => _t.name.startsWith('order_updated')).map(_tem => _tem.name)); diff --git a/src/channel/bubbleMsgUtils.js b/src/channel/bubbleMsgUtils.js index 6f0c1eb..9b9ba23 100644 --- a/src/channel/bubbleMsgUtils.js +++ b/src/channel/bubbleMsgUtils.js @@ -66,9 +66,8 @@ export const replaceTemplateString = (str, replacements) => { let keys = str.match(/{{(.*?)}}/g).map(key => key.replace(/{{|}}/g, '')); for (let i = 0; i < keys.length; i++) { - let replaceValue = replacements[i]; - let template = new RegExp(`{{${keys[i]}}}`, 'g'); - result = result.replace(template, replaceValue); + const replaceValue = replacements[i]; + result = result.replaceAll(`{{${keys[i]}}}`, replaceValue); } return result; diff --git a/src/views/Conversations/Online/Input/Template.jsx b/src/views/Conversations/Online/Input/Template.jsx index 0b07416..0e98305 100644 --- a/src/views/Conversations/Online/Input/Template.jsx +++ b/src/views/Conversations/Online/Input/Template.jsx @@ -356,9 +356,11 @@ const InputTemplate = ({ disabled = false, invokeSendMessage, channel }) => { <>