import * as React from 'react'; import { classNames } from '@vkontakte/vkjs'; import { useTokensClassName } from './useTokenClassName'; import styles from './TokensClassProvider.module.css'; type ProvidedChildProps = { className?: string; }; type InjectTokenClassNameToChildProps = { children: React.ReactElement; }; const InjectTokenClassNameToChild = ({ children }: InjectTokenClassNameToChildProps) => { const tokensClassName = useTokensClassName(); return React.cloneElement(children, { className: classNames(tokensClassName, styles.defaultColor, children.props.className), }); }; export interface TokensClassProviderProps { children: React.ReactNode; } export const TokensClassProvider: React.FC = ({ children }) => { return React.Children.map(children, (child) => { if (React.isValidElement(child)) { return {child}; } return child; }); };