diff --git a/src/pages/Main/components/MinuteViewer/components/Minute/DTOs/index.ts b/src/DTOs/Minute.tsx similarity index 100% rename from src/pages/Main/components/MinuteViewer/components/Minute/DTOs/index.ts rename to src/DTOs/Minute.tsx diff --git a/src/DTOs/User.tsx b/src/DTOs/User.tsx new file mode 100644 index 0000000..3036c55 --- /dev/null +++ b/src/DTOs/User.tsx @@ -0,0 +1,5 @@ +export interface IUser { + name: string; + username: string; + email: string; +} diff --git a/src/DTOs/index.tsx b/src/DTOs/index.tsx new file mode 100644 index 0000000..61fc5df --- /dev/null +++ b/src/DTOs/index.tsx @@ -0,0 +1,2 @@ +export * from './User'; +export * from './Minute'; diff --git a/src/assets/workInProgress.svg b/src/assets/workInProgress.svg new file mode 100644 index 0000000..7884dd3 --- /dev/null +++ b/src/assets/workInProgress.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Header/Header.tsx b/src/components/Header/index.tsx similarity index 71% rename from src/components/Header/Header.tsx rename to src/components/Header/index.tsx index 2ae61f9..22b97d5 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { useHistory } from 'react-router-dom'; import addIcon from '../../assets/add_icon.svg'; import homeIcon from '../../assets/home_icon.svg'; @@ -8,10 +9,19 @@ import logoutIcon from '../../assets/logout_icon.svg'; import { StyledHeader } from './styles'; const Header = () => { + const history = useHistory(); + + const handleNavigateToHome = () => { + history.push('/'); + }; + return (
- + +
diff --git a/src/components/Header/styles.ts b/src/components/Header/styles.ts index afeccb7..c3135a8 100644 --- a/src/components/Header/styles.ts +++ b/src/components/Header/styles.ts @@ -33,4 +33,9 @@ export const StyledHeader = styled.header` width: 14.375rem; } } + + button { + border: none; + background: none; + } `; diff --git a/src/components/Route/index.tsx b/src/components/Route/index.tsx new file mode 100644 index 0000000..e9d4f5b --- /dev/null +++ b/src/components/Route/index.tsx @@ -0,0 +1,35 @@ +import React from 'react'; + +import Header from 'components/Header'; + +import { Route as ReactRoute } from 'react-router-dom'; + +interface RouteProps { + component: Function; + path: string; + exact?: boolean; + isPrivate?: boolean; +} + +const Route = ({ component: Component, isPrivate, ...rest }: RouteProps) => { + return ( + { + return ( + <> + {isPrivate &&
} + + + ); + }} + /> + ); +}; + +Route.defaultProps = { + exact: false, + isPrivate: false, +}; + +export default Route; diff --git a/src/contexts/AuthContext.tsx b/src/contexts/AuthContext.tsx new file mode 100644 index 0000000..c4622d2 --- /dev/null +++ b/src/contexts/AuthContext.tsx @@ -0,0 +1,35 @@ +import React, { createContext, useState } from 'react'; + +import { IUser } from 'DTOs'; + +interface IAuthProvider { + children: React.ReactNode; +} + +interface IAuthContextData { + user: any; + setUser: Function; +} + +export const AuthContext = createContext({} as IAuthContextData); + +export const AuthProvider: React.FC = ({ + children, +}: IAuthProvider) => { + const [user, setUser] = useState({ + name: '', + username: '', + email: '', + }); + + return ( + + {children} + + ); +}; diff --git a/src/contexts/MainContext.tsx b/src/contexts/MainContext.tsx index 2a63190..2de0f9b 100644 --- a/src/contexts/MainContext.tsx +++ b/src/contexts/MainContext.tsx @@ -5,7 +5,7 @@ import { IAddressAndHour, IProjectInfo, ISubject, -} from 'pages/Main/components/MinuteViewer/components/Minute/DTOs'; +} from 'DTOs'; interface IMainProvider { children: React.ReactNode; diff --git a/src/pages/Home/index.tsx b/src/pages/Home/index.tsx new file mode 100644 index 0000000..0bce22c --- /dev/null +++ b/src/pages/Home/index.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { useHistory } from 'react-router-dom'; + +import { Container } from './styles'; + +const Home = () => { + const history = useHistory(); + + const handleNavigate = () => { + history.push('/minute'); + }; + + return ( + + Home asd123 12312 + + + ); +}; + +export default Home; diff --git a/src/pages/Home/styles.ts b/src/pages/Home/styles.ts new file mode 100644 index 0000000..c338983 --- /dev/null +++ b/src/pages/Home/styles.ts @@ -0,0 +1,3 @@ +import styled from 'styled-components'; + +export const Container = styled.div``; diff --git a/src/pages/LandingPage/index.tsx b/src/pages/LandingPage/index.tsx new file mode 100644 index 0000000..54871ed --- /dev/null +++ b/src/pages/LandingPage/index.tsx @@ -0,0 +1,17 @@ +import React from 'react'; + +import { ReactComponent as WorkInProgress } from 'assets/workInProgress.svg'; + +import { Container } from './styles'; + +const LandingPage = () => { + return ( + +

LandingPage

+

Working in progress

+ +
+ ); +}; + +export default LandingPage; diff --git a/src/pages/LandingPage/styles.ts b/src/pages/LandingPage/styles.ts new file mode 100644 index 0000000..0175e3c --- /dev/null +++ b/src/pages/LandingPage/styles.ts @@ -0,0 +1,8 @@ +import styled from 'styled-components'; + +export const Container = styled.div` + svg { + max-width: 40rem; + width: 100%; + } +`; diff --git a/src/pages/Main/components/MinuteViewer/components/Minute/components/GeneralInfo/index.tsx b/src/pages/Main/components/MinuteViewer/components/Minute/components/GeneralInfo/index.tsx index 7fdae1c..bb4a191 100644 --- a/src/pages/Main/components/MinuteViewer/components/Minute/components/GeneralInfo/index.tsx +++ b/src/pages/Main/components/MinuteViewer/components/Minute/components/GeneralInfo/index.tsx @@ -3,10 +3,9 @@ import moment from 'moment'; import iacitLogo from 'assets/iacit_logo.jpg'; +import { IAddressAndHour } from 'DTOs'; import { Container } from './styles'; -import { IAddressAndHour } from '../../DTOs'; - interface IGeneralInfoProps { addressAndHour: IAddressAndHour; } diff --git a/src/pages/Main/components/MinuteViewer/components/Minute/components/Project/index.tsx b/src/pages/Main/components/MinuteViewer/components/Minute/components/Project/index.tsx index 6370f51..b8c086b 100644 --- a/src/pages/Main/components/MinuteViewer/components/Minute/components/Project/index.tsx +++ b/src/pages/Main/components/MinuteViewer/components/Minute/components/Project/index.tsx @@ -1,9 +1,8 @@ import React from 'react'; +import { IProjectInfo } from 'DTOs'; import { Container } from './styles'; -import { IProjectInfo } from '../../DTOs'; - interface IProjectProps { projectInfo: IProjectInfo; } diff --git a/src/pages/Main/components/MinuteViewer/components/Minute/components/Subjects/index.tsx b/src/pages/Main/components/MinuteViewer/components/Minute/components/Subjects/index.tsx index f72a1ef..9379549 100644 --- a/src/pages/Main/components/MinuteViewer/components/Minute/components/Subjects/index.tsx +++ b/src/pages/Main/components/MinuteViewer/components/Minute/components/Subjects/index.tsx @@ -1,10 +1,9 @@ import React from 'react'; import { Table } from 'antd'; +import { ISubject } from 'DTOs'; import { Container } from './styles'; -import { ISubject } from '../../DTOs'; - interface ISubjectsProp { subjects: Array; distributions: Array; diff --git a/src/pages/Main/components/MinuteViewer/components/Minute/components/Topics/index.tsx b/src/pages/Main/components/MinuteViewer/components/Minute/components/Topics/index.tsx index 8030cc5..89eb392 100644 --- a/src/pages/Main/components/MinuteViewer/components/Minute/components/Topics/index.tsx +++ b/src/pages/Main/components/MinuteViewer/components/Minute/components/Topics/index.tsx @@ -1,9 +1,8 @@ import React from 'react'; +import { ITopic } from 'DTOs'; import { Container } from './styles'; -import { ITopic } from '../../DTOs'; - interface ITopicsProps { topics: Array; } diff --git a/src/pages/Main/components/MinuteViewer/components/Minute/index.tsx b/src/pages/Main/components/MinuteViewer/components/Minute/index.tsx index 67dbbd5..48e85b8 100644 --- a/src/pages/Main/components/MinuteViewer/components/Minute/index.tsx +++ b/src/pages/Main/components/MinuteViewer/components/Minute/index.tsx @@ -1,6 +1,7 @@ /* eslint-disable react/prop-types */ import React, { PureComponent } from 'react'; +import { IMinute } from 'DTOs'; import GeneralInfo from './components/GeneralInfo'; import Project from './components/Project'; import Topics from './components/Topics'; @@ -8,8 +9,6 @@ import Subjects from './components/Subjects'; import { Container } from './styles'; -import { IMinute } from './DTOs'; - interface IPrintProps { minute: IMinute; } diff --git a/src/pages/Main/components/Subjects/components/SubjectModal/index.tsx b/src/pages/Main/components/Subjects/components/SubjectModal/index.tsx index de43f44..10a36cc 100644 --- a/src/pages/Main/components/Subjects/components/SubjectModal/index.tsx +++ b/src/pages/Main/components/Subjects/components/SubjectModal/index.tsx @@ -4,10 +4,9 @@ import Button from 'components/Button/Button'; import Input from 'components/Input/Input'; import TextArea from 'components/TextArea/TextArea'; +import { ISubject } from 'DTOs'; import { Container } from './styles'; -import { ISubject } from '../../../MinuteViewer/components/Minute/DTOs'; - interface ISubjectModalProps { setOpenSubjectModal: Function; setSubjects: Function; diff --git a/src/pages/Main/components/Topics/Topics.tsx b/src/pages/Main/components/Topics/Topics.tsx index 0e3988b..8bd90e5 100644 --- a/src/pages/Main/components/Topics/Topics.tsx +++ b/src/pages/Main/components/Topics/Topics.tsx @@ -8,12 +8,13 @@ import Input from 'components/Input/Input'; import Button from 'components/Button/Button'; import BoxInformation from 'components/BoxInformation/BoxInformation'; import ScrollBox from 'components/ScrollBox/ScrollBox'; + +import { ITopic } from 'DTOs'; + import addIcon from '../../../../assets/add_icon.svg'; import StyledTopics from './styles'; -import { ITopic } from '../MinuteViewer/components/Minute/DTOs'; - const Topics = () => { const { topics, setTopics } = useContext(MainContext); diff --git a/src/pages/Main/index.tsx b/src/pages/Main/index.tsx index 50f9716..92448ab 100644 --- a/src/pages/Main/index.tsx +++ b/src/pages/Main/index.tsx @@ -2,7 +2,7 @@ import React, { useContext, useState } from 'react'; import { MainContext, MainProvider } from 'contexts/MainContext'; -import Header from 'components/Header/Header'; +import { IMinute } from 'DTOs'; import Initial from './components/Initial/Initial'; import ProjectInformation from './components/ProjectInformation/ProjectInformation'; import OptionButtons from './components/OptionButtons'; @@ -16,10 +16,6 @@ import ScheduleModal from './components/ScheduleModal'; import Container from './styles'; -import { - IMinute, -} from './components/MinuteViewer/components/Minute/DTOs'; - const Main = () => { const { topics, @@ -46,7 +42,6 @@ const Main = () => { return ( <> -
{showMinute && ( diff --git a/src/pages/NewPassword/index.tsx b/src/pages/NewPassword/index.tsx index dc867cf..a950d92 100644 --- a/src/pages/NewPassword/index.tsx +++ b/src/pages/NewPassword/index.tsx @@ -6,7 +6,7 @@ import Logo from 'assets/logo.svg'; import StyledNewPassword from './styles'; -const index = () => { +const NewPassword = () => { return ( Logo Typext @@ -38,4 +38,4 @@ const index = () => { ); }; -export default index; +export default NewPassword; diff --git a/src/routes.tsx b/src/routes.tsx index 6b4eb16..11d2e2e 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -1,23 +1,33 @@ import React from 'react'; import RecoveryPassword from 'pages/RecoveryPassword'; -import { Switch, Route, BrowserRouter } from 'react-router-dom'; +import { Switch, BrowserRouter } from 'react-router-dom'; +import { getMode } from 'services/api'; + +import Route from 'components/Route'; + +import LandingPage from 'pages/LandingPage'; import NewPassword from 'pages/NewPassword'; import RegisterNewUser from 'pages/RegisterNewUser'; +import Home from 'pages/Home'; import Main from './pages/Main'; import Login from './pages/Login'; import InviteUsers from './pages/InviteUsers'; export default function Routes() { + const isNotProduction = getMode(); + return ( - - - - - - + {isNotProduction && } + + + + + + + ); diff --git a/src/services/auth.ts b/src/services/auth.ts new file mode 100644 index 0000000..352acd5 --- /dev/null +++ b/src/services/auth.ts @@ -0,0 +1,7 @@ +export function getUser(): any { + const storegedUser = localStorage.getItem('tpxt_user'); + + const user = JSON.parse(storegedUser); + + return user; +}