import {CUsersList, SearchUserInput, CUpdateAdminForm} from "./index"; import {gql, urlUpload, actionPromise, actionGoodCard, getGoods, actionUserFindOne, updateImgAction, actionAuthLogin, actionAuthLogout, actionUserUpdate, actionOrdersFind, getData, actionLogin } from "../reducers"; import {createStore, combineReducers, applyMiddleware, bindActionCreators} from 'redux'; import { connect } from "react-redux"; import { useEffect, useState, useRef } from "react"; import {BrowserRouter as Router, Route, Link, Switch, Redirect, useHistory} from 'react-router-dom'; import { NewAuth } from "../reducers/actionAuthLog"; const YourProfile = ({state, orders, updateStatus, updatedUser = {}, newImg, token, onLogin, onLogout, updateImg, updateUser, isUserAdmin = {}, status, data = {}, getData, match:{params:{_id}}, isAdmin = [], isOwner = {}, newPicture = "clear"}) => { const history = useHistory(); const [nick, changeNick] = useState(null); const [newLogin, changeLogin] = useState(null); const [nowPassword, superPassword] = useState(null); const [password, changePassword] = useState(null); const [password2, changePassword2] = useState(null); const [isUpdateImg, changeImg] = useState(false); // const [isUpdatePage, changePage] = useState(false); // const [newImage, getImage] = useState({}); useEffect(() => { if(history.location.pathname.includes(`/profile/`)) { getData(`${isOwner.id}`); orders(`${isOwner.id}`) ; } else { getData(`${_id}`); orders(`${_id}`) ; } },[history.location.pathname]) useEffect( async() => { if(updateStatus == "RESOLVED" && updatedUser && updatedUser.data && updatedUser.data.UserUpsert) { if(!isAdmin || (isAdmin && isOwner.id == data._id)){ await onLogin(newLogin|| data.login, password || nowPassword); } window.location.reload() } }, [updateStatus]) const date = new Date(data ? +data.createdAt : 0); const [showUpdate, onShow] = useState(false); const [searchInput, changeValue] = useState("Пошук"); console.log(state); // console.log(data); return ( <> { (status == "RESOLVED" && data) && <>
changeValue(e.target.value)} onKeyDown = {(e) => e.keyCode == 13 && history.push(`/searchUser/${searchInput}`)}/>
{(isUserAdmin )&&
admin
} { (isOwner.id == data._id) ?

Привіт, {data.nick || "людино"}!

:

{data.nick || data.login}

} Сторінку створено {`${date.getDate()}. ${date.getMonth() + 1}. ${date.getFullYear()} о ${date.getHours()}: ${date.getMinutes()}: ${date.getSeconds()} `} {( (isOwner.id == data._id) || (isAdmin && !isUserAdmin)) && } {showUpdate &&

Редагування

{updatedUser && updatedUser.errors && updatedUser.errors.length > 0 &&

Введено невірні дані, або цей логін вже зайнято

} {(!isAdmin || (isAdmin && isOwner.id == data._id))&& superPassword(e.target.value)} placeholder = "Пароль"/>} changeNick(e.target.value)} placeholder = "Новий нікнейм"/> changeLogin(e.target.value)} placeholder = "Новий логін"/> changePassword(e.target.value)} placeholder = "Новий пароль"/> changePassword2(e.target.value)} placeholder = "Повторіть пароль"/> { updateImg(ev.target.files[0]) changeImg(true); } }/>
}
} ) } const mapStateToProps = state => ({ state: state, status: state.promiseRed && state.promiseRed.user && state.promiseRed.user.payload && state.promiseRed.user && state.promiseRed.user.status, data: state.promiseRed && state.promiseRed.user && state.promiseRed.user.payload && state.promiseRed.user.payload.data && state.promiseRed.user.payload.data.UserFindOne, newPicture: state.promiseRed && state.promiseRed.photo && state.promiseRed.photo.status, token: state.auth && state.auth.token, updatedUser: state.promiseRed && state.promiseRed.newUser && state.promiseRed.newUser.payload && state.promiseRed.newUser.payload.data && state.promiseRed.newUser.payload, updateStatus: state.promiseRed && state.promiseRed.newUser && state.promiseRed.newUser.status, isUserAdmin: state.promiseRed && state.promiseRed.user && state.promiseRed.user.payload && state.promiseRed.user.payload.data && state.promiseRed.user.payload.data.UserFindOne && state.promiseRed.user.payload.data.UserFindOne.acl && state.promiseRed.user.payload.data.UserFindOne.acl.indexOf("admin") > -1, isOwner: state.auth && state.auth.payload && state.auth.payload.sub && state.auth.payload.sub, newImg: state.promiseRed && state.promiseRed.photo && state.promiseRed.photo.payload && state.promiseRed.photo.payload, isAdmin: state.auth && state.auth.payload && state.auth.payload.sub && state.auth.payload.sub.acl && state.auth.payload.sub.acl.indexOf("admin") > -1, }); const mapDispatchToProps = dispatch => bindActionCreators({ getData: actionUserFindOne, updateImg: updateImgAction, updateUser: actionUserUpdate, onLogout: actionAuthLogout, onLogin: actionLogin, orders: actionOrdersFind }, dispatch); const CYourProfile = connect(mapStateToProps, mapDispatchToProps) (YourProfile) export default CYourProfile;