From 0ecd71ec06ae4bc1f6ce568c59ff38835cfe71cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lorber?= Date: Fri, 24 Jul 2020 12:49:15 +0200 Subject: [PATCH] fix(v2): navbar items: href/to validation is too strict (not retrocompatible) (#3106) --- .../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 ec1b90ce89..38af74c70e 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(),