// import React, { useEffect, useState } from 'react'
// import { Router, Route, Redirect, withRouter, Switch } from 'react-router-dom';
// import { Provider, useSelector } from 'react-redux';
// import { store } from './components/redux/index';
// import createHistory from "history/createBrowserHistory";
// import './App.css';
// // import logo from './logo.svg';
// // импорт страниц
// import { CUser } from './components/user';
// import { CFeed } from './components/feed';
// import { CComments } from './components/post';
// import { CreatePost } from './components/create_post';
// import AuthReg from './components/auth_reg';
// // import Header from './components/structure/header';
// import { CHeader } from './components/structure/header';
// import Footer from './components/structure/footer';
// import Search from './components/search';
// import Page404 from './components/404/page404';
// // url проекта
// export const url = 'http://hipstagram.node.ed.asmer.org.ua/'
// const history = createHistory()
// // Приватный роутинг - удалить, если не буду использовать
// {
// // фейковый авторизатор
// const fakeAuth = {
// isAuthenticated: false,
// authenticate(cb) {
// this.isAuthenticated = true
// setTimeout(cb, 100)
// },
// signout(cb) {
// this.isAuthenticated = false
// setTimeout(cb, 100)
// }
// }
// // кнопка разлогина, которая рисуется, если залогинен
// const AuthButton = withRouter(({ history }) => (
// fakeAuth.isAuthenticated && (
//
// Welcome!
//
// )
// ))
// const PrivateRoute = ({ component: Component, ...rest }) => (
// (
// typeof localStorage.authToken === 'string'
// ?
// :
// )} />
// )
// }
// // роутинг в зависимости от того.залогинен пользователь или нет
// const MainRoutes = () => {
// const currentState = useSelector(state => state?.auth?.token)
// return (
//
// {currentState
// ?
//
//
//
//
//
//
//
// :
//
//
//
//
// }
//
// )
// }
// export default function App() {
// return (
//
//
//
//
//
//
//
//
//
// )
// }
import React, { createContext, useContext, useEffect, useState } from 'react'
import { Router, Route, Redirect, withRouter, Switch } from 'react-router-dom';
import { Provider, useSelector } from 'react-redux';
import { store } from './components/redux/index';
import createHistory from "history/createBrowserHistory";
import './App.css';
// import logo from './logo.svg';
// импорт страниц
import { CUser } from './components/user';
import { CFeed } from './components/feed';
import { CComments } from './components/post';
import { CreatePost } from './components/create_post';
import AuthReg from './components/auth_reg';
// import Header from './components/structure/header';
import { CHeader } from './components/structure/header';
import Footer from './components/structure/footer';
import Search from './components/search';
import Page404 from './components/404/page404';
// url проекта
export const url = 'http://hipstagram.node.ed.asmer.org.ua/'
const history = createHistory()
// общий контекст для модального окна
export const ModalForCountsContext = createContext()
export const UpdateProfile = createContext()
// Приватный роутинг - удалить, если не буду использовать
{
// фейковый авторизатор
const fakeAuth = {
isAuthenticated: false,
authenticate(cb) {
this.isAuthenticated = true
setTimeout(cb, 100)
},
signout(cb) {
this.isAuthenticated = false
setTimeout(cb, 100)
}
}
// кнопка разлогина, которая рисуется, если залогинен
const AuthButton = withRouter(({ history }) => (
fakeAuth.isAuthenticated && (
Welcome!
)
))
const PrivateRoute = ({ component: Component, ...rest }) => (
(
typeof localStorage.authToken === 'string'
?
:
)} />
)
}
// роутинг в зависимости от того.залогинен пользователь или нет
const MainRoutes = () => {
const currentState = useSelector(state => state?.auth?.token)
// функции управления открытием/закрытием модального окна
const [modalName, setModalName] = useState('')
const [modalArray, setModalArray] = useState([])
const [openModal, setOpenModal] = useState(false);
const handleOpenModal = (param) => {
setOpenModal(true)
param.arr && setModalArray([...param.arr]) // идет проверка на null, из-за баги на беке?
setModalName(param.name)
}
const handleCloseModal = () => {
setOpenModal(false)
setModalArray([])
}
const aboutMe = useSelector(state => state?.promise?.AboutMe?.payload)
const myFollowings = aboutMe?.following.map(item => {
return { _id: item._id }
})
// функция управления моими данными для обновления профиля
const [updateProfile, setUpdateProfile] = useState({ _id: aboutMe?._id, login: aboutMe?.login, nick: aboutMe?.nick, avatar: { _id: aboutMe?.avatar?._id }, following: myFollowings })
// console.log('updateProfile: ', updateProfile)
return (
{currentState
?
:
}
)
}
export default function App() {
return (
)
}