addons/docs/src/blocks/utils.ts
/* eslint-disable no-underscore-dangle */
import { Component } from './types';
const titleCase = (str: string): string =>
str
.split('-')
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
.join('');
export const getComponentName = (component: Component): string => {
if (!component) {
return undefined;
}
if (typeof component === 'string') {
if (component.includes('-')) {
return titleCase(component);
}
return component;
}
if (component.__docgenInfo && component.__docgenInfo.displayName) {
return component.__docgenInfo.displayName;
}
return component.name;
};
export function scrollToElement(element: any, block = 'start') {
element.scrollIntoView({
behavior: 'smooth',
block,
inline: 'nearest',
});
}