From 6da94ef3f11f7005019460a1b5e2911599f3dc98 Mon Sep 17 00:00:00 2001
From: Ramesh Kumar <ramesh.p@matriotsolutions.com>
Date: Thu, 15 Apr 2021 19:52:31 +0530
Subject: [PATCH] TMSS-631: Confirmation added for logout.

---
 SAS/TMSS/frontend/tmss_webapp/src/App.js | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/SAS/TMSS/frontend/tmss_webapp/src/App.js b/SAS/TMSS/frontend/tmss_webapp/src/App.js
index 135d3e0d6a6..22a596e3782 100644
--- a/SAS/TMSS/frontend/tmss_webapp/src/App.js
+++ b/SAS/TMSS/frontend/tmss_webapp/src/App.js
@@ -52,6 +52,7 @@ class App extends Component {
         this.setPageTitle = this.setPageTitle.bind(this);
         this.loggedIn = this.loggedIn.bind(this);
         this.logout = this.logout.bind(this);
+        this.validateAndLogout = this.validateAndLogout.bind(this);
         this.setSearchField = this.setSearchField.bind(this);
         this.toggleEditToggle = this.toggleEditToggle.bind(this);
 
@@ -141,6 +142,18 @@ class App extends Component {
         this.setState({authenticated: false, redirect:"/"});
     }
 
+    /**
+     * Get confirmation if any of the page has unsaved data and then logout.
+     * @returns 
+     */
+    validateAndLogout() {
+        if (this.state.isEditDirty) {
+            this.toggleDirtyDialog(this.logout);
+        }   else {
+            this.logout();
+        }
+    }
+
     toggleEditToggle() {
         this.setState({ showEditDialog: !this.state.showEditDialog });
     }
@@ -240,7 +253,7 @@ class App extends Component {
                             <AppTopbar 
                                 onToggleMenu={this.onToggleMenu} 
                                 isLoggedIn={this.state.authenticated} 
-                                onLogout={this.logout} 
+                                onLogout={this.validateAndLogout} 
                                 setSearchField={this.setSearchField}
                             />
                             <Router basename={ this.state.currentPath }>
-- 
GitLab