EditAvatar.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { connect } from 'react-redux'
  2. import { message, Image, Button } from 'antd'
  3. import {
  4. actionUploadFile,
  5. actionSetAvatar,
  6. actionUserUpsert,
  7. actionUserUpdate,
  8. } from '../actions'
  9. import React, { useState, useEffect } from 'react'
  10. import { Basic, ConstructorModal } from '../helpers'
  11. import { Input } from './Input'
  12. const EditAvatar = ({
  13. info,
  14. onSaveAvatar,
  15. setIsModalVisibleEdit,
  16. onFileDrop,
  17. fileStatus,
  18. myId,
  19. }) => {
  20. const [state, setState] = useState(info)
  21. console.log('state my ', state)
  22. useEffect(() => {
  23. fileStatus?.status == 'FULFILLED' &&
  24. setState({
  25. ...state,
  26. // ...state?.avatar?._id,
  27. ...fileStatus?.payload,
  28. })
  29. }, [fileStatus])
  30. // onSaveAvatar(state?._id, myId)&&
  31. const saveAvatar = () => {
  32. if (fileStatus)
  33. onSaveAvatar(state?._id, myId) &&
  34. message.success(`Avatar success changed!`) &&
  35. setIsModalVisibleEdit(false)
  36. }
  37. return (
  38. <div
  39. style={{
  40. display: 'flex',
  41. alignItems: 'center',
  42. flexDirection: 'column',
  43. }}
  44. >
  45. <Basic onLoad={onFileDrop} />
  46. {fileStatus?.payload?.url && (
  47. <Image
  48. style={{
  49. marginBottom: '30px',
  50. width: '200px',
  51. objectFit: 'cover',
  52. height: '150px',
  53. }}
  54. src={'/' + fileStatus?.payload?.url}
  55. />
  56. )}
  57. <br />
  58. <Button
  59. style={{ width: '200px' }}
  60. disabled={fileStatus ? false : true}
  61. onClick={saveAvatar}
  62. size="large"
  63. type="primary"
  64. >
  65. Save avatar
  66. </Button>
  67. </div>
  68. )
  69. }
  70. export const CEditAvatar = connect(
  71. (state) => ({
  72. myId: state?.auth.payload.sub?.id,
  73. fileStatus: state.promise?.uploadFile,
  74. info: state?.profileData?.aboutMe?.avatar,
  75. }),
  76. {
  77. onSaveAvatar: actionSetAvatar,
  78. onFileDrop: actionUploadFile,
  79. },
  80. )(EditAvatar)