From 588db871ee33f938fd331ff1468ac57a825fb545 Mon Sep 17 00:00:00 2001 From: Nikhil Nandagopal Date: Mon, 2 Sep 2019 20:20:01 +0530 Subject: [PATCH] added protecrted routes and login page --- app/client/src/index.tsx | 7 ++++-- app/client/src/pages/common/LoginPage.tsx | 23 +++++++++++++++++++ .../src/pages/{ => common}/PageNotFound.tsx | 1 - .../src/pages/common/ProtectedRoute.tsx | 14 +++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 app/client/src/pages/common/LoginPage.tsx rename app/client/src/pages/{ => common}/PageNotFound.tsx (96%) create mode 100644 app/client/src/pages/common/ProtectedRoute.tsx diff --git a/app/client/src/index.tsx b/app/client/src/index.tsx index 5dcb9743f2..8312c6dfb8 100755 --- a/app/client/src/index.tsx +++ b/app/client/src/index.tsx @@ -4,7 +4,8 @@ import { Provider } from "react-redux"; import "./index.css"; import App from "./App"; import Editor from "./pages/Editor"; -import PageNotFound from "./pages/PageNotFound"; +import PageNotFound from "./pages/common/PageNotFound"; +import LoginPage from "./pages/common/LoginPage"; import * as serviceWorker from "./serviceWorker"; import { BrowserRouter, Route, Switch } from "react-router-dom"; import { createStore, applyMiddleware } from "redux"; @@ -14,6 +15,7 @@ import { ThemeProvider, theme } from "./constants/DefaultTheme"; import createSagaMiddleware from 'redux-saga' import { rootSaga } from "./sagas" import { appInitializer } from "./utils/AppsmithUtils"; +import ProtectedRoute from "./pages/common/ProtectedRoute"; appInitializer() WidgetBuilderRegistry.registerWidgetBuilders(); @@ -26,7 +28,8 @@ ReactDOM.render( - + + diff --git a/app/client/src/pages/common/LoginPage.tsx b/app/client/src/pages/common/LoginPage.tsx new file mode 100644 index 0000000000..ecfce186b0 --- /dev/null +++ b/app/client/src/pages/common/LoginPage.tsx @@ -0,0 +1,23 @@ +import * as React from "react" + +import { Card, Elevation } from "@blueprintjs/core" +import { RouterProps } from "react-router"; + +class LoginPage extends React.PureComponent { + + componentDidMount() { + let windowDoc: any = window + windowDoc.netlifyIdentity.open(); + } + + render() { + return ( +
+
+ ) + } +} + +export default LoginPage + + diff --git a/app/client/src/pages/PageNotFound.tsx b/app/client/src/pages/common/PageNotFound.tsx similarity index 96% rename from app/client/src/pages/PageNotFound.tsx rename to app/client/src/pages/common/PageNotFound.tsx index c7254cbf78..c42203e221 100644 --- a/app/client/src/pages/PageNotFound.tsx +++ b/app/client/src/pages/common/PageNotFound.tsx @@ -1,7 +1,6 @@ import * as React from "react" import { NonIdealState, Button, Card, Elevation } from "@blueprintjs/core" -import App from "../App"; import { RouterProps } from "react-router"; class PageNotFound extends React.PureComponent { diff --git a/app/client/src/pages/common/ProtectedRoute.tsx b/app/client/src/pages/common/ProtectedRoute.tsx new file mode 100644 index 0000000000..d2552bed75 --- /dev/null +++ b/app/client/src/pages/common/ProtectedRoute.tsx @@ -0,0 +1,14 @@ +import * as React from "react" +import _ from "lodash" +import { Route, Redirect } from "react-router-dom"; + +const ProtectedRoute = ({ path: path, component: Component, ...rest }: { path: string, component: React.ReactType }) => { + let windowDoc: any = window + return ( ( + !_.isNil(windowDoc.netlifyIdentity.currentUser()) + ? + : + )} />) +} + +export default ProtectedRoute \ No newline at end of file