diff --git a/CHANGELOG.md b/CHANGELOG.md index 8812d0cd..7b4bbb0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## [5.1.1] - 2021-10-14 + +- [#149](https://github.com/estruyf/vscode-front-matter/issues/149): Fix panel rendering when incorrect type for keywords is provided + ## [5.1.0] - 2021-10-13 ### 🎨 Enhancements diff --git a/src/panelWebView/components/Metadata.tsx b/src/panelWebView/components/Metadata.tsx index 389f32a1..dc42d039 100644 --- a/src/panelWebView/components/Metadata.tsx +++ b/src/panelWebView/components/Metadata.tsx @@ -186,14 +186,17 @@ export const Metadata: React.FunctionComponent = ({settings, met } { - } - crntSelected={metadata.keywords as string[] || []} - options={[]} - freeform={true} - focussed={focusElm === TagType.keywords} - unsetFocus={unsetFocus} - disableConfigurable /> + + } + crntSelected={metadata.keywords as string[] || []} + options={[]} + freeform={true} + focussed={focusElm === TagType.keywords} + unsetFocus={unsetFocus} + disableConfigurable /> + } ); diff --git a/src/panelWebView/components/SeoKeywords.tsx b/src/panelWebView/components/SeoKeywords.tsx index 4747ec0b..46af35d9 100644 --- a/src/panelWebView/components/SeoKeywords.tsx +++ b/src/panelWebView/components/SeoKeywords.tsx @@ -13,6 +13,22 @@ export interface ISeoKeywordsProps { export const SeoKeywords: React.FunctionComponent = ({keywords, ...data}: React.PropsWithChildren) => { + const validateKeywords = () => { + if (!keywords) { + return []; + } + + if (typeof keywords === 'string') { + return [keywords]; + } + + if (Array.isArray(keywords)) { + return keywords; + } + + return []; + } + if (!keywords || keywords.length === 0) { return null; } @@ -31,7 +47,7 @@ export const SeoKeywords: React.FunctionComponent = ({keyword { - keywords.map((keyword, index) => { + validateKeywords().map((keyword, index) => { return ( );