From 3a927a1c3b658a7ef81c6c4ba1c0d7be78604d7a Mon Sep 17 00:00:00 2001 From: slorber Date: Thu, 23 Jul 2020 19:00:59 +0200 Subject: [PATCH] DefaultNavbarItemSchema href/to validation is too strict and force dropdown parent to have an associated link (not retrocompatible) --- .../docusaurus-theme-classic/src/themeConfigSchema.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/docusaurus-theme-classic/src/themeConfigSchema.js b/packages/docusaurus-theme-classic/src/themeConfigSchema.js index ec1b90ce8969..38af74c70e0b 100644 --- a/packages/docusaurus-theme-classic/src/themeConfigSchema.js +++ b/packages/docusaurus-theme-classic/src/themeConfigSchema.js @@ -9,6 +9,9 @@ const Joi = require('@hapi/joi'); const NavbarItemPosition = Joi.string().equal('left', 'right').default('left'); +// TODO we should probably create a custom navbar item type "dropdown" +// having this recursive structure is bad because we only support 2 levels +// + parent/child don't have exactly the same props const DefaultNavbarItemSchema = Joi.object({ items: Joi.array().optional().items(Joi.link('...')), to: Joi.string(), @@ -19,7 +22,10 @@ const DefaultNavbarItemSchema = Joi.object({ activeBaseRegex: Joi.string(), className: Joi.string(), 'aria-label': Joi.string(), -}).xor('href', 'to'); +}); +// TODO the dropdown parent item can have no href/to +// should check should not apply to dropdown parent item +// .xor('href', 'to'); const DocsVersionNavbarItemSchema = Joi.object({ type: Joi.string().equal('docsVersion').required(),