{"version":3,"sources":["Shared/Helpers/handle-response.js","Shared/Helpers/authheader.js","Shared/Helpers/history.js","Shared/Services/authService.js","Shared/Services/userService.js","Shared/Services/ItemService.js","components/NavMenu.js","components/Layout.js","Pages/Auth/login.jsx","Pages/Auth/resetpassword.jsx","Pages/Auth/resetpassworduser.jsx","Pages/Auth/forgotpassword.jsx","Pages/Dashboard/reorder.js","Pages/Dashboard/Items/item.js","Pages/Dashboard/Items/ItemList.js","Pages/Dashboard/column.js","Pages/Dashboard/dashboard.jsx","Pages/User/users.jsx","Pages/User/adduser.jsx","Pages/Requests/requests.jsx","App.js","registerServiceWorker.js","index.js","images/trash.png","images/users.png"],"names":["handleResponse","response","text","then","data","JSON","parse","ok","indexOf","status","authService","logout","error","message","statusText","Promise","reject","authHeader","currentUser","currentUserValue","token","history","createBrowserHistory","currentUserSubject","BehaviorSubject","localStorage","getItem","pendingRequests","login","Username","Password","IsRemember","requestOptions","method","headers","body","stringify","fetch","resp","result","setItem","next","removeItem","resetpassword","asObservable","value","forgotpassword","resetpassworduser","getUserByToken","setPendingRequest","count","userService","addUser","getAllUsers","getUserLists","reorderUserList","listIds","changeListName","getSharedUsersLists","shareListWithUser","addNewList","deleteList","getChangeOwnerUsers","changeOwner","getOwnerRequests","respOwnerRequest","getPendingRequests","ItemService","addNewItem","editItem","deleteItem","completeItem","NavMenu","props","initInterval","setInterval","getRequestCount","toggleNavbar","bind","state","collapsed","pendingRequestCount","subscribe","x","setState","this","push","Navbar","className","light","Container","NavbarBrand","tag","Link","to","NavbarToggler","onClick","Collapse","isOpen","navbar","NavItem","NavLink","Component","displayName","name","Layout","children","Login","fields","email","password","errors","loading","formIsValid","lastAtPos","lastIndexOf","lastDotPos","length","e","preventDefault","handleValidation","field","target","role","onSubmit","loginSubmit","htmlFor","type","id","onChange","handleChange","disabled","ResetPassword","NewPassword","ConfirmPassword","alert","resetPasswordSubmit","ResetPasswordUser","UserId","success","URLSearchParams","window","location","search","get","loadUserByToken","Token","aria-hidden","ForgotPassword","Email","forgotPasswordSubmit","reorder","list","startIndex","endIndex","Array","from","splice","removed","String","prototype","removePrefix","prefix","substr","toString","reorderQuoteMap","itemsMap","source","destination","draggableId","srclistId","droppableId","sourceList","find","obj","listId","sourceIndex","deslistId","destinationList","destinationIndex","srcItemId","Item","items","aa","itemId","ItemIndex","index","ChangeItemsList","ItemId","DestinationListId","SourceListId","Items","styled","a","isDragging","colors","green","isGroupedOver","N30","N0","N70","N900","Content","div","Footer","Author","small","QuoteId","handleEdit","item","provided","showCompleted","ref","innerRef","draggableProps","dragHandleProps","dangerouslySetInnerHTML","__html","description","replace","substring","completedByUser","firstName","lastName","Moment","completedOn","format","React","PureComponent","Title","h4","Wrapper","isDraggingOver","isDraggingFrom","R50","T50","isDropDisabled","DropZone","ScrollContainer","InnerItemList","EditModelOpen","modelEditItem","console","log","Name","Description","handleToUpdate","confirm","map","key","shouldRespectForceTouch","dragProvided","dragSnapshot","Boolean","combineTargetFor","Modal","toggle","ModalHeader","deleteItemSubmit","src","trashIcon","alt","ModalBody","handleItemChange","html","ModalFooter","Button","color","Fragment","completeItemSubmit","editItemSubmit","InnerList","dropProvided","title","placeholder","ItemList","ignoreContainerClipping","internalScroll","scrollContainerStyle","isCombineEnabled","listType","style","dropSnapshot","draggingFromThisWith","droppableProps","defaultProps","Header","G50","Column","toggleModel","model","getUserList","toggleDeleteModel","modelDeleteList","toggleAddItemModel","modelAddItem","toggleTitle","handleBlur","ListName","ListId","selectedUser","users","sharedUsers","userLists","toggleChangeOwnerModel","modelChangeOwner","getChangeOwnerData","changeOwnerUsers","changeListOwner","selectedOwnerUser","ConfirmYesCO","toLocaleLowerCase","submitted","handleSwitchChange","checked","ConfirmYes","errorAddItem","snapshot","height","width","shareCount","usersIcon","data-toggle","aria-haspopup","aria-expanded","aria-labelledby","userId","onBlur","onKeyDown","keyCode","autoFocus","backgroundColor","filter","isCompleted","slice","options","isSearchable","handleOwnerUserChange","handleUserChange","user","addItemSubmit","deleteListSubmit","B100","Dashboard","getuserList","toggleAddListModel","modelAddList","onDragEnd","ReorderList","lists","board","direction","isScrollable","addListSubmit","Users","allUsers","AddUser","FirstName","LastName","CreateLists","addUserSubmit","Requests","getAllRequests","allRequests","acceptOwnerRequest","requestId","RequestId","IsAccepted","rejectOwnerRequest","requests","byUser","listName","createdOn","App","isExpired","decoded","jwt_decode","Date","now","exp","pathname","path","exact","component","isLocalhost","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","catch","baseUrl","document","getElementsByTagName","getAttribute","rootElement","getElementById","ReactDOM","render","basename","URL","process","origin","addEventListener","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker","module","exports"],"mappings":"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","file":"static/js/main.137812ef.chunk.js","sourcesContent":["import { authService } from '../Services';\r\n\r\nexport function handleResponse(response) {\r\n return response.text().then(text => {\r\n const data = text && JSON.parse(text);\r\n if (!response.ok) {\r\n if ([401, 403].indexOf(response.status) !== -1) {\r\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\r\n authService.logout();\r\n // location.reload(true);\r\n }\r\n\r\n const error = (data && data.message) || response.statusText;\r\n return Promise.reject(error);\r\n }\r\n\r\n return data;\r\n });\r\n}","import { authService } from '../Services';\r\n\r\nexport function authHeader() {\r\n const currentUser = authService.currentUserValue;\r\n if (currentUser && currentUser.token) {\r\n return { 'Content-Type': 'application/json','Authorization': `Bearer ${currentUser.token}` };\r\n } else {\r\n return {};\r\n }\r\n}","import { createBrowserHistory } from 'history';\r\n\r\nexport const history = createBrowserHistory();","import { BehaviorSubject } from 'rxjs';\r\nimport { handleResponse, authHeader } from '../Helpers';\r\nconst currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')));\r\nconst pendingRequests = new BehaviorSubject(0);\r\n\r\nexport const authService = {\r\n login,\r\n logout,\r\n resetpassword,\r\n currentUser: currentUserSubject.asObservable(),\r\n pendingRequests: pendingRequests.asObservable(),\r\n get currentUserValue() { return currentUserSubject.value },\r\n forgotpassword,\r\n resetpassworduser,\r\n getUserByToken,\r\n setPendingRequest\r\n};\r\n\r\nfunction login(Username, Password, IsRemember) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ Username, Password, IsRemember })\r\n };\r\n\r\n return fetch(`/auth/login`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n let result = resp.response;\r\n if (result.status === true) {\r\n localStorage.setItem('currentUser', JSON.stringify(result.data));\r\n currentUserSubject.next(result.data);\r\n }\r\n return result;\r\n });\r\n}\r\n\r\nfunction logout() {\r\n localStorage.removeItem('currentUser');\r\n currentUserSubject.next(null);\r\n}\r\n\r\nfunction resetpassword(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/auth/resetpassword`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\nfunction forgotpassword(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n //headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/auth/forgotpassword`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction resetpassworduser(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/auth/resetpassworduser`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction getUserByToken(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/auth/getuserbytoken`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\nfunction setPendingRequest(count) {\r\n pendingRequests.next(count);\r\n}","import { handleResponse, authHeader } from '../Helpers';\r\n\r\nexport const userService = {\r\n addUser, getAllUsers, getUserLists, reorderUserList, changeListName, getSharedUsersLists, shareListWithUser, addNewList, deleteList,\r\n getChangeOwnerUsers, changeOwner,getOwnerRequests,respOwnerRequest,getPendingRequests\r\n};\r\n\r\nfunction addUser(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/add`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction getAllUsers() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader()\r\n };\r\n\r\n return fetch(`/user/all`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction getUserLists() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader()\r\n };\r\n\r\n return fetch(`/user/lists`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction reorderUserList(listIds) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(listIds)\r\n };\r\n\r\n return fetch(`/user/lists/reorder`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction changeListName(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/list/rename`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction getSharedUsersLists(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/list/getshared`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction shareListWithUser(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/list/share`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction addNewList(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/addlist`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction deleteList(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/list/delete`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction getChangeOwnerUsers() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader()\r\n };\r\n\r\n return fetch(`/user/getchangeowner`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction changeOwner(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/changeownerrequest`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\nfunction getOwnerRequests() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n };\r\n return fetch(`/user/ownerrequests`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n} \r\nfunction respOwnerRequest(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/user/requestresp`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\nfunction getPendingRequests() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader()\r\n };\r\n\r\n return fetch(`/user/requests/pending`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}","import { handleResponse, authHeader } from '../Helpers';\r\n\r\nexport const ItemService = {\r\n addNewItem, editItem, deleteItem, completeItem\r\n};\r\n\r\nfunction addNewItem(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/item/add`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction editItem(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/item/edit`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\n\r\nfunction deleteItem(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/item/delete`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}\r\nfunction completeItem(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/item/complete`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n return resp;\r\n });\r\n}","import React, { Component } from 'react';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport './NavMenu.css';\r\nimport { authService, userService } from '../Shared/Services';\r\nimport { history } from '../Shared/Helpers';\r\n\r\nexport class NavMenu extends Component {\r\n static displayName = NavMenu.name;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.toggleNavbar = this.toggleNavbar.bind(this);\r\n this.state = {\r\n collapsed: true,\r\n pendingRequestCount: 0\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n authService.pendingRequests.subscribe(x => {\r\n this.setState({ pendingRequestCount: x });\r\n });\r\n this.getRequestCount();\r\n this.initInterval();\r\n }\r\n\r\n initInterval =() => {\r\n setInterval(() => {\r\n this.getRequestCount()\r\n }, 300000);\r\n }\r\n getRequestCount =() => {\r\n userService.getPendingRequests().then((resp) => {\r\n if (resp.status === true) {\r\n authService.setPendingRequest(resp.data);\r\n }\r\n });\r\n }\r\n\r\n toggleNavbar() {\r\n this.setState({\r\n collapsed: !this.state.collapsed\r\n });\r\n }\r\n logout() {\r\n authService.logout();\r\n history.push('/login');\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n Focus Board\r\n \r\n \r\n
    \r\n \r\n Dashboard\r\n \r\n \r\n Users\r\n \r\n \r\n Reset password\r\n \r\n \r\n Requests\r\n {this.state.pendingRequestCount > 0 && {this.state.pendingRequestCount}}\r\n \r\n \r\n \r\n Logout\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { NavMenu } from './NavMenu';\r\nimport { authService } from '../Shared/Services';\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n currentUser: null\r\n };\r\n }\r\n componentDidMount() {\r\n authService.currentUser.subscribe(x => this.setState({ currentUser: x }));\r\n }\r\n render() {\r\n let { currentUser } = this.state;\r\n return (\r\n
\r\n {currentUser !== null &&\r\n \r\n }\r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\n import { Link } from 'react-router-dom';\r\nimport { authService } from '../../Shared/Services';\r\nimport { history } from '../../Shared/Helpers';\r\nclass Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fields: {\r\n email: '',\r\n password: ''\r\n },\r\n errors: {},\r\n loading: false,\r\n error: \"\"\r\n };\r\n }\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n //Email\r\n if (!fields[\"email\"]) {\r\n formIsValid = false;\r\n errors[\"email\"] = \"Please enter email address\";\r\n }\r\n\r\n else if (typeof fields[\"email\"] !== \"undefined\") {\r\n let lastAtPos = fields[\"email\"].lastIndexOf(\"@\");\r\n let lastDotPos = fields[\"email\"].lastIndexOf(\".\");\r\n\r\n if (\r\n !(\r\n lastAtPos < lastDotPos &&\r\n lastAtPos > 0 &&\r\n fields[\"email\"].indexOf(\"@@\") === -1 &&\r\n lastDotPos > 2 &&\r\n fields[\"email\"].length - lastDotPos > 2\r\n )\r\n ) {\r\n formIsValid = false;\r\n errors[\"email\"] = \"Email address is not valid\";\r\n }\r\n }\r\n\r\n if (!fields[\"password\"]) {\r\n formIsValid = false;\r\n errors[\"password\"] = \"Please enter password\";\r\n }\r\n\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n\r\n loginSubmit(e) {\r\n e.preventDefault();\r\n if (this.handleValidation()) {\r\n this.setState({ loading: true });\r\n authService.login(this.state.fields.email, this.state.fields.password, false).then((resp) => {\r\n if (resp.status === false) {\r\n this.setState({ loading: false });\r\n this.setState({ error: \"Username or Password is not valid\" });\r\n }\r\n else {\r\n history.push('/dashboard');\r\n }\r\n });\r\n } else {\r\n // alert(\"Form has errors.\");\r\n }\r\n }\r\n\r\n handleChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n render() {\r\n let loading = this.state.loading;\r\n let error = this.state.error;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Login

\r\n

Please enter your login and password!

\r\n {error !== \"\" &&
\r\n {error}\r\n
}\r\n
\r\n
\r\n \r\n \r\n {this.state.errors[\"email\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"password\"]}\r\n
\r\n\r\n

\r\n Forgot password?\r\n
\r\n
\r\n {\r\n loading ? :\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default Login;","import React, { Component } from 'react';\r\nimport {authService} from '../../Shared/Services';\r\nclass ResetPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fields: {\r\n Password:'',\r\n NewPassword:'',\r\n ConfirmPassword:''\r\n },\r\n errors: {},\r\n };\r\n }\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n //Email\r\n if (!fields[\"Password\"]) {\r\n formIsValid = false;\r\n errors[\"Password\"] = \"Please provide current password\";\r\n }\r\n\r\n if (!fields[\"NewPassword\"]) {\r\n formIsValid = false;\r\n errors[\"NewPassword\"] = \"Please provide new password\";\r\n }\r\n if (!fields[\"ConfirmPassword\"]) {\r\n formIsValid = false;\r\n errors[\"ConfirmPassword\"] = \"Please provide confirm password\";\r\n }\r\n\r\n else if(fields[\"NewPassword\"] !== fields[\"ConfirmPassword\"]){\r\n formIsValid = false;\r\n errors[\"ConfirmPassword\"] = \"Password does not match\";\r\n }\r\n\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n\r\n resetPasswordSubmit(e) {\r\n e.preventDefault();\r\n if (this.handleValidation()) {\r\n authService.resetpassword(this.state.fields).then((resp) => {\r\n if(resp.status === false){\r\n alert(resp.message);\r\n }\r\n else{\r\n this.setState({fields: {\r\n Password:'',\r\n NewPassword:'',\r\n ConfirmPassword:''\r\n } });\r\n alert(resp.message);\r\n }\r\n });\r\n } else {\r\n // alert(\"Form has errors.\");\r\n }\r\n }\r\n\r\n handleChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n

Reset Password

\r\n

Reset your password!

\r\n
\r\n
\r\n \r\n \r\n {this.state.errors[\"Password\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"NewPassword\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"ConfirmPassword\"]}\r\n
\r\n\r\n

\r\n \r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default ResetPassword;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { authService } from '../../Shared/Services';\r\nclass ResetPasswordUser extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fields: {\r\n NewPassword: '',\r\n ConfirmPassword: '',\r\n UserId: 0\r\n },\r\n errors: {},\r\n token: \"\",\r\n loading: false,\r\n error: \"\",\r\n success:\"\"\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const token = new URLSearchParams(window.location.search).get('token')\r\n this.setState({ token: token }, () => {\r\n this.loadUserByToken()\r\n })\r\n }\r\n\r\n loadUserByToken() {\r\n this.setState({ loading: true });\r\n authService.getUserByToken({ Token: this.state.token }).then((resp) => {\r\n if (resp.status === false) {\r\n this.setState({ error: resp.message });\r\n }\r\n else {\r\n this.setState({ fields: { UserId: resp.data } });\r\n }\r\n this.setState({ loading: false });\r\n });\r\n }\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n if (!fields[\"NewPassword\"]) {\r\n formIsValid = false;\r\n errors[\"NewPassword\"] = \"Please provide new password\";\r\n }\r\n if (!fields[\"ConfirmPassword\"]) {\r\n formIsValid = false;\r\n errors[\"ConfirmPassword\"] = \"Please provide confirm password\";\r\n }\r\n\r\n else if (fields[\"NewPassword\"] !== fields[\"ConfirmPassword\"]) {\r\n formIsValid = false;\r\n errors[\"ConfirmPassword\"] = \"Password does not match\";\r\n }\r\n\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n\r\n resetPasswordSubmit(e) {\r\n e.preventDefault();\r\n if (this.handleValidation()) {\r\n this.setState({ loading: true });\r\n authService.resetpassworduser(this.state.fields).then((resp) => {\r\n if (resp.status === false) {\r\n this.setState({error : resp.message})\r\n }\r\n else {\r\n this.setState({success: resp.message })\r\n }\r\n this.setState({ loading: false });\r\n });\r\n }\r\n }\r\n\r\n handleChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n render() {\r\n let { error, success, loading } = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {loading ? (

) : (\r\n
\r\n {this.state.token != \"\" && this.state.fields[\"UserId\"] > 0 ? (\r\n
\r\n\r\n

Reset Password

\r\n

Reset your password!

\r\n {error !== \"\" &&
\r\n {error}\r\n
}\r\n {success !== \"\" &&
\r\n {success}\r\n
}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"NewPassword\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"ConfirmPassword\"]}\r\n
\r\n\r\n {\r\n loading ? :\r\n \r\n }\r\n
\r\n
\r\n ) : (\r\n
\r\n Token is not valid go to Login\r\n
\r\n )\r\n }\r\n\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default ResetPasswordUser;","import React, { Component } from 'react';\r\nimport { authService } from '../../Shared/Services';\r\nimport { Link } from 'react-router-dom';\r\nclass ForgotPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fields: {\r\n Email:''\r\n },\r\n errors: {},\r\n success: \"\",\r\n error: \"\",\r\n loading:false\r\n };\r\n }\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n if (!fields[\"Email\"]) {\r\n formIsValid = false;\r\n errors[\"Email\"] = \"Please enter email address\";\r\n }\r\n\r\n else if (typeof fields[\"Email\"] !== \"undefined\") {\r\n let lastAtPos = fields[\"Email\"].lastIndexOf(\"@\");\r\n let lastDotPos = fields[\"Email\"].lastIndexOf(\".\");\r\n\r\n if (\r\n !(\r\n lastAtPos < lastDotPos &&\r\n lastAtPos > 0 &&\r\n fields[\"Email\"].indexOf(\"@@\") === -1 &&\r\n lastDotPos > 2 &&\r\n fields[\"Email\"].length - lastDotPos > 2\r\n )\r\n ) {\r\n formIsValid = false;\r\n errors[\"Email\"] = \"Email address is not valid\";\r\n }\r\n }\r\n\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n\r\n forgotPasswordSubmit(e) {\r\n e.preventDefault();\r\n if (this.handleValidation()) {\r\n this.setState({ loading: true, error: \"\", success:\"\" })\r\n authService.forgotpassword(this.state.fields).then((resp) => {\r\n if (resp.status === false) {\r\n this.setState({ error: resp.message, loading:false})\r\n }\r\n else{\r\n this.setState({fields: {\r\n Email: ''\r\n }, success: resp.message, loading :false\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n render() {\r\n let { error,success,loading} = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

Forgot Password

\r\n

Forgot your password!

\r\n {error !== \"\" &&
\r\n {error}\r\n
}\r\n {success !== \"\" &&
\r\n {success}\r\n
}\r\n
\r\n
\r\n \r\n \r\n {this.state.errors[\"Email\"]}\r\n
\r\n

\r\n Login\r\n
\r\n
\r\n \r\n {\r\n loading ? :\r\n \r\n }\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default ForgotPassword;","import { handleResponse, authHeader } from '../../Shared/Helpers';\r\nconst reorder = (list, startIndex, endIndex) => {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n return result;\r\n};\r\n\r\nexport default reorder;\r\n\r\n\r\nString.prototype.removePrefix = function (prefix) {\r\n const hasPrefix = this.indexOf(prefix) === 0;\r\n return hasPrefix ? this.substr(prefix.length) : this.toString();\r\n};\r\n\r\nexport const reorderQuoteMap = ({ itemsMap, source, destination, draggableId }) => {\r\n\r\n const srclistId = source.droppableId.removePrefix(\"List-\");\r\n var sourceList = itemsMap.find(obj => obj.listId === +srclistId);\r\n var sourceIndex = itemsMap.indexOf(sourceList);\r\n\r\n const deslistId = destination.droppableId.removePrefix(\"List-\");\r\n var destinationList = itemsMap.find(obj => obj.listId === +deslistId);\r\n var destinationIndex = itemsMap.indexOf(destinationList);\r\n\r\n const srcItemId = draggableId.removePrefix(\"Item-\");\r\n const Item = itemsMap[sourceIndex].items.find(aa => aa.itemId === +srcItemId)\r\n var ItemIndex = itemsMap[sourceIndex].items.indexOf(Item);\r\n Item.listId = +deslistId;\r\n \r\n //remove from source\r\n itemsMap[sourceIndex].items.splice(ItemIndex, 1);\r\n //add to new list\r\n itemsMap[destinationIndex].items.splice(destination.index, 0, Item);\r\n //console.log(itemsMap[destinationIndex].items);\r\n ChangeItemsList({ ItemId: srcItemId, DestinationListId: deslistId, SourceListId: srclistId, Items: itemsMap[destinationIndex].items });\r\n return [\r\n ...itemsMap\r\n ];\r\n};\r\n\r\nfunction ChangeItemsList(data) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: authHeader(),\r\n body: JSON.stringify(data)\r\n };\r\n\r\n return fetch(`/item/reorder`, requestOptions)\r\n .then(handleResponse)\r\n .then(resp => {\r\n //console.log(resp);\r\n //return resp;\r\n });\r\n}\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { colors } from \"@atlaskit/theme\";\r\nimport Moment from 'moment';\r\n\r\nconst getBackgroundColor = (isDragging, isGroupedOver) => {\r\n if (isDragging) {\r\n return colors.N30;\r\n }\r\n\r\n if (isGroupedOver) {\r\n return colors.N30;\r\n }\r\n\r\n return colors.N0;\r\n};\r\n\r\nconst getBorderColor = (isDragging) =>\r\n isDragging ? colors.green : \"transparent\";\r\n\r\nconst Container = styled.a`\r\n border-radius: 10px;\r\n border: 2px solid transparent;\r\n border-color: ${props => getBorderColor(props.isDragging)};\r\n background-color: ${props =>\r\n getBackgroundColor(props.isDragging, props.isGroupedOver)};\r\n box-shadow: ${({ isDragging }) =>\r\n isDragging ? `2px 2px 1px ${colors.N70}` : \"none\"};\r\n padding: 8px;\r\n min-height: 40px;\r\n margin-bottom: 5px;\r\n user-select: none;\r\n\r\n /* anchor overrides */\r\n color: ${colors.N900};\r\n\r\n &:hover,\r\n &:active {\r\n color: ${colors.N900};\r\n text-decoration: none;\r\n }\r\n\r\n &:focus {\r\n outline: none;\r\n box-shadow: none;\r\n }\r\n\r\n /* flexbox */\r\n display: flex;\r\n`;\r\n\r\n//const Avatar = styled.img`\r\n// width: 40px;\r\n// height: 40px;\r\n// border-radius: 50%;\r\n// margin-right: 10px;\r\n// flex-shrink: 0;\r\n// flex-grow: 0;\r\n//`;\r\n\r\nconst Content = styled.div`\r\n /* flex child */\r\n flex-grow: 1;\r\n /*\r\n Needed to wrap text in ie11\r\n https://stackoverflow.com/questions/35111090/why-ie11-doesnt-wrap-the-text-in-flexbox\r\n */\r\n flex-basis: 100%;\r\n /* flex parent */\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\n//const BlockQuote = styled.div`\r\n// &::before {\r\n// content: open-quote;\r\n// }\r\n// &::after {\r\n// content: close-quote;\r\n// }\r\n//`;\r\n\r\nconst Footer = styled.div`\r\n font-style: italic;\r\n margin-top: 3px;\r\n align-items: center;\r\n`;\r\n\r\nconst Author = styled.small`\r\n margin: 0;\r\n font-weight: normal;\r\n`;\r\n\r\nconst QuoteId = styled.small`\r\n margin: 0;\r\n font-weight: normal;\r\n`;\r\n\r\n// Previously this extended React.Component\r\n// That was a good thing, because using React.PureComponent can hide\r\n// issues with the selectors. However, moving it over does can considerable\r\n// performance improvements when reordering big lists (400ms => 200ms)\r\n// Need to be super sure we are not relying on PureComponent here for\r\n// things we should be doing in the selector as we do not know if consumers\r\n// will be using PureComponent\r\nexport default class Item extends React.PureComponent {\r\n handleEdit = () => {\r\n var handleEdit = this.props.handleEdit;\r\n handleEdit(this.props.item);\r\n }\r\n render() {\r\n const { item, isDragging, isGroupedOver, provided, showCompleted } = this.props;\r\n return (\r\n \r\n {/**/}\r\n \r\n {item.name}\r\n ]+>/g, '').length > 150 ? item.description.replace(/<[^>]+>/g, '').substring(0, 150) + \"...\" : item.description }}>\r\n {showCompleted && < Footer >\r\n Completed By: {item.completedByUser.firstName + \" \" + item.completedByUser.lastName}\r\n
\r\n Completed On: {Moment(item.completedOn).format('MM/DD/YYYY')}\r\n \r\n }\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { colors } from \"@atlaskit/theme\";\r\nimport { Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport Item from \"./item\";\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport { ItemService } from \"../../../Shared/Services\";\r\nimport ContentEditable from 'react-contenteditable'\r\nimport trashIcon from \"../../../images/trash.png\";\r\n\r\nconst getBackgroundColor = (isDraggingOver, isDraggingFrom) => {\r\n if (isDraggingOver) {\r\n return colors.R50;\r\n }\r\n if (isDraggingFrom) {\r\n return colors.T50;\r\n }\r\n return colors.N30;\r\n};\r\nconst Title = styled.h4`\r\n padding: 8px;\r\n padding-bottom:0px;\r\n margin-bottom:0px;\r\n transition: background-color ease 0.2s;\r\n flex-grow: 1;\r\n user-select: none;\r\n position: relative;\r\n &:focus {\r\n outline: 2px solid black;\r\n outline-offset: 2px;\r\n }\r\n`;\r\n\r\n\r\nconst Wrapper = styled.div`\r\n background-color: ${props =>\r\n getBackgroundColor(props.isDraggingOver, props.isDraggingFrom)};\r\n display: flex;\r\n flex-direction: column;\r\n opacity: ${({ isDropDisabled }) => (isDropDisabled ? 0.5 : \"inherit\")};\r\n padding: 10px;\r\n border: 1px;\r\n padding-bottom: 0;\r\n transition: background-color 0.2s ease, opacity 0.1s ease;\r\n user-select: none;\r\n`;\r\n\r\nconst scrollContainerHeight = 250;\r\n\r\nconst DropZone = styled.div`\r\n /* stop the list collapsing when empty */\r\n //min-height: ${scrollContainerHeight}px;\r\n /*\r\n not relying on the items for a margin-bottom\r\n as it will collapse when the list is empty\r\n */\r\n padding-bottom: 10px;\r\n`;\r\n\r\nconst ScrollContainer = styled.div`\r\n overflow-x: auto;\r\n overflow-y: auto;\r\n //max-height: ${scrollContainerHeight}px;\r\n`;\r\n\r\n/* stylelint-disable block-no-empty */\r\nconst Container = styled.div``;\r\n/* stylelint-enable */\r\n\r\nclass InnerItemList extends React.Component {\r\n //shouldComponentUpdate(nextProps) {\r\n // if (nextProps.items !== this.props.items) {\r\n // return true;\r\n // }\r\n // return false;\r\n //}\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n modelEditItem: false,\r\n loading: false,\r\n fields: {\r\n Name: '',\r\n Description: '',\r\n ItemId: ''\r\n },\r\n errors: {},\r\n }\r\n //var handleEdit = this.handleEdit.bind(this);\r\n }\r\n EditModelOpen = (item) => {\r\n this.setState({\r\n modelEditItem: true\r\n }, () => {\r\n console.log(item);\r\n })\r\n }\r\n handleEdit(item) {\r\n /*if (!this.props.showCompleted) {*/\r\n let fields = this.state.fields;\r\n fields.Name = item.name;\r\n fields.Description = item.description;\r\n fields.ItemId = item.itemId;\r\n this.setState({ modelEditItem: true })\r\n //}\r\n }\r\n handleItemChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n if (!fields[\"Name\"]) {\r\n formIsValid = false;\r\n errors[\"Name\"] = \"Please provide item name\";\r\n }\r\n if (!fields[\"Description\"]) {\r\n formIsValid = false;\r\n errors[\"Description\"] = \"Please provide description\";\r\n }\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n\r\n editItemSubmit() {\r\n let fields = this.state.fields;\r\n if (this.handleValidation()) {\r\n this.setState({ loading: true });\r\n ItemService.editItem(fields).then((resp) => {\r\n this.setState({ loading: false, modelEditItem: false });\r\n var handleToUpdate = this.props.handleToUpdate;\r\n handleToUpdate(resp.data);\r\n });\r\n } else {\r\n }\r\n }\r\n\r\n deleteItemSubmit() {\r\n if (window.confirm('Are you sure you want to delete this item?')) {\r\n let fields = this.state.fields;\r\n this.setState({ loading: true });\r\n ItemService.deleteItem({ ItemId: fields.ItemId }).then((resp) => {\r\n this.setState({ loading: false, modelEditItem: false });\r\n var handleToUpdate = this.props.handleToUpdate;\r\n handleToUpdate(resp.data);\r\n });\r\n }\r\n }\r\n completeItemSubmit() {\r\n if (window.confirm('Are you sure you want to complete this item?')) {\r\n let fields = this.state.fields;\r\n this.setState({ loading: true });\r\n ItemService.completeItem({ ItemId: fields.ItemId }).then((resp) => {\r\n this.setState({ loading: false, modelEditItem: false });\r\n var handleToUpdate = this.props.handleToUpdate;\r\n handleToUpdate(resp.data);\r\n });\r\n }\r\n }\r\n\r\n \r\n render() {\r\n let loading = this.state.loading;\r\n let showCompleted = this.props.showCompleted;\r\n return (\r\n
\r\n {this.props.items.map((item, index) => (\r\n \r\n {(dragProvided, dragSnapshot) => (\r\n \r\n )}\r\n \r\n ))\r\n }\r\n
\r\n this.setState({ modelEditItem: !this.state.modelEditItem })} isOpen={this.state.modelEditItem} >\r\n Edit item\r\n {!showCompleted &&\r\n this.deleteItemSubmit()}>\"delete\"\r\n }\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.state.errors[\"Name\"]}\r\n
\r\n
\r\n \r\n \r\n {this.state.errors[\"Description\"]}\r\n
\r\n
\r\n \r\n {loading ?\r\n :\r\n \r\n {!showCompleted && }\r\n \r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n }\r\n\r\nclass InnerList extends React.Component {\r\n render() {\r\n\r\n const { items, dropProvided, showCompleted } = this.props;\r\n const title = this.props.title ? {this.props.title} : null;\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n {dropProvided.placeholder}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class ItemList extends React.Component {\r\n static defaultProps = {\r\n listId: \"LIST\"\r\n };\r\n render() {\r\n const {\r\n ignoreContainerClipping,\r\n internalScroll,\r\n scrollContainerStyle,\r\n isDropDisabled,\r\n isCombineEnabled,\r\n listId,\r\n listType,\r\n style,\r\n items,\r\n title,\r\n showCompleted\r\n } = this.props;\r\n\r\n\r\n return (\r\n \r\n {(dropProvided, dropSnapshot) => (\r\n \r\n {internalScroll ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { Draggable } from \"react-beautiful-dnd\";\r\nimport { colors } from \"@atlaskit/theme\";\r\nimport { userService, ItemService, authService } from \"../../Shared/Services\";\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport ItemList from \"./Items/ItemList\";\r\nimport usersIcon from \"../../images/users.png\";\r\nimport Select from 'react-select';\r\nimport ContentEditable from 'react-contenteditable'\r\nimport Switch from \"react-switch\";\r\n//import Title from \"./title\";\r\n\r\nconst Container = styled.div`\r\n margin-left: 15px;\r\n display: inline-flex;\r\n flex-direction: column;\r\n width:350px;\r\n`;\r\n\r\nconst Header = styled.div`\r\n display: inline;\r\n align-items: center;\r\n justify-content: center;\r\n border-top-left-radius: 5px;\r\n border-top-right-radius: 5px;\r\n background-color: ${({ isDragging }) =>\r\n isDragging ? colors.G50 : colors.N30};\r\n transition: background-color 0.2s ease;\r\n &:hover {\r\n background-color: ${colors.G50};\r\n }\r\n`;\r\n\r\nconst Title = styled.h4`\r\n padding: 8px 12px;\r\n padding-bottom:0px;\r\n margin-bottom:0px;\r\n transition: background-color ease 0.2s;\r\n flex-grow: 1;\r\n user-select: none;\r\n position: relative;\r\n &:focus {\r\n outline: 2px solid black;\r\n outline-offset: 2px;\r\n }\r\n`;\r\n\r\n\r\nexport default class Column extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n listId: 0,\r\n ListName: '',\r\n model: false,\r\n users: [],\r\n sharedUsers: [],\r\n selectedUser: { value: 0 },\r\n selectedOwnerUser: { value: 0 },\r\n error: \"\",\r\n modelAddItem: false,\r\n modelDeleteList: false,\r\n fields: {\r\n Name: '',\r\n Description: '',\r\n ConfirmYes: '',\r\n ConfirmYesCO: ''\r\n },\r\n submitted: false,\r\n errors: {},\r\n success: \"\",\r\n errorAddItem: \"\",\r\n loading: false,\r\n changeOwnerUsers: [],\r\n currentUser: null,\r\n //items : props.items\r\n showCompleted: false\r\n };\r\n }\r\n componentWillMount() {\r\n authService.currentUser.subscribe(x => this.setState({ currentUser: x }));\r\n }\r\n //componentWillReceiveProps(nextProps) {\r\n // this.setState({ items: nextProps.items });\r\n //}\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n if (!fields[\"Name\"]) {\r\n formIsValid = false;\r\n errors[\"Name\"] = \"Please provide item name\";\r\n }\r\n if (!fields[\"Description\"]) {\r\n formIsValid = false;\r\n errors[\"Description\"] = \"Please provide description\";\r\n }\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n addItemSubmit() {\r\n let fields = this.state.fields;\r\n this.setState({ success: \"\", errorAddItem: \"\" });\r\n if (this.handleValidation()) {\r\n this.setState({ loading: true });\r\n ItemService.addNewItem({ ListId: this.props.list.listId, Name: fields[\"Name\"], Description: fields[\"Description\"] }).then((resp) => {\r\n if (resp.status === false) {\r\n this.setState({ error: resp.message });\r\n }\r\n else {\r\n var handleToUpdate = this.props.handleToUpdate;\r\n handleToUpdate(resp.data);\r\n this.setState({\r\n fields: {\r\n Name: '',\r\n Description: '',\r\n }\r\n });\r\n this.setState({ success: resp.message });\r\n }\r\n this.setState({ loading: false });\r\n });\r\n } else {\r\n }\r\n }\r\n\r\n deleteListSubmit() {\r\n this.setState({ success: \"\", errorAddItem: \"\" });\r\n if (this.state.fields.ConfirmYes.toLocaleLowerCase() === 'yes') {\r\n this.setState({ loading: true });\r\n userService.deleteList({ ListId: this.props.list.listId }).then((resp) => {\r\n if (resp.status === false) {\r\n this.setState({ error: resp.message });\r\n }\r\n else {\r\n var handleToUpdate = this.props.handleToUpdate;\r\n handleToUpdate(resp.data);\r\n this.setState({\r\n fields: {\r\n Name: '',\r\n Description: '',\r\n }\r\n });\r\n this.setState({ success: resp.message });\r\n }\r\n this.setState({ loading: false });\r\n });\r\n } else {\r\n }\r\n }\r\n getUserList() {\r\n userService.getSharedUsersLists({ ListId: this.props.list.listId }).then((resp) => {\r\n if (resp.status === true) {\r\n this.setState({\r\n users: resp.data.users,\r\n sharedUsers: resp.data.sharedUsers\r\n });\r\n }\r\n })\r\n }\r\n toggleModel = () => {\r\n this.setState({ model: !this.state.model }, () => {\r\n if (this.state.model === true) {\r\n this.getUserList();\r\n }\r\n })\r\n };\r\n toggleDeleteModel = () => {\r\n this.setState({ modelDeleteList: !this.state.modelDeleteList });\r\n };\r\n toggleAddItemModel = () => {\r\n this.setState({ modelAddItem: !this.state.modelAddItem });\r\n };\r\n componentDidMount() {\r\n this.setState({ ListName: this.props.list.name })\r\n }\r\n toggleTitle = (list) => {\r\n this.setState({\r\n listId: list.listId\r\n })\r\n }\r\n handleChange(e) {\r\n var value = e.target.value;\r\n this.setState({ ListName: value })\r\n }\r\n handleItemChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n handleUserChange(e) {\r\n this.setState({ selectedUser: e })\r\n }\r\n handleOwnerUserChange(e) {\r\n this.setState({ selectedOwnerUser: e })\r\n }\r\n\r\n handleBlur = () => {\r\n if (this.state.ListName === \"\") {\r\n this.setState({ ListName: \"Untitled section\" })\r\n }\r\n userService.changeListName({ ListId: this.state.listId, ListName: this.state.ListName })\r\n this.setState({\r\n listId: \"\"\r\n });\r\n }\r\n shareListWithUser = () => {\r\n if (this.state.selectedUser.value === 0) {\r\n this.setState({ error: \"Please select user to share list\" })\r\n }\r\n else {\r\n this.setState({ error: \"\" })\r\n userService.shareListWithUser({ ListId: this.props.list.listId, UserId: this.state.selectedUser.value }).then((resp) => {\r\n if (resp.status === true) {\r\n this.setState({\r\n users: resp.data.users,\r\n sharedUsers: resp.data.sharedUsers,\r\n selectedUser: { value: 0 }\r\n });\r\n var handleToUpdate = this.props.handleToUpdate;\r\n handleToUpdate(resp.data.userLists);\r\n }\r\n })\r\n }\r\n }\r\n\r\n toggleChangeOwnerModel = () => {\r\n this.setState({ modelChangeOwner: !this.state.modelChangeOwner });\r\n this.getChangeOwnerData();\r\n };\r\n getChangeOwnerData = () => {\r\n userService.getChangeOwnerUsers().then((resp) => {\r\n if (resp.status === true) {\r\n this.setState({\r\n changeOwnerUsers: resp.data\r\n });\r\n }\r\n })\r\n }\r\n changeListOwner = () => {\r\n let errors = {};\r\n if (this.state.selectedOwnerUser.value > 0) {\r\n if (this.state.fields.ConfirmYesCO.toLocaleLowerCase() === 'yes') {\r\n this.setState({ loading: true, error:\"\",success:\"\"});\r\n userService.changeOwner({ ListId: this.props.list.listId, UserId: this.state.selectedOwnerUser.value }).then((resp) => {\r\n if (resp.status === true) {\r\n var handleToUpdate = this.props.handleToUpdate;\r\n handleToUpdate(resp.data);\r\n this.setState({ loading: false, success : \"Request submitted successfully\" })\r\n }\r\n else {\r\n this.setState({ loading: false, error: \"This list already has a pending ownership request\" })\r\n }\r\n })\r\n }\r\n else {\r\n errors[\"ConfirmYesCO\"] = \"Please enter yes to change owner\";\r\n this.setState({ errors: errors, submitted: true });\r\n }\r\n\r\n }\r\n else {\r\n errors[\"OwnerError\"] = \"Please select user\";\r\n this.setState({ errors: errors });\r\n }\r\n }\r\n\r\n handleSwitchChange = (checked) => {\r\n this.setState({ showCompleted: checked });\r\n }\r\n render() {\r\n\r\n const index = this.props.index;\r\n const list = this.props.list;\r\n const items = this.props.items;\r\n\r\n let loading = this.state.loading;\r\n let error = this.state.error;\r\n let success = this.state.success;\r\n let showCompleted = this.state.showCompleted;\r\n return (\r\n
\r\n \r\n {(provided, snapshot) => (\r\n \r\n
\r\n \r\n {this.state.listId !== list.listId ?\r\n
\r\n

this.toggleTitle(list)}>{this.state.ListName}\r\n\r\n

\r\n \r\n
\r\n \r\n \r\n \r\n {list.shareCount > 0 ? \"users\" : \"\"}\r\n \r\n \r\n
\r\n this.toggleModel()} className=\"dropdown-item\">Share\r\n {this.state.currentUser.userId === list.userId ? (\r\n this.toggleChangeOwnerModel()} className=\"dropdown-item\">Change Owner\r\n ) : null}\r\n this.toggleTitle(list)} className=\"dropdown-item\">Rename\r\n {this.state.currentUser.userId === list.userId ? (\r\n this.toggleDeleteModel(list)} className=\"dropdown-item\">Delete\r\n ) : null}\r\n\r\n
\r\n
\r\n
:\r\n
this.handleBlur()}\r\n onKeyDown={(e) => {\r\n if (e.keyCode === 13) {\r\n e.preventDefault();\r\n this.handleBlur();\r\n }\r\n }}\r\n onChange={this.handleChange.bind(this)} className=\"form-control form-control-sm\" autoFocus value={this.state.ListName} />
\r\n }\r\n\r\n \r\n
\r\n a.isCompleted === true).slice(0, 10) : items.filter((a) => a.isCompleted !== true)}\r\n showCompleted={showCompleted}\r\n internalScroll={true}\r\n isCombineEnabled={Boolean(this.props.isCombineEnabled)}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n this.setState({ modelChangeOwner: !this.state.modelChangeOwner })} isOpen={this.state.modelChangeOwner} >\r\n Change Owner\r\n {this.state.changeOwnerUsers &&\r\n \r\n {success !== \"\" &&
\r\n {success}\r\n
}\r\n {error !== \"\" &&
\r\n {error}\r\n
}\r\n \r\n \r\n {this.state.errors[\"ConfirmYesCO\"]}\r\n
\r\n }\r\n \r\n }\r\n \r\n {loading ?\r\n :\r\n \r\n }\r\n {' '}\r\n \r\n \r\n \r\n
\r\n
\r\n this.setState({ model: !this.state.model })} isOpen={this.state.model} >\r\n {list.name}\r\n {this.state.users &&\r\n \r\n \r\n \r\n {this.state.errors[\"Name\"]}\r\n
\r\n
\r\n \r\n \r\n {this.state.errors[\"Description\"]}\r\n
\r\n \r\n \r\n {loading ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
\r\n this.setState({ modelDeleteList: !this.state.modelDeleteList })} isOpen={this.state.modelDeleteList} >\r\n Delete list\r\n \r\n
\r\n \r\n \r\n {this.state.errors[\"ConfirmYes\"]}\r\n
\r\n
\r\n \r\n {loading ?\r\n :\r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport styled from \"@emotion/styled\";\r\n\r\nimport { colors } from \"@atlaskit/theme\";\r\nimport reorder, { reorderQuoteMap } from \"./reorder\";\r\nimport { DragDropContext, Droppable } from \"react-beautiful-dnd\";\r\nimport Column from \"./column\";\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport { userService } from \"../../Shared/Services/userService\";\r\n\r\n//const ParentContainer = styled.div`\r\n// /* height: ${({ height }) => height}; */\r\n// /* overflow-x: hidden;\r\n// overflow-y: auto; */\r\n//`;\r\n\r\nconst Container = styled.div`\r\n/* background-color: ${colors.B100};*/\r\n /* min-height: 100vh; */\r\n /* like display:flex but will allow bleeding over the window width */\r\n /* min-width: 100vw; */\r\n display: inline-flex;\r\n/*margin-top: 65px;*/\r\nwidth:100%;\r\n/*overflow-x:auto;*/\r\n`;\r\nclass Dashboard extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n userLists: [],\r\n modelAddList: false,\r\n fields: {\r\n Name: ''\r\n },\r\n errors: {},\r\n loading: false,\r\n error: \"\"\r\n };\r\n //var handleToUpdate = this.handleToUpdate.bind(this);\r\n }\r\n componentDidMount() {\r\n this.getuserList();\r\n setInterval(() => {\r\n this.getuserList();\r\n }, 1800000);\r\n }\r\n\r\n getuserList = () => {\r\n userService.getUserLists().then((resp) => {\r\n if (resp.status === true)\r\n this.setState({ userLists: resp.data })\r\n });\r\n }\r\n\r\n toggleAddListModel = () => {\r\n this.setState({ modelAddList: !this.state.modelAddList });\r\n };\r\n\r\n handleToUpdate(userLists) {\r\n this.setState({ userLists: userLists })\r\n }\r\n\r\n ReorderList() {\r\n userService.reorderUserList(this.state.userLists)\r\n }\r\n\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n if (!fields[\"Name\"]) {\r\n formIsValid = false;\r\n errors[\"Name\"] = \"Please provide list name\";\r\n }\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n\r\n handleItemChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n\r\n addListSubmit() {\r\n let fields = this.state.fields;\r\n if (this.handleValidation()) {\r\n this.setState({ loading: true });\r\n userService.addNewList({ Name: fields[\"Name\"] }).then((resp) => {\r\n //console.log(resp)\r\n if (resp.status === false) {\r\n this.setState({ error: resp.message });\r\n }\r\n else {\r\n this.setState({\r\n userLists: resp.data,\r\n fields: {\r\n Name: ''\r\n },\r\n modelAddList: false\r\n })\r\n }\r\n this.setState({ loading: false });\r\n });\r\n } else {\r\n }\r\n }\r\n\r\n onDragEnd = result => {\r\n //if (result.combine) {\r\n // if (result.type === \"COLUMN\") {\r\n // const shallow = [...this.state.userLists];\r\n // shallow.splice(result.source.index, 1);\r\n // this.setState({ userLists: shallow });\r\n // return;\r\n // }\r\n\r\n // const column = this.state.columns[result.source.droppableId];\r\n // const withQuoteRemoved = [...column];\r\n // withQuoteRemoved.splice(result.source.index, 1);\r\n // const columns = {\r\n // ...this.state.columns,\r\n // [result.source.droppableId]: withQuoteRemoved\r\n // };\r\n // this.setState({ columns });\r\n // return;\r\n //}\r\n\r\n\r\n // dropped nowhere\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const source = result.source;\r\n const destination = result.destination;\r\n\r\n // did not move anywhere - can bail early\r\n if (\r\n source.droppableId === destination.droppableId &&\r\n source.index === destination.index\r\n ) {\r\n return;\r\n }\r\n\r\n // reordering column\r\n if (result.type === \"COLUMN\") {\r\n const userLists = reorder(\r\n this.state.userLists,\r\n source.index,\r\n destination.index\r\n );\r\n\r\n this.setState({\r\n userLists\r\n }, () => {\r\n this.ReorderList();\r\n });\r\n\r\n\r\n return;\r\n }\r\n const data = reorderQuoteMap({\r\n itemsMap: this.state.userLists,\r\n source,\r\n destination,\r\n draggableId: result.draggableId\r\n });\r\n\r\n this.setState({\r\n userLists: data\r\n });\r\n };\r\n render() {\r\n let lists = this.state.userLists;\r\n let { loading, error } = this.state;\r\n const board = (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {provided => (\r\n \r\n {lists.length > 0 && lists.map((item, index) => (\r\n \r\n\r\n ))}\r\n {provided.placeholder}\r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n\r\n return (\r\n \r\n \r\n {\r\n lists.length === 0 ?
\r\n \r\n
: board\r\n }\r\n
\r\n
\r\n this.setState({ modelAddList: !this.state.modelAddList })} isOpen={this.state.modelAddList} >\r\n Add new list\r\n \r\n {error !== \"\" &&
\r\n {error}\r\n
}\r\n
\r\n \r\n \r\n {this.state.errors[\"Name\"]}\r\n
\r\n
\r\n \r\n {loading ?\r\n :\r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default Dashboard;","import React, { Component } from 'react';\r\nimport { Link } from 'react-router-dom'\r\nimport { userService } from '../../Shared/Services';\r\nclass Users extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n allUsers: []\r\n };\r\n }\r\n componentDidMount() {\r\n userService.getAllUsers().then((resp) => {\r\n if (resp.status === true)\r\n this.setState({ allUsers: resp.data })\r\n });\r\n }\r\n\r\n render() {\r\n let users = this.state.allUsers;\r\n return (\r\n
\r\n Create new user\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n users.length === 0 ?

Loading...

:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {users.map((item) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
First nameLast nameEmail
{item.firstName}{item.lastName}{item.email}
\r\n }\r\n\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default Users;","import React, { Component } from 'react';\r\nimport {userService} from '../../Shared/Services';\r\n//import {Link} from 'react-router-dom'\r\nclass AddUser extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n fields: {\r\n FirstName:'',\r\n LastName:'',\r\n Email:'',\r\n Password: '',\r\n CreateLists: null\r\n },\r\n errors: {},\r\n loading: false,\r\n error: \"\",\r\n success:\"\"\r\n };\r\n }\r\n handleValidation() {\r\n let fields = this.state.fields;\r\n let errors = {};\r\n let formIsValid = true;\r\n\r\n //Email\r\n if (!fields[\"FirstName\"]) {\r\n formIsValid = false;\r\n errors[\"FirstName\"] = \"Please provide your first name\";\r\n }\r\n\r\n if (!fields[\"LastName\"]) {\r\n formIsValid = false;\r\n errors[\"LastName\"] = \"Please provide new last name\";\r\n }\r\n if (!fields[\"Email\"]) {\r\n formIsValid = false;\r\n errors[\"Email\"] = \"Please provide email address\";\r\n }\r\n\r\n else if (typeof fields[\"Email\"] !== \"undefined\") {\r\n let lastAtPos = fields[\"Email\"].lastIndexOf(\"@\");\r\n let lastDotPos = fields[\"Email\"].lastIndexOf(\".\");\r\n\r\n if (\r\n !(\r\n lastAtPos < lastDotPos &&\r\n lastAtPos > 0 &&\r\n fields[\"Email\"].indexOf(\"@@\") === -1 &&\r\n lastDotPos > 2 &&\r\n fields[\"Email\"].length - lastDotPos > 2\r\n )\r\n ) {\r\n formIsValid = false;\r\n errors[\"Email\"] = \"Email address is not valid\";\r\n }\r\n }\r\n\r\n if(!fields[\"Password\"]){\r\n formIsValid = false;\r\n errors[\"Password\"] = \"Please provide password\";\r\n }\r\n\r\n this.setState({ errors: errors });\r\n return formIsValid;\r\n }\r\n\r\n addUserSubmit(e) {\r\n this.setState({ success: \"\",error:\"\" });\r\n e.preventDefault();\r\n if (this.handleValidation()) {\r\n this.setState({ loading: true });\r\n userService.addUser(this.state.fields).then((resp) => {\r\n\r\n if (resp.status === false) {\r\n this.setState({ error: resp.message });\r\n }\r\n else{\r\n this.setState({fields: {\r\n FirstName:'',\r\n LastName:'',\r\n Email:'',\r\n Password: '',\r\n CreateLists: null\r\n }\r\n });\r\n this.setState({ success: resp.message });\r\n }\r\n this.setState({ loading: false });\r\n });\r\n } else {\r\n }\r\n }\r\n handleChange(field, e) {\r\n let fields = this.state.fields;\r\n fields[field] = e.target.value;\r\n this.setState({ fields });\r\n }\r\n render() {\r\n let loading = this.state.loading;\r\n let error = this.state.error;\r\n let success = this.state.success;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Create new user

\r\n {success !== \"\" &&
\r\n {success}\r\n
}\r\n {error !== \"\" &&
\r\n {error}\r\n
}\r\n {/*

Add new User!

*/}\r\n
\r\n
\r\n \r\n \r\n {this.state.errors[\"FirstName\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"LastName\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"Email\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n {this.state.errors[\"Password\"]}\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n

\r\n {loading ?\r\n :\r\n \r\n }\r\n \r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default AddUser;","import React, { Component } from 'react';\r\nimport { userService, authService } from '../../Shared/Services';\r\nimport Moment from 'moment';\r\nclass Requests extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n allRequests: [],\r\n loading: false,\r\n pendingRequestCount: 0\r\n };\r\n }\r\n componentDidMount() {\r\n authService.pendingRequests.subscribe(x => {\r\n this.setState({ pendingRequestCount: x })\r\n this.getAllRequests();\r\n });\r\n }\r\n\r\n getAllRequests = () => {\r\n this.setState({ loading: true })\r\n userService.getOwnerRequests().then((resp) => {\r\n if (resp.status === true)\r\n this.setState({ allRequests: resp.data, loading: false })\r\n });\r\n }\r\n\r\n acceptOwnerRequest = (requestId) => {\r\n if (window.confirm(\"Are you sure you want to accept this ownership request?\")) {\r\n userService.respOwnerRequest({ RequestId: requestId, IsAccepted: true }).then((resp) => {\r\n if (resp.status === true)\r\n this.setState({ allRequests: resp.data, loading: false })\r\n authService.setPendingRequest(this.state.pendingRequestCount - 1);\r\n });\r\n }\r\n }\r\n rejectOwnerRequest = (requestId) => {\r\n if (window.confirm(\"Are you sure you want to reject this ownership request?\")) {\r\n userService.respOwnerRequest({ RequestId: requestId, IsAccepted: false }).then((resp) => {\r\n if (resp.status === true) {\r\n this.setState({ allRequests: resp.data, loading: false })\r\n authService.setPendingRequest(this.state.pendingRequestCount - 1);\r\n }\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let requests = this.state.allRequests;\r\n let loading = this.state.loading;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {\r\n loading ?

Loading...

:\r\n requests.length === 0 ?

No requests available

:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {requests.map((item) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
By UserListCreated OnStatusAction
{item.byUser}{item.listName}{Moment(item.createdOn).format('MM/DD/YYYY')}{item.status}{item.status === \"Pending\" ? <>\r\n \r\n \r\n : item.status}
\r\n }\r\n\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default Requests;","import React, { Component } from 'react';\r\nimport { Router, Route, Switch, Redirect } from \"react-router-dom\";\r\nimport { Layout } from './components/Layout';\r\nimport jwt_decode from \"jwt-decode\";\r\n\r\nimport Login from \"./Pages/Auth/login\";\r\nimport ResetPassword from \"./Pages/Auth/resetpassword\";\r\nimport ResetPasswordUser from \"./Pages/Auth/resetpassworduser\";\r\nimport ForgotPassword from \"./Pages/Auth/forgotpassword\";\r\nimport Dashboard from \"./Pages/Dashboard/dashboard\";\r\nimport Users from \"./Pages/User/users\";\r\nimport AddUser from \"./Pages/User/adduser\";\r\nimport Requests from \"./Pages/Requests/requests\";\r\n\r\nimport { authService } from './Shared/Services';\r\nimport { history } from './Shared/Helpers';\r\nimport './custom.css'\r\n\r\nexport default class App extends Component {\r\n static displayName = App.name;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentUser: null,\r\n loading: true,\r\n isExpired: false\r\n };\r\n this.logout = this.logout.bind(this);\r\n }\r\n logout() {\r\n //this.setState({ isExpired: false }, () => {\r\n authService.logout();\r\n history.push('/login');\r\n //});\r\n\r\n }\r\n\r\n componentDidMount() {\r\n var decoded = null;\r\n authService.currentUser.subscribe(x => this.setState({ currentUser: x, loading: false }, () => {\r\n if (this.state.currentUser !== null) {\r\n decoded = jwt_decode(this.state.currentUser.token);\r\n if (Date.now() / 1000 >= decoded.exp) {\r\n //this.setState({ isExpired: true });\r\n this.logout();\r\n }\r\n if (decoded !== null) {\r\n setInterval(() => {\r\n if (Date.now() / 1000 >= decoded.exp && window.location.pathname !== '/login') {\r\n //this.setState({ isExpired: true });\r\n this.logout();\r\n }\r\n }, 10000);\r\n }\r\n }\r\n else {\r\n //this.setState({ isExpired: true });\r\n //this.logout();\r\n //authService.logout();\r\n history.push('/login');\r\n }\r\n }));\r\n\r\n }\r\n\r\n\r\n render() {\r\n let { currentUser, loading, isExpired } = this.state;\r\n return (\r\n \r\n \r\n {/*{isExpired &&*/}\r\n {/* // {*/}\r\n {/* // return */}\r\n {/* //}} />*/}\r\n {/* //
*/}\r\n {/* //
*/}\r\n {/* //

Your session has been expired, please login.

*/}\r\n {/* // */}\r\n {/* //
*/}\r\n {/* //
*/}\r\n {/*}*/}\r\n {!loading &&\r\n \r\n {currentUser !== null &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*{isExpired && < Route path=\"*\" render={() => {*/}\r\n {/* return */}\r\n {/*}} />*/}\r\n {/*}*/}\r\n \r\n }\r\n {currentUser === null &&\r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n {/* {*/}\r\n {/* return */}\r\n {/*}} />*/}\r\n \r\n }\r\n \r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport 'bootstrap/dist/js/bootstrap.js';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAAZUlEQVRIiWNgGCmggYGB4T8a7iBGIyMWsf8UOgbFTCYKDSMbwIKBYvU09wGxFqC7kGgfDhofjFowasGoBRQAFiLVoRfr2Ip5rGDAgugplEavxXBhZD1EAT8GBoYnJFjwBKpnGAIAUcAmPA1WYN0AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAABlElEQVRYhe2UPy+EQRDGl1yBRONPhU+A6nwJGgoKKiE68RWu1UokEq47hVxEcncaHKK6RiGCUChES7i7iKM4nsk7b7JZO2vdSUSyT/Ir3p2ZnWd3Nq9SQUFBQXbNgUtQBkUwbMTpexdUmQIYMnImwSOogxpI+zafBx8Gz2BAa1615FQ0E0lubOZ4mbiyFBIpjheEOJHnnBMhXvMxUBaKY/e20+u3QLoR4nUfA0WheMHDQJlzNoX4g48BmvGTUUhXmuC4awQ5zulQX2+STj/hY4DUp6KZp/nkCS1GD61iaU5rg1oemcioaBzHKnqYvyYykeemRM5o/r/VDxbBKtgCK2AatP9gjx6uPwN34Bxk1TdjoDkvgzdlf2DrWm4nGAFjTJLXYl0LexAl0GYzkBEKXsEMaFHRKz4C75Y8WjsE45y75jBxazafFRLpzzUKesGBY0OTfa5JOXI2dANZIWkJdCv59+ziAnSBHSF+rxug2Z8a7IFWsN1A8xg6GL0t+gO+GJTMMUhqtHlM0/pzA1NNEhQU5NQnBlsYrRof3k4AAAAASUVORK5CYII=\""],"sourceRoot":""}