diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..9014410 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/my-app/package-lock.json b/my-app/package-lock.json index 0551266..0285470 100644 --- a/my-app/package-lock.json +++ b/my-app/package-lock.json @@ -1628,6 +1628,11 @@ "@types/node": "*" } }, + "@types/history": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.8.tgz", + "integrity": "sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA==" + }, "@types/hoist-non-react-statics": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", @@ -1836,6 +1841,25 @@ "redux": "^4.0.0" } }, + "@types/react-router": { + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.11.tgz", + "integrity": "sha512-ofHbZMlp0Y2baOHgsWBQ4K3AttxY61bDMkwTiBOkPg7U6C/3UwwB5WaIx28JmSVi/eX3uFEMRo61BV22fDQIvg==", + "requires": { + "@types/history": "*", + "@types/react": "*" + } + }, + "@types/react-router-dom": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.1.7.tgz", + "integrity": "sha512-D5mHD6TbdV/DNHYsnwBTv+y73ei+mMjrkGrla86HthE4/PVvL1J94Bu3qABU+COXzpL23T1EZapVVpwHuBXiUg==", + "requires": { + "@types/history": "*", + "@types/react": "*", + "@types/react-router": "*" + } + }, "@types/redux-form": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/@types/redux-form/-/redux-form-8.3.0.tgz", diff --git a/my-app/package.json b/my-app/package.json index 5484eb7..476a6ac 100644 --- a/my-app/package.json +++ b/my-app/package.json @@ -11,6 +11,7 @@ "@types/react": "^16.9.55", "@types/react-dom": "^16.9.9", "@types/react-redux": "^7.1.9", + "@types/react-router-dom": "^5.1.7", "@types/redux-form": "^8.3.0", "axios": "^0.19.2", "react": "^16.13.1", diff --git a/my-app/src/App.tsx b/my-app/src/App.tsx index ae1d156..b211129 100644 --- a/my-app/src/App.tsx +++ b/my-app/src/App.tsx @@ -20,6 +20,7 @@ type DispatchPropsType= { initializeApp:()=>void } +const ProfileContainerWithSuspense=withSuspense(ProfileContainer) class App extends Component { componentDidMount() { @@ -39,7 +40,7 @@ class App extends Component { - + }/> }/> }/> diff --git a/my-app/src/components/Dialogs/DialogsItem/DialogsItem.jsx b/my-app/src/components/Dialogs/DialogsItem/DialogsItem.tsx similarity index 75% rename from my-app/src/components/Dialogs/DialogsItem/DialogsItem.jsx rename to my-app/src/components/Dialogs/DialogsItem/DialogsItem.tsx index f0cc0dc..134a66b 100644 --- a/my-app/src/components/Dialogs/DialogsItem/DialogsItem.jsx +++ b/my-app/src/components/Dialogs/DialogsItem/DialogsItem.tsx @@ -2,7 +2,12 @@ import React from 'react'; import styles from '../Dialogs.module.css' import { NavLink } from 'react-router-dom'; -const DialogsItem = (props) => { +type PropsType={ + id: number + name: string +} + +const DialogsItem: React.FC = (props) => { let path = "/dialogs/" + props.id; return (
diff --git a/my-app/src/components/Dialogs/Messages/Messages.jsx b/my-app/src/components/Dialogs/Messages/Messages.tsx similarity index 75% rename from my-app/src/components/Dialogs/Messages/Messages.jsx rename to my-app/src/components/Dialogs/Messages/Messages.tsx index 7e9c6ac..8c566f8 100644 --- a/my-app/src/components/Dialogs/Messages/Messages.jsx +++ b/my-app/src/components/Dialogs/Messages/Messages.tsx @@ -1,8 +1,10 @@ import React from 'react'; import styles from '../Dialogs.module.css' - -const Messages=(props)=>{ +type PropsType={ + message: string +} +const Messages :React.FC=(props)=>{ return(
{ +export type MapStatePropsType={ + isAuth: boolean, + login: string | null + +} + +export type MapDispatchPropsType={ + logout: () => void +} +const Header: React.FC = (props)=> { return (
diff --git a/my-app/src/components/Header/HeaderContainer.jsx b/my-app/src/components/Header/HeaderContainer.jsx deleted file mode 100644 index bf08a96..0000000 --- a/my-app/src/components/Header/HeaderContainer.jsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react'; -import Header from './Header'; -import { connect } from 'react-redux'; -import {LogoutUserThunkCreator } from '../../redux/auth-reducer'; - - - -class HeaderContainer extends React.Component { - - render() { - return <> -
- - } -} - -let mapStateToProps=(state)=>({ - isAuth:state.auth.isAuth, - login:state.auth.login - -}) -export default connect(mapStateToProps, {LogoutUserThunkCreator})(HeaderContainer); \ No newline at end of file diff --git a/my-app/src/components/Header/HeaderContainer.tsx b/my-app/src/components/Header/HeaderContainer.tsx new file mode 100644 index 0000000..11253a3 --- /dev/null +++ b/my-app/src/components/Header/HeaderContainer.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import Header, {MapStatePropsType, MapDispatchPropsType} from './Header'; +import { connect } from 'react-redux'; +import {LogoutUserThunkCreator } from '../../redux/auth-reducer'; +import {AppStateType} from "../../redux/redux-store"; + + + +class HeaderContainer extends React.Component { + + render() { + return <> +
+ + } +} + +let mapStateToProps=(state: AppStateType)=>({ + isAuth:state.auth.isAuth, + login:state.auth.login + + +}) +export default connect +(mapStateToProps, + {logout:LogoutUserThunkCreator}) +(HeaderContainer); \ No newline at end of file diff --git a/my-app/src/components/NavBar/NavBar.jsx b/my-app/src/components/NavBar/NavBar.tsx similarity index 96% rename from my-app/src/components/NavBar/NavBar.jsx rename to my-app/src/components/NavBar/NavBar.tsx index 4711331..ccfd659 100644 --- a/my-app/src/components/NavBar/NavBar.jsx +++ b/my-app/src/components/NavBar/NavBar.tsx @@ -2,7 +2,7 @@ import React from 'react'; import styles from './NavBar.module.css'; import { NavLink } from 'react-router-dom'; -const NavBar= ()=> { +const NavBar:React.FC= ()=> { return (