You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.1 KiB

  1. import type { FC } from 'react'
  2. import { memo } from 'react'
  3. import { createStyles } from '@/theme'
  4. import IconThumbnail from './IconThumbnail'
  5. import { getIconName } from './icons.ts'
  6. import { usePickerContext } from './context.tsx'
  7. /******************************************************
  8. *********************** Style *************************
  9. ******************************************************/
  10. const useStyles = createStyles(
  11. ({ css }) =>
  12. css`
  13. display: grid;
  14. grid-template-columns: repeat(4, 1fr);
  15. `,
  16. )
  17. /******************************************************
  18. ************************* Dom *************************
  19. ******************************************************/
  20. const IconList: FC = () => {
  21. const { actions: { displayListSelector } } = usePickerContext()
  22. const { styles } = useStyles()
  23. return (
  24. <div className={styles}>
  25. {displayListSelector().map((icon) => (
  26. <IconThumbnail key={getIconName(icon)} icon={icon}/>
  27. ))}
  28. </div>
  29. )
  30. }
  31. export default memo(IconList)