import React from 'react'; import { BrowserRouter, Route, Switch } from 'react-router-dom'; import queryString from 'query-string'; // layout wrappers and dashboard container import { Dashboard, DashboardWrapper } from 'Containers/Dashboard'; import { GuestWrapper } from 'Containers/Auth'; import { PhotoViewWrapper } from 'Containers/PhotoView/PhotoViewWrapper'; import { SplashPageWrapper } from 'Containers/SplashPageWrapper'; import { PhotoShare, PhotoShareGallery, PhotoShareWrapper } from 'Containers/Public'; import { NotFoundWrapper } from 'Containers/NotFoundWrapper'; // guest components import { SignInHow, SignInEmail, SignUpEmail, ForgotPassword, ForgotPasswordEmailSent, ResetPassword, PhoneVerification, PhoneVerificationCode, SignUpUserInformation, WelcomeAboard, NoCompany, SelectAccountType, Blocked, } from 'Containers/SignIn'; import { PhotoView } from 'Containers/PhotoView'; import { PhotoView as NewPhotoView, RocketScan, MultiUnit, MultiUnitRooms } from 'Containers/RocketScan'; import { PhotoShareSplashView } from 'Containers/Public/PhotoShare/PhotoShareSplashView'; // dashboard components import { CreateProjectMain, Projects } from 'Containers/Projects'; import { People } from 'Containers/People'; import { Crew } from 'Containers/Crew'; import { Project } from 'Containers/Project'; import { Account, About } from 'Containers/User'; import { ProjectData } from 'Containers/ProjectData'; import { RocketDry } from 'Containers/RocketDry'; import { Forms } from 'Containers/Forms'; // route components import { PhotoShareProvider } from 'Context/PhotoShare/PhotoShareProvider'; import { ProjectsProvider } from 'Context/Projects'; import { SingleProjectProvider } from 'Context/Project'; import { Notes } from 'Containers/Notes'; import { NotesProvider } from 'Context/Notes'; import { PhotoReport, DryingReport, ReportsAndDocuments } from 'Containers/ReportsAndDocuments'; import { PrivateRoute } from './PrivateRoutes'; import { PublicRoute } from './PublicRoutes'; // Render Props. Create here to prevent a rerender, on a route change, due to arrow functions always being considered new const signInHowRoute = () => ( ); const SignInRoute = () => ( ); const SignUpRoute = () => ( ); const ForgotPasswordRoute = () => ( ); const ForgotPasswordEmailSentRoute = () => ( ); const PhoneVerificationRoute = () => ( ); const PhoneVerificationCodeRoute = () => ( ); const SignUpUserInformationRoute = () => ( ); const WelcomeAboardRoute = () => ( ); const WelcomeBackRoute = () => ( ); const NoCompanyRoute = () => ( ); const SelectAccountTypeRoute = () => ( ); // This route is for a user that clicks on an email reset link. const ResetPasswordRoute = ({ location: { search } }: any) => { // destructure search from location in props. const { token, email } = queryString.parse(search.replace('+', '%2B')); return ( ); }; // dashboard routes - home screen const DashboardRoute = ({ location: { search } }: any) => { // destructure search from location in props. const { ft } = queryString.parse(search); return ( ); }; // Projects related routes const ProjectsRoute = () => ( ); /* * single project routes: tabs specific * */ const ProjectRoute = () => ( ); const ProjectPhotoManagementRoute = () => ( ); const CreateProjectRoute = () => ( ); const EditAddressRoute = () => ( ); // people related routes const PeopleRoute = () => ( ); // Form route const FormsRoute = () => ( ); const PhotoViewRoute = () => ( ); const SignUpFromInviteRoute = () => ( ); const PhotoShareSplashRoute = () => ( ); const PhotoShareRoute = () => ( ); const PhotoShareGalleryRoute = () => ( ); const RocketScanRoute = () => ( ); const RocketScanMultiUnitRoute = () => ( ); const RocketScanCommercialRoute = () => ( ); const AccountRoute = () => ( ); const AboutRoute = () => ( ); const RocketScanMultiUnitContentViewRoute = () => ( ); const RocketScanCommercialRoomsViewRoute = () => ( ); const AllNotesRoute = () => ( ); const CrewRoute = () => ( ); const RocketScanPhotoViewRoute = () => ( ); const ProjectDataRoute = () => ( ); const RocketReportsRoute = () => ( ); const GeneratePhotoReportRoute = () => ( ); const GenerateDryingReportRoute = () => ( ); const RocketDryRoute = () => ( ); const NotFoundRoute = () => ; export const Routes = () => ( );