AbouteMePage.jsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React, { useState, useEffect } from 'react';
  2. import '../App.css'
  3. import store from "../store/index"
  4. import { backendURL } from '../graphQl/getGQL';
  5. export const PageAboutMe = ({ match: { params: { _id } }, getData, userName, avatar, chats }) => {
  6. const [avatarImg, setAvatarImg] = useState(null)
  7. useEffect(() => {
  8. getData(_id)
  9. const formElement = document.getElementById('form');
  10. const photoInput = document.getElementById('media');
  11. console.log('ava', avatar);
  12. if (formElement && photoInput) {
  13. photoInput.onchange = async () => {
  14. fetch(`${backendURL}/upload`, {
  15. method: "POST",
  16. headers: localStorage.authToken ? { Authorization: 'Bearer ' + localStorage.authToken } : {},
  17. body: new FormData(formElement)
  18. }).then(res => res.json()).then(json => {
  19. setAvatarImg(`${backendURL}/${json.url}`)
  20. console.log(avatarImg);
  21. console.log('UPLOAD RESULT', json)
  22. })
  23. }
  24. }
  25. }, [_id])
  26. return (
  27. <>
  28. <h2>{userName}</h2>
  29. {avatarImg && <img src={avatarImg} className='ava' alt="avatar" />}
  30. <form action="/upload" method="post" enctype="multipart/form-data" id='form'>
  31. <input type="file" name="media" id='media' />
  32. </form>
  33. </>
  34. )
  35. }