From 6e7200dfba3d957f328eb6397d34d41b31f14cfa Mon Sep 17 00:00:00 2001 From: Mohamed Marrouchi Date: Tue, 17 Dec 2024 14:16:23 +0100 Subject: [PATCH] fix: btn display --- .../app-components/inputs/ToggleableInput.tsx | 2 +- .../visual-editor/form/ListMessageForm.tsx | 4 +- .../form/inputs/message/ButtonInput.tsx | 152 +++++++++--------- .../form/inputs/message/ButtonsInput.tsx | 41 ++--- 4 files changed, 93 insertions(+), 106 deletions(-) diff --git a/frontend/src/app-components/inputs/ToggleableInput.tsx b/frontend/src/app-components/inputs/ToggleableInput.tsx index 5a14777a..6094e3e7 100644 --- a/frontend/src/app-components/inputs/ToggleableInput.tsx +++ b/frontend/src/app-components/inputs/ToggleableInput.tsx @@ -41,7 +41,7 @@ export const ToggleableInput = forwardRef( }, [readOnlyValue, isDisabled, defaultValue]); return ( - + { const newIsDisabled = !isDisabled; diff --git a/frontend/src/components/visual-editor/form/ListMessageForm.tsx b/frontend/src/components/visual-editor/form/ListMessageForm.tsx index eae1d787..ae39c995 100644 --- a/frontend/src/components/visual-editor/form/ListMessageForm.tsx +++ b/frontend/src/components/visual-editor/form/ListMessageForm.tsx @@ -166,7 +166,7 @@ const ListMessageForm = () => { - + @@ -278,7 +278,7 @@ const ListMessageForm = () => { /> - + = ({ } = useFormContext(); return ( - <> - + + { + onChange({ ...button, title: e.target.value }); + }} + error={!!errors.message?.["buttons"]?.[idx]?.title} + helperText={ + errors.message?.["buttons"]?.[idx]?.title?.message || + (button.title.length === 20 + ? t("message.title_length_exceeded") + : null) + } + /> + {button.type === ButtonType.postback ? ( + { + if (disablePayload || value) { + return true; + } + + return t("message.payload_is_required"); + }, + }, + })} + onChange={(payload) => + onChange({ + ...button, + payload, + }) + } + disabled={disablePayload} + error={!!errors.message?.["buttons"]?.[idx]?.payload} + helperText={errors.message?.["buttons"]?.[idx]?.payload?.message} + /> + ) : ( { + if ( + button.type === ButtonType.web_url && + (disablePayload || value) + ) { + return true; + } + + return t("message.url_is_required"); + }, + }, + ...rules.url, })} onChange={(e) => { - onChange({ ...button, title: e.target.value }); + onChange({ ...button, url: e.target.value }); }} - error={!!errors.message?.["buttons"]?.[idx]?.title} - helperText={ - errors.message?.["buttons"]?.[idx]?.title?.message || - (button.title.length === 20 - ? t("message.title_length_exceeded") - : null) - } + disabled={disablePayload} + error={!!errors.message?.["buttons"]?.[idx]?.url} + helperText={errors.message?.["buttons"]?.[idx]?.url?.message} /> - - - {button.type === ButtonType.postback ? ( - { - if (disablePayload || value) { - return true; - } - - return t("message.payload_is_required"); - }, - }, - })} - onChange={(payload) => - onChange({ - ...button, - payload, - }) - } - disabled={disablePayload} - error={!!errors.message?.["buttons"]?.[idx]?.payload} - helperText={errors.message?.["buttons"]?.[idx]?.payload?.message} - /> - ) : ( - { - if ( - button.type === ButtonType.web_url && - (disablePayload || value) - ) { - return true; - } - - return t("message.url_is_required"); - }, - }, - ...rules.url, - })} - onChange={(e) => { - onChange({ ...button, url: e.target.value }); - }} - disabled={disablePayload} - error={!!errors.message?.["buttons"]?.[idx]?.url} - helperText={errors.message?.["buttons"]?.[idx]?.url?.message} - /> - )} - - + )} + ); }; diff --git a/frontend/src/components/visual-editor/form/inputs/message/ButtonsInput.tsx b/frontend/src/components/visual-editor/form/inputs/message/ButtonsInput.tsx index b1351aee..0df34acb 100644 --- a/frontend/src/components/visual-editor/form/inputs/message/ButtonsInput.tsx +++ b/frontend/src/components/visual-editor/form/inputs/message/ButtonsInput.tsx @@ -8,8 +8,8 @@ import { KeyboardReturn, Link, RemoveCircleOutline } from "@mui/icons-material"; import AddIcon from "@mui/icons-material/Add"; -import { Box, Grid, IconButton } from "@mui/material"; -import { FC, Fragment, useEffect, useMemo, useState } from "react"; +import { Box, IconButton } from "@mui/material"; +import { FC, useEffect, useMemo, useState } from "react"; import { FieldPath } from "react-hook-form"; import DropdownButton, { @@ -96,19 +96,10 @@ const ButtonsInput: FC = ({ }, [buttons]); return ( - - - - {t("label.title")} - - - {t("label.payload")} / {t("label.url")} - - -   - + + {buttons.map(({ value, id }, idx) => ( - + = ({ onChange={updateInput(idx)} disablePayload={disablePayload} /> - - removeInput(idx)} - disabled={buttons.length <= minInput} - > - - - - + removeInput(idx)} + disabled={buttons.length <= minInput} + > + + + ))} - + addInput(action.defaultValue)}