UNPKG

@wordpress/block-library

Version:
55 lines (51 loc) 1.06 kB
/** * WordPress dependencies */ import { category, page, postContent, tag, customPostType, } from '@wordpress/icons'; function getIcon( variationName ) { switch ( variationName ) { case 'post': return postContent; case 'page': return page; case 'tag': return tag; case 'category': return category; default: return customPostType; } } export function enhanceNavigationLinkVariations( settings, name ) { if ( name !== 'core/navigation-link' ) { return settings; } // Otherwise decorate server passed variations with an icon and isActive function. if ( settings.variations ) { const isActive = ( blockAttributes, variationAttributes ) => { return blockAttributes.type === variationAttributes.type; }; const variations = settings.variations.map( ( variation ) => { return { ...variation, ...( ! variation.icon && { icon: getIcon( variation.name ), } ), ...( ! variation.isActive && { isActive, } ), }; } ); return { ...settings, variations, }; } return settings; }