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 = () => (
);