/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import React, {type ReactNode} from 'react'; import ComponentTypes from '@theme/NavbarItem/ComponentTypes'; import type {NavbarItemType, Props} from '@theme/NavbarItem'; function normalizeComponentType(type: NavbarItemType, props: object) { // Backward compatibility: navbar item with no type set // but containing dropdown items should use the type "dropdown" if (!type || type === 'default') { return 'items' in props ? 'dropdown' : 'default'; } return type; } export default function NavbarItem({type, ...props}: Props): ReactNode { const componentType = normalizeComponentType(type, props); const NavbarItemComponent = ComponentTypes[componentType]; if (!NavbarItemComponent) { throw new Error(`No NavbarItem component found for type "${type}".`); } return ; }