StoreSizesSelector.jsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // components
  2. import Spring from '@components/Spring';
  3. import SizeGuide from '@components/SizeGuide';
  4. import SizeSelector from '@ui/SizeSelector';
  5. // hooks
  6. import {useState} from 'react';
  7. // constants
  8. import {SIZES} from '@constants/shop';
  9. const StoreSizesSelector = ({standalone = true}) => {
  10. const Wrapper = standalone ? Spring : 'div';
  11. const wrapperProps = standalone ? {className: 'card'} : {};
  12. const [popupOpen, setPopupOpen] = useState(false);
  13. const headerStyles = {
  14. padding: standalone? '30px 30px 20px' : '0 0 20px',
  15. borderBottom: '1px solid var(--border)'
  16. }
  17. const mainStyles = {
  18. padding: standalone ? '20px 30px 30px' : '20px 0 0'
  19. }
  20. return (
  21. <Wrapper {...wrapperProps}>
  22. <div className="d-flex justify-content-between" style={headerStyles}>
  23. <h3>Select size</h3>
  24. <button className="text-button" onClick={() => setPopupOpen(true)}>
  25. Size table
  26. </button>
  27. </div>
  28. <div className="d-flex flex-wrap g-16" style={mainStyles}>
  29. {
  30. SIZES.map(size => (
  31. <SizeSelector key={size} size={size}/>
  32. ))
  33. }
  34. </div>
  35. <SizeGuide open={popupOpen} onClose={() => setPopupOpen(false)}/>
  36. </Wrapper>
  37. )
  38. }
  39. export default StoreSizesSelector