From aaf1a1989b377ea981a67a6d763667639503d5dc Mon Sep 17 00:00:00 2001 From: louistiti Date: Sat, 18 Nov 2023 17:05:29 +0800 Subject: [PATCH] feat(web app): cast props value as boolean when necessary --- app/src/js/chatbot.jsx | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/app/src/js/chatbot.jsx b/app/src/js/chatbot.jsx index a3923c35..2d9d7fc2 100644 --- a/app/src/js/chatbot.jsx +++ b/app/src/js/chatbot.jsx @@ -104,24 +104,34 @@ export default class Chatbot { if (typeof string === 'string' && string.includes('<')) { const root = createRoot(container) - const parseProps = (props, keyID, componentParams) => { - props.key = keyID + const parseProps = (componentProps, keyID, componentParams) => { + componentProps.key = keyID - Object.keys(props).forEach((key) => { + console.log('componentProps', componentProps) + + Object.keys(componentProps).forEach((key) => { // TODO: dynamic props parsing (font-size -> fontSize) if (key === 'fontsize') { - props.fontSize = props[key] + componentProps.fontSize = componentProps[key] + delete componentProps[key] } if (key === 'iconname') { - props.iconName = props[key] + componentProps.iconName = componentProps[key] + delete componentProps[key] } - if (props[key] === '') { - props[key] = true + if (componentProps[key] === 'true') { + componentProps[key] = true + } else if (componentProps[key] === 'false') { + componentProps[key] = false + } + + if (componentProps[key] === '') { + componentProps[key] = true } }) - return props + return componentProps } const parseChildren = (children) => { return children.map((child) => { @@ -137,6 +147,8 @@ export default class Chatbot { return null } + console.log('domNode', domNode) + for (let i = 0; i < Object.keys(auroraComponents).length; i += 1) { // TODO: play widget animation on show