From 977e42f0e7205f23dbf8e8bb38bd73a72463e427 Mon Sep 17 00:00:00 2001 From: acethecreator Date: Tue, 11 Mar 2025 18:42:43 +0100 Subject: [PATCH 1/3] fix multischema schema level in payload --- library/src/containers/Messages/MessageExample.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/library/src/containers/Messages/MessageExample.tsx b/library/src/containers/Messages/MessageExample.tsx index d2fcb7c63..a25aefd04 100644 --- a/library/src/containers/Messages/MessageExample.tsx +++ b/library/src/containers/Messages/MessageExample.tsx @@ -54,9 +54,15 @@ export const Example: React.FunctionComponent = ({ const [expanded, setExpanded] = useState( config?.expand?.messageExamples ?? false, ); - useEffect(() => { setExpanded(config?.expand?.messageExamples ?? false); + // Detect multi-format schema and restructure the schema property + // to ensure compatibility with the sample generator + const schemaData = schema.json(); + if (schemaData.schema) { + Object.assign(schemaData, schemaData.schema); + delete schemaData.schema; + } // eslint-disable-next-line react-hooks/exhaustive-deps }, [config.expand]); From 1175fe9e4df26337dfd59aa924d0171a5985ea00 Mon Sep 17 00:00:00 2001 From: acethecreator Date: Tue, 11 Mar 2025 19:08:47 +0100 Subject: [PATCH 2/3] fixed type safety issue --- library/src/containers/Messages/MessageExample.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/library/src/containers/Messages/MessageExample.tsx b/library/src/containers/Messages/MessageExample.tsx index a25aefd04..961dd5182 100644 --- a/library/src/containers/Messages/MessageExample.tsx +++ b/library/src/containers/Messages/MessageExample.tsx @@ -10,6 +10,18 @@ interface Props { message: MessageInterface; } +interface SchemaWithFormat { + schemaFormat: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + schema: any; +} + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function isMultiFormatSchema(schema: any): schema is SchemaWithFormat { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return schema; +} + export const MessageExample: React.FunctionComponent = ({ message }) => { if (!message) { return null; @@ -59,7 +71,7 @@ export const Example: React.FunctionComponent = ({ // Detect multi-format schema and restructure the schema property // to ensure compatibility with the sample generator const schemaData = schema.json(); - if (schemaData.schema) { + if (isMultiFormatSchema(schemaData)) { Object.assign(schemaData, schemaData.schema); delete schemaData.schema; } From 1a71ab43bf87c4f59dd98625c55d182dccc4f061 Mon Sep 17 00:00:00 2001 From: acethecreator Date: Tue, 11 Mar 2025 19:11:22 +0100 Subject: [PATCH 3/3] retrun valid type --- library/src/containers/Messages/MessageExample.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/library/src/containers/Messages/MessageExample.tsx b/library/src/containers/Messages/MessageExample.tsx index 961dd5182..adb09e0e8 100644 --- a/library/src/containers/Messages/MessageExample.tsx +++ b/library/src/containers/Messages/MessageExample.tsx @@ -19,7 +19,12 @@ interface SchemaWithFormat { // eslint-disable-next-line @typescript-eslint/no-explicit-any function isMultiFormatSchema(schema: any): schema is SchemaWithFormat { // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return schema; + return ( + schema && + typeof schema === 'object' && + 'schemaFormat' in schema && + 'schema' in schema + ); } export const MessageExample: React.FunctionComponent = ({ message }) => {