From c00b19f78a5cb2edd4c18af29d2bf072f6cf8126 Mon Sep 17 00:00:00 2001 From: Liam Hongman Cho Date: Fri, 5 Apr 2024 15:08:44 +0900 Subject: [PATCH 1/4] Limit number of simple templates for carousel template. --- src/ui/TemplateMessageItemBody/index.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ui/TemplateMessageItemBody/index.tsx b/src/ui/TemplateMessageItemBody/index.tsx index 28208eb66..05729c8a1 100644 --- a/src/ui/TemplateMessageItemBody/index.tsx +++ b/src/ui/TemplateMessageItemBody/index.tsx @@ -242,11 +242,15 @@ export function TemplateMessageItemBody({ throw new Error('TemplateMessageItemBody | template key suggests composite template but template data is missing view_variables. See error log in console for details'); } const reservationKey = removeAtAndBraces(carouselItem.items); - const simpleTemplateDataList: SimpleTemplateData[] | undefined = templateData.view_variables[reservationKey]; + let simpleTemplateDataList: SimpleTemplateData[] | undefined = templateData.view_variables[reservationKey]; if (!simpleTemplateDataList) { logger.error('TemplateMessageItemBody | no reservation key found in view_variables: ', reservationKey, templateData.view_variables); throw new Error('TemplateMessageItemBody | no reservation key found in view_variables. See error log in console for details'); } + if (simpleTemplateDataList.length > 10) { + logger.warning('TemplateMessageItemBody | composite template with more than ten simple templates will only render the first ten items: ', reservationKey, templateData.view_variables); + simpleTemplateDataList = simpleTemplateDataList.slice(0, 10); + } const { maxVersion, filledTemplates } = getFilledMessageTemplateItemsForCarouselTemplateByMessagePayload( simpleTemplateDataList, ); @@ -258,8 +262,13 @@ export function TemplateMessageItemBody({ items: filledTemplates, }]; } else if (Array.isArray(carouselItem.items)) { + let simpleTemplateDataList: SendbirdUiTemplate[] = carouselItem.items; + if (carouselItem.items.length > 10) { + logger.warning('TemplateMessageItemBody | composite template with more than ten simple templates will only render the first ten items: ', carouselItem); + simpleTemplateDataList = carouselItem.items.slice(0, 10); + } const { maxVersion, filledTemplates } = getFilledMessageTemplateItemsForCarouselTemplate( - carouselItem.items, + simpleTemplateDataList, ); result.isComposite = true; result.templateVersion = Math.max(cachedTemplate.version, maxVersion); From b2c87ae1ea3ce31d7f35dc0709f866ce9b31fecc Mon Sep 17 00:00:00 2001 From: Liam Hongman Cho Date: Fri, 5 Apr 2024 15:13:27 +0900 Subject: [PATCH 2/4] naming update --- src/ui/TemplateMessageItemBody/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/TemplateMessageItemBody/index.tsx b/src/ui/TemplateMessageItemBody/index.tsx index 05729c8a1..52d6dce2e 100644 --- a/src/ui/TemplateMessageItemBody/index.tsx +++ b/src/ui/TemplateMessageItemBody/index.tsx @@ -262,13 +262,13 @@ export function TemplateMessageItemBody({ items: filledTemplates, }]; } else if (Array.isArray(carouselItem.items)) { - let simpleTemplateDataList: SendbirdUiTemplate[] = carouselItem.items; + let simpleTemplates: SendbirdUiTemplate[] = carouselItem.items; if (carouselItem.items.length > 10) { logger.warning('TemplateMessageItemBody | composite template with more than ten simple templates will only render the first ten items: ', carouselItem); - simpleTemplateDataList = carouselItem.items.slice(0, 10); + simpleTemplates = carouselItem.items.slice(0, 10); } const { maxVersion, filledTemplates } = getFilledMessageTemplateItemsForCarouselTemplate( - simpleTemplateDataList, + simpleTemplates, ); result.isComposite = true; result.templateVersion = Math.max(cachedTemplate.version, maxVersion); From bb064bbca519b1c4a429c88c4585cf749ce151c8 Mon Sep 17 00:00:00 2001 From: Liam Hongman Cho Date: Fri, 5 Apr 2024 15:19:37 +0900 Subject: [PATCH 3/4] Update src/ui/TemplateMessageItemBody/index.tsx Co-authored-by: Baek EunSeo --- src/ui/TemplateMessageItemBody/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/TemplateMessageItemBody/index.tsx b/src/ui/TemplateMessageItemBody/index.tsx index 52d6dce2e..6dffdb4d4 100644 --- a/src/ui/TemplateMessageItemBody/index.tsx +++ b/src/ui/TemplateMessageItemBody/index.tsx @@ -264,7 +264,7 @@ export function TemplateMessageItemBody({ } else if (Array.isArray(carouselItem.items)) { let simpleTemplates: SendbirdUiTemplate[] = carouselItem.items; if (carouselItem.items.length > 10) { - logger.warning('TemplateMessageItemBody | composite template with more than ten simple templates will only render the first ten items: ', carouselItem); + logger.warning('TemplateMessageItemBody | composite template with more than 10 simple templates will only render the first 10 items: ', carouselItem); simpleTemplates = carouselItem.items.slice(0, 10); } const { maxVersion, filledTemplates } = getFilledMessageTemplateItemsForCarouselTemplate( From 21d86cc717e606f8ae09109a51c4f31893a0cc01 Mon Sep 17 00:00:00 2001 From: Liam Hongman Cho Date: Fri, 5 Apr 2024 15:19:46 +0900 Subject: [PATCH 4/4] Update src/ui/TemplateMessageItemBody/index.tsx Co-authored-by: Baek EunSeo --- src/ui/TemplateMessageItemBody/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/TemplateMessageItemBody/index.tsx b/src/ui/TemplateMessageItemBody/index.tsx index 6dffdb4d4..dc098f895 100644 --- a/src/ui/TemplateMessageItemBody/index.tsx +++ b/src/ui/TemplateMessageItemBody/index.tsx @@ -248,7 +248,7 @@ export function TemplateMessageItemBody({ throw new Error('TemplateMessageItemBody | no reservation key found in view_variables. See error log in console for details'); } if (simpleTemplateDataList.length > 10) { - logger.warning('TemplateMessageItemBody | composite template with more than ten simple templates will only render the first ten items: ', reservationKey, templateData.view_variables); + logger.warning('TemplateMessageItemBody | composite template with more than 10 simple templates will only render the first 10 items: ', reservationKey, templateData.view_variables); simpleTemplateDataList = simpleTemplateDataList.slice(0, 10); } const { maxVersion, filledTemplates } = getFilledMessageTemplateItemsForCarouselTemplateByMessagePayload(