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.

71 lines
2.4 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. import { observer } from 'mobx-react'
  2. import { useState } from 'react'
  3. import useLike from '~/hooks/useLike'
  4. import store from '~/store'
  5. import '~/styles/components.scss'
  6. import { MarketNFTData } from '~/types/store'
  7. import { toThousands } from '~/utils'
  8. import { copy } from '~/utils/copy'
  9. import Modal from './Modal'
  10. interface ProductInfoProps {
  11. data: MarketNFTData
  12. }
  13. const ProductInfo = (props: ProductInfoProps) => {
  14. const { data } = props
  15. const { likeNft } = store.state
  16. const { setLike, isLike } = useLike()
  17. const [visible, setVisible] = useState(false)
  18. const share = () => {
  19. const pathname = `${process.env.REACT_APP_SHARE_LINK}detail?id=${data.id}&type=${data.type}`
  20. copy(pathname)
  21. setVisible(true)
  22. }
  23. return (
  24. <div className='product-info'>
  25. <div className='row-center'>
  26. <div className='cover-box row-center'>
  27. <img src={data.url} className="img" alt="" />
  28. </div>
  29. </div>
  30. {data.type !== 0 && <div className='mt-1 row-center'>
  31. <i className={`iconfont icon-daohangshoucangyishoucang fz-20 ${isLike(data.id, likeNft) ? 'like-text' : 'sub-text'}`} onClick={() => setLike(data.id)} />
  32. <i className='iconfont icon-shangchuandaochu fz-24 ml-4' onClick={share} />
  33. </div>}
  34. <div className='mt-3 fz-30 fz-wb-550'>{data.name}</div>
  35. <div className={`price-tag mt-1 ${data.symbol}-bg`}>{data.symbol} {toThousands(data.price)}</div>
  36. <div className='mt-3 row-between'>
  37. <div>
  38. <div></div>
  39. <div className='user-tag mt-2 plr-1 row-items'>
  40. <img src={data.cast_url} alt="" />
  41. <div className='fz-12 tac flex-1 name-overflow'>{data.cast_name}</div>
  42. </div>
  43. </div>
  44. <div>
  45. <div></div>
  46. <div className='user-tag mt-2 plr-1 row-items'>
  47. <img src={data.sell_url} alt="" />
  48. <div className='fz-12 tac flex-1 name-overflow'>{data.sell_name}</div>
  49. </div>
  50. </div>
  51. </div>
  52. <Modal
  53. visible={visible}
  54. title="分享給朋友"
  55. setVisible={setVisible}
  56. showConfirmButton
  57. backgroundColosed
  58. >
  59. <div className='tac mt-2 like-text'>
  60. </div>
  61. </Modal>
  62. </div>
  63. )
  64. }
  65. export default observer(ProductInfo)