Skip to content

@vkontakte/[email protected]

Compare
Choose a tag to compare
@inomdzhon inomdzhon released this 21 May 09:32
· 265 commits to master since this release

Улучшения

Добавлена возможность создавать спрайты из растровых изображений (#893, также см. @vkontakte/[email protected]).

Используйте makeRasterIcon() для создания растровой иконки, который возвращает React компонент.

Для категорий разрешений используется именование из 🔗 Android

import { ImgHTMLAttributes, Ref } from 'react';
import { makeRasterIcon } from '@vkontakte/icons-sprite';
import lightmdpi from '.. / ../../src/png/28/drawable-mdpi/verified_light_28.png';
import darkmdpi from ' ../../../src/png/28/drawable-mdpi/verified_dark_28.png';
import lighthdpi from '../../../src/png/28/drawable-xhdpi/verified_light_28.png';
import darkxhdpi from ' ../../../src/png/28/drawable-xhdpi/verified_dark_28.png';
import lightxxhdpi from '../../../src/png/28/drawable-xxhdpi/verified_light_28.png';
import darkxxhdpi from ' ../../../src/png/28/drawable-xxhdpi/verified_dark_28.png';

export interface RasterIcon28VerifiedProps extends ImgHTMLAttributes<HTMLImageElement> {
  getRootRef?: Ref<HTMLImageElement>;
}

export const RasterIcon28Verified = makeRasterIcon<RasterIcon28VerifiedProps>(
  'RasterIcon28Verified',
  'verified',
  28,
  { lightmdpi, darkmdpi, lighthdpi, darkxhdpi, lightxxhdpi, darkxxhdpi },
);

Для смены иконки на light/dark в зависимости от цветовой схемы, используйте провайдер IconAppearanceProvider. Его стоит разово определить в корне вашего проекта. Далее все RasterIcon получат apperance из контекста.

import { IconAppearanceProvider } from '@vkontakte/icons-sprite';

const App = ({ children }) => {
  const apperance = 'light'; /* здесь предполагается, что будет хук определяющий цветовую схему */;
  return (
    <IconAppearanceProvider value={apperance}>
      {children}
    </IconAppearanceProvider>
  );
};

Полный список изменений: https://github.com/VKCOM/icons/compare/@vkontakte/[email protected]...@vkontakte/[email protected]