-
Notifications
You must be signed in to change notification settings - Fork 2
/
.eslintcache
1 lines (1 loc) · 104 KB
/
.eslintcache
1
[{"/Users/gregk/Documents/GitHub/swe-project-frontend/src/index.js":"1","/Users/gregk/Documents/GitHub/swe-project-frontend/src/theme.js":"2","/Users/gregk/Documents/GitHub/swe-project-frontend/src/App.js":"3","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/Alerts.js":"4","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/alerts/alertState.js":"5","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/menuItems/menuItemsState.js":"6","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/auth/authState.js":"7","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/chef/chefState.js":"8","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/delivery/deliveryState.js":"9","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/customer/customerState.js":"10","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/manager/managerState.js":"11","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/index.js":"12","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Auth/index.js":"13","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/index.js":"14","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/index.js":"15","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/index.js":"16","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/index.js":"17","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/types.js":"18","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/customer/customerReducer.js":"19","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/customer/customerContext.js":"20","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/manager/managerReducer.js":"21","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/manager/managerContext.js":"22","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/Deliveries.js":"23","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/DelivDiscussion.js":"24","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/DelivDashboard.js":"25","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/DelivListItems.js":"26","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/ChefDiscussion.js":"27","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/Recipes.js":"28","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/Orders.js":"29","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/ChefDashboard.js":"30","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/delivery/deliveryContext.js":"31","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/auth/authContext.js":"32","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/chef/chefContext.js":"33","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/index.js":"34","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/CreateRecipe.js":"35","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/CartCard.js":"36","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ReceiptCard.js":"37","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ReviewCard2.js":"38","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/TaskCard.js":"39","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ApproveCard.js":"40","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ReviewCard.js":"41","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/DishCard.js":"42","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/DashboardNav.js":"43","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/Nav.js":"44","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/ChefListItems.js":"45","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/ManagDiscussion.js":"46","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/CustomerList.js":"47","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/EmployeeList.js":"48","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/ManagDashboard.js":"49","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/ManagListItems.js":"50","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustDiscussion.js":"51","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustReviews.js":"52","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/Cart.js":"53","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustDashboard.js":"54","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Auth/SignIn.js":"55","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/DashboardLayout.js":"56","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustListItems.js":"57","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Menus.js":"58","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/chef/chefReducer.js":"59","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/delivery/deliveryReducer.js":"60","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Home.js":"61","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/menuItems/menuItemsReducer.js":"62","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/auth/authReducer.js":"63","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/menuItems/menuItemsContext.js":"64","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/alerts/alertReducer.js":"65","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/alerts/alertContext.js":"66","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Auth/SignUp.js":"67","/Users/gregk/Documents/GitHub/swe-project-frontend/src/utils/setAuthToken.js":"68","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/custToast.js":"69"},{"size":338,"mtime":1607214972356,"results":"70","hashOfConfig":"71"},{"size":571,"mtime":1607214972361,"results":"72","hashOfConfig":"71"},{"size":4462,"mtime":1607675494995,"results":"73","hashOfConfig":"71"},{"size":678,"mtime":1607452652724,"results":"74","hashOfConfig":"71"},{"size":782,"mtime":1607452652732,"results":"75","hashOfConfig":"71"},{"size":2435,"mtime":1607675372737,"results":"76","hashOfConfig":"71"},{"size":4492,"mtime":1607709005155,"results":"77","hashOfConfig":"71"},{"size":4297,"mtime":1607702502802,"results":"78","hashOfConfig":"71"},{"size":3489,"mtime":1607708707202,"results":"79","hashOfConfig":"71"},{"size":5594,"mtime":1607709659457,"results":"80","hashOfConfig":"71"},{"size":9846,"mtime":1607671889258,"results":"81","hashOfConfig":"71"},{"size":144,"mtime":1607214972361,"results":"82","hashOfConfig":"71"},{"size":87,"mtime":1607214972357,"results":"83","hashOfConfig":"71"},{"size":279,"mtime":1607676123971,"results":"84","hashOfConfig":"71"},{"size":315,"mtime":1607470140941,"results":"85","hashOfConfig":"71"},{"size":276,"mtime":1607671889265,"results":"86","hashOfConfig":"71"},{"size":252,"mtime":1607470140935,"results":"87","hashOfConfig":"71"},{"size":1866,"mtime":1607709608603,"results":"88","hashOfConfig":"71"},{"size":1584,"mtime":1607709679500,"results":"89","hashOfConfig":"71"},{"size":114,"mtime":1607675332406,"results":"90","hashOfConfig":"71"},{"size":1434,"mtime":1607671889258,"results":"91","hashOfConfig":"71"},{"size":112,"mtime":1607671889257,"results":"92","hashOfConfig":"71"},{"size":1367,"mtime":1607671889275,"results":"93","hashOfConfig":"71"},{"size":406,"mtime":1607470140931,"results":"94","hashOfConfig":"71"},{"size":6149,"mtime":1607706983107,"results":"95","hashOfConfig":"71"},{"size":1595,"mtime":1607470140932,"results":"96","hashOfConfig":"71"},{"size":405,"mtime":1607470140924,"results":"97","hashOfConfig":"71"},{"size":1379,"mtime":1607673835567,"results":"98","hashOfConfig":"71"},{"size":1335,"mtime":1607671889262,"results":"99","hashOfConfig":"71"},{"size":1615,"mtime":1607704523542,"results":"100","hashOfConfig":"71"},{"size":114,"mtime":1607671889255,"results":"101","hashOfConfig":"71"},{"size":106,"mtime":1607452652733,"results":"102","hashOfConfig":"71"},{"size":106,"mtime":1607671889250,"results":"103","hashOfConfig":"71"},{"size":507,"mtime":1607676123959,"results":"104","hashOfConfig":"71"},{"size":4418,"mtime":1607676123969,"results":"105","hashOfConfig":"71"},{"size":1112,"mtime":1607489004382,"results":"106","hashOfConfig":"71"},{"size":857,"mtime":1607470140914,"results":"107","hashOfConfig":"71"},{"size":2965,"mtime":1607677494010,"results":"108","hashOfConfig":"71"},{"size":3059,"mtime":1607671889244,"results":"109","hashOfConfig":"71"},{"size":2879,"mtime":1607671889238,"results":"110","hashOfConfig":"71"},{"size":2629,"mtime":1607671889240,"results":"111","hashOfConfig":"71"},{"size":2696,"mtime":1607709005153,"results":"112","hashOfConfig":"71"},{"size":2993,"mtime":1607452652725,"results":"113","hashOfConfig":"71"},{"size":2108,"mtime":1607452652726,"results":"114","hashOfConfig":"71"},{"size":1896,"mtime":1607470140925,"results":"115","hashOfConfig":"71"},{"size":406,"mtime":1607470140940,"results":"116","hashOfConfig":"71"},{"size":1173,"mtime":1607671889275,"results":"117","hashOfConfig":"71"},{"size":1176,"mtime":1607671889276,"results":"118","hashOfConfig":"71"},{"size":1417,"mtime":1607671889277,"results":"119","hashOfConfig":"71"},{"size":1928,"mtime":1607470140940,"results":"120","hashOfConfig":"71"},{"size":405,"mtime":1607470140929,"results":"121","hashOfConfig":"71"},{"size":6617,"mtime":1607711282772,"results":"122","hashOfConfig":"71"},{"size":5358,"mtime":1607709005156,"results":"123","hashOfConfig":"71"},{"size":4268,"mtime":1607709005156,"results":"124","hashOfConfig":"71"},{"size":7032,"mtime":1607452652740,"results":"125","hashOfConfig":"71"},{"size":3534,"mtime":1607709943579,"results":"126","hashOfConfig":"71"},{"size":1697,"mtime":1607709943576,"results":"127","hashOfConfig":"71"},{"size":3142,"mtime":1607675372741,"results":"128","hashOfConfig":"71"},{"size":954,"mtime":1607676123960,"results":"129","hashOfConfig":"71"},{"size":876,"mtime":1607708704756,"results":"130","hashOfConfig":"71"},{"size":2434,"mtime":1607214972358,"results":"131","hashOfConfig":"71"},{"size":1059,"mtime":1607675372736,"results":"132","hashOfConfig":"71"},{"size":2194,"mtime":1607709005154,"results":"133","hashOfConfig":"71"},{"size":116,"mtime":1607470140920,"results":"134","hashOfConfig":"71"},{"size":308,"mtime":1607452652731,"results":"135","hashOfConfig":"71"},{"size":108,"mtime":1607452652731,"results":"136","hashOfConfig":"71"},{"size":10627,"mtime":1607571550862,"results":"137","hashOfConfig":"71"},{"size":206,"mtime":1607452652746,"results":"138","hashOfConfig":"71"},{"size":851,"mtime":1607709943573,"results":"139","hashOfConfig":"71"},{"filePath":"140","messages":"141","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},"1s85g1p",{"filePath":"143","messages":"144","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"145","messages":"146","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"147","messages":"148","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"149","messages":"150","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"151","messages":"152","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"153","messages":"154","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"155","usedDeprecatedRules":"142"},{"filePath":"156","messages":"157","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"158","usedDeprecatedRules":"142"},{"filePath":"159","messages":"160","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"161","usedDeprecatedRules":"142"},{"filePath":"162","messages":"163","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"164","usedDeprecatedRules":"142"},{"filePath":"165","messages":"166","errorCount":0,"warningCount":10,"fixableErrorCount":0,"fixableWarningCount":0,"source":"167","usedDeprecatedRules":"142"},{"filePath":"168","messages":"169","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"170","messages":"171","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"172","messages":"173","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"174","messages":"175","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"176","messages":"177","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"178","messages":"179","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"180","messages":"181","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"182","messages":"183","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"184","usedDeprecatedRules":"142"},{"filePath":"185","messages":"186","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"187","messages":"188","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"189","usedDeprecatedRules":"142"},{"filePath":"190","messages":"191","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"192","messages":"193","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"194","usedDeprecatedRules":"142"},{"filePath":"195","messages":"196","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"197","messages":"198","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"199","usedDeprecatedRules":"142"},{"filePath":"200","messages":"201","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"202","messages":"203","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"204","messages":"205","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"206","usedDeprecatedRules":"142"},{"filePath":"207","messages":"208","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"209","usedDeprecatedRules":"142"},{"filePath":"210","messages":"211","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"212","usedDeprecatedRules":"142"},{"filePath":"213","messages":"214","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"215","messages":"216","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"217","messages":"218","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"219","messages":"220","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"221","messages":"222","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"223","messages":"224","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"225","messages":"226","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"227","usedDeprecatedRules":"142"},{"filePath":"228","messages":"229","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"230","usedDeprecatedRules":"142"},{"filePath":"231","messages":"232","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"233","messages":"234","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"235","usedDeprecatedRules":"142"},{"filePath":"236","messages":"237","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"238","usedDeprecatedRules":"142"},{"filePath":"239","messages":"240","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"241","messages":"242","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"243","messages":"244","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"245","messages":"246","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"247","messages":"248","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"249","messages":"250","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"251","usedDeprecatedRules":"142"},{"filePath":"252","messages":"253","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"254","usedDeprecatedRules":"142"},{"filePath":"255","messages":"256","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"257","usedDeprecatedRules":"142"},{"filePath":"258","messages":"259","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"260","messages":"261","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"262","messages":"263","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"264","messages":"265","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"266","messages":"267","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"268","usedDeprecatedRules":"142"},{"filePath":"269","messages":"270","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"271","messages":"272","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"273","usedDeprecatedRules":"142"},{"filePath":"274","messages":"275","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"276","usedDeprecatedRules":"142"},{"filePath":"277","messages":"278","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"279","messages":"280","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"281","usedDeprecatedRules":"142"},{"filePath":"282","messages":"283","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"284","usedDeprecatedRules":"142"},{"filePath":"285","messages":"286","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"287","messages":"288","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"289","usedDeprecatedRules":"142"},{"filePath":"290","messages":"291","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"292","usedDeprecatedRules":"142"},{"filePath":"293","messages":"294","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"295","messages":"296","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"297","usedDeprecatedRules":"142"},{"filePath":"298","messages":"299","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"300","messages":"301","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"142"},{"filePath":"302","messages":"303","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"304","usedDeprecatedRules":"142"},{"filePath":"305","messages":"306","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/gregk/Documents/GitHub/swe-project-frontend/src/index.js",[],["307","308"],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/theme.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/App.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/Alerts.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/alerts/alertState.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/menuItems/menuItemsState.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/auth/authState.js",["309","310"],"import React, { useReducer } from 'react';\nimport * as axios from 'axios';\nimport AuthContext from './authContext';\nimport authReducer from './authReducer';\nimport setAuthToken from '../../utils/setAuthToken';\nimport {\n SIGNIN_SUCCESS,\n SIGNIN_FAIL,\n SIGNUP_SUCCESS,\n SIGNUP_FAIL,\n LOAD_USER,\n SIGNOUT,\n SIGNOUT_FAIL,\n AUTH_ERROR,\n CLEAR_ERRORS,\n CLEAR_MSG,\n SERVER_ERROR,\n} from '../types';\n\nconst AuthState = (props) => {\n const initialState = {\n token: localStorage.getItem('token'),\n isAuthenticated: null,\n loading: true,\n user: null,\n typeOfUser: null,\n msg: null,\n error: null,\n };\n\n const [state, dispatch] = useReducer(authReducer, initialState);\n\n // load user\n const loadUser = async () => {\n setAuthToken(localStorage.token);\n\n try {\n const res = await axios.get('http://localhost:5000/api/auth/signin');\n\n dispatch({\n type: LOAD_USER,\n payload: res.data,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: AUTH_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // Sign In User\n const signin = async (email, password, userType) => {\n const config = {\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n try {\n const res = await axios.post(\n `http://localhost:5000/api/auth/signin?role=${userType}`,\n {\n email,\n password,\n },\n config\n );\n \n state.typeOfUser = userType;\n\n dispatch({\n type: SIGNIN_SUCCESS,\n payload: res.data,\n });\n\n loadUser();\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: SIGNIN_FAIL,\n payload: errMsg,\n });\n }\n };\n\n // signup user\n const signup = async (formData) => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n const {\n firstName,\n lastName,\n email,\n password,\n userType,\n address,\n } = formData;\n\n try {\n const res = await axios.post(\n `http://localhost:5000/api/auth/signup?role=${userType}`,\n {\n firstName,\n lastName,\n email,\n password,\n type: userType,\n address,\n },\n config\n );\n\n dispatch({\n type: SIGNUP_SUCCESS,\n payload: res.data.msg,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: SIGNUP_FAIL,\n payload: errMsg,\n });\n }\n };\n\n // signout user\n const signout = () => dispatch({ type: SIGNOUT });\n\n // clear errors\n const clearErrors = () => dispatch({ type: CLEAR_ERRORS });\n\n // clear msg\n const clearMsg = () => dispatch({ type: CLEAR_MSG });\n\n return (\n <AuthContext.Provider\n value={{\n token: state.token,\n isAuthenticated: state.isAuthenticated,\n loading: state.loading,\n user: state.user,\n typeOfUser: state.typeOfUser,\n error: state.error,\n msg: state.msg,\n signin,\n signup,\n signout,\n loadUser,\n clearErrors,\n clearMsg,\n }}\n >\n {props.children}\n </AuthContext.Provider>\n );\n};\n\nexport default AuthState;\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/chef/chefState.js",["311"],"import React, { useReducer } from 'react';\nimport axios from 'axios';\nimport ChefContext from './chefContext';\nimport ChefReducer from './chefReducer';\nimport { GET_RECIPES, CREATE_RECIPE, GET_ORDERS, COOK_SUCCESS, GET_REVIEWS, DISPUTE_REVIEW } from '../types';\n\nconst ChefState = (props) => {\n const initialState = {\n recipes: [],\n reviews: [],\n orders: [],\n error: null,\n };\n\n const [state, dispatch] = useReducer(ChefReducer, initialState);\n\n const getRecipes = async (chefID) => {\n try {\n console.log(chefID);\n const res = await axios.get(\n `http://localhost:5000/api/menuItems?chefID=${chefID}`\n );\n\n console.log(res.data);\n dispatch({\n type: GET_RECIPES,\n payload: res.data,\n });\n } catch (error) {\n console.log(error.response.data.msg);\n }\n };\n\n const createRecipe = async (formData) => {\n try {\n const config = {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n };\n\n const data = new FormData();\n data.append('image', formData.image);\n data.append('title', formData.title);\n data.append('chefID', formData.chefID);\n data.append('chefName', formData.chefName);\n data.append('description', formData.description);\n data.append('ingredients', formData.ingredients);\n data.append('dietaryRestrictions', formData.dietaryRestrictions);\n data.append('price', formData.price);\n\n console.log('DATA:', data);\n\n const res = await axios.post(\n `http://localhost:5000/api/menuItems`,\n data,\n config\n );\n\n console.log(res.data);\n\n dispatch({\n type: CREATE_RECIPE,\n payload: res.data,\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n // get reviews\n const getReviews = async (chefID) => {\n try {\n\n const res = await axios.get(\n `http://localhost:5000/api/reviews?reviewTo=${chefID}` \n );\n\n dispatch({\n type: GET_REVIEWS,\n payload: res.data,\n });\n } catch (error){\n console.log(error);\n }\n };\n\n const chefDisputeReview = async (reviewID) => {\n try{\n const review = await axios.patch(`http://localhost:5000/api/reviews/needToHandle/${reviewID}`);\n \n dispatch({\n type: DISPUTE_REVIEW,\n payload: {\n reviews: review.data,\n },\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n const getOrders = async () => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n const type = 'chef';\n\n try {\n const res = await axios.get(\n `http://localhost:5000/api/orders?type=${type}`,\n config\n );\n \n for (const order of res.data) {\n const menuItemID = order.menuItem;\n const menuItemDetails = await axios.get(`http://localhost:5000/api/menuItems/${menuItemID}`);\n\n order.title = menuItemDetails.data.title;\n order.image = menuItemDetails.data.image;\n order.description = menuItemDetails.data.description;\n order.restrictions = menuItemDetails.data.dietaryRestrictions;\n }\n\n dispatch({\n type: GET_ORDERS,\n payload: res.data,\n });\n } catch (error) {\n console.log(error.response.data.msg);\n }\n };\n\n const cookOrder = async (orderData) => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n const orderID = orderData.orderID;\n const chefID = orderData.chefID;\n console.log(orderID);\n console.log(chefID);\n try {\n const res = await axios.patch(\n `http://localhost:5000/api/orders/cook/${orderID}`,\n {\n chefID,\n },\n config\n );\n\n dispatch({\n type: COOK_SUCCESS,\n payload: orderID,\n });\n } catch (error) {\n console.log(error.response.data.msg);\n }\n };\n\n return (\n <ChefContext.Provider\n value={{\n recipes: state.recipes,\n reviews: state.reviews,\n orders: state.orders,\n error: state.error,\n getRecipes,\n createRecipe,\n getReviews,\n chefDisputeReview,\n getOrders,\n cookOrder,\n }}\n >\n {props.children}\n </ChefContext.Provider>\n );\n\n};\n\nexport default ChefState;\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/delivery/deliveryState.js",["312","313","314"],"import React, { useReducer } from 'react';\nimport axios from 'axios';\nimport DeliveryContext from './deliveryContext';\nimport DeliveryReducer from './deliveryReducer';\nimport { GET_ORDERS, DELIVER_SUCCESS, GET_REVIEWS, DISPUTE_REVIEW, POST_REVIEW } from '../types';\n\nconst DeliveryState = (props) => {\n const initialState = {\n orders: [],\n reviews: [],\n error: null,\n };\n\n const [state, dispatch] = useReducer(DeliveryReducer, initialState);\n\n const getOrders = async () => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n const type = 'delivery';\n\n try {\n const res = await axios.get(\n `http://localhost:5000/api/orders?type=${type}`,\n config\n );\n \n for (const order of res.data) {\n const menuItemID = order.menuItem;\n const menuItemDetails = await axios.get(`http://localhost:5000/api/menuItems/${menuItemID}`);\n\n order.title = menuItemDetails.data.title;\n order.image = menuItemDetails.data.image;\n order.description = menuItemDetails.data.description;\n order.restrictions = menuItemDetails.data.dietaryRestrictions;\n }\n\n dispatch({\n type: GET_ORDERS,\n payload: res.data,\n });\n } catch (error) {\n console.log(error.response.data.msg);\n }\n };\n\n const deliverOrder = async (orderData) => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n const orderID = orderData.orderID;\n const deliveryID = orderData.deliveryID;\n console.log(orderID);\n console.log(deliveryID);\n try {\n const res = await axios.patch(\n `http://localhost:5000/api/orders/deliver/${orderID}`,\n {\n deliveryID,\n },\n config\n );\n\n dispatch({\n type: DELIVER_SUCCESS,\n payload: orderID,\n });\n } catch (error) {\n console.log(error.response.data.msg);\n }\n };\n\n // get reviews\n const getReviews = async (deliveryID) => {\n try {\n\n const res = await axios.get(\n `http://localhost:5000/api/reviews?reviewTo=${deliveryID}` \n );\n\n dispatch({\n type: GET_REVIEWS,\n payload: res.data,\n });\n } catch (error){\n console.log(error);\n }\n };\n\n const deliveryDisputeReview = async (reviewID) => {\n try{\n const review = await axios.patch(`http://localhost:5000/api/reviews/needToHandle/${reviewID}`);\n \n dispatch({\n type: DISPUTE_REVIEW,\n payload: reviewID,\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n // post review\n const postReview = async (formData) => {\n try{\n const config = {\n headers: {\n 'content-type': 'application/json',\n },\n };\n\n\n console.log(formData);\n\n const res = await axios.post(\n `http://localhost:5000/api/reviews`,\n formData,\n config\n );\n\n console.log(res.data);\n\n /*dispatch({\n type: POST_REVIEW,\n payload: {\n reviews: res.data,\n },\n });*/\n } catch (error) {\n console.log(error);\n }\n }; \n\n return (\n <DeliveryContext.Provider\n value={{\n orders: state.orders,\n reviews: state.reviews,\n error: state.error,\n getOrders,\n deliverOrder,\n getReviews,\n deliveryDisputeReview,\n postReview,\n }}\n >\n {props.children}\n </DeliveryContext.Provider>\n );\n};\n\nexport default DeliveryState;\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/customer/customerState.js",["315"],"import React, { useReducer } from 'react';\nimport axios from 'axios';\nimport CustomerContext from './customerContext';\nimport CustomerReducer from './customerReducer';\nimport {\n RECOMMENDED_DISHES,\n ITEM_IN_CART,\n PLACE_ORDER,\n INSUFFICIENT_BALANCE,\n NEW_BALANCE,\n CLEAR_ERRORS,\n DISCUSSION_POSTS_SUCCESS,\n GET_REVIEWS,\n POST_REVIEW,\n DISPUTE_REVIEW,\n} from '../types';\n\nconst CustomerState = (props) => {\n const initialState = {\n recommendedDishes: [],\n reviews:[],\n itemsInCart: [],\n newBalance: null,\n discussionPosts: [],\n error: null,\n };\n\n const [state, dispatch] = useReducer(CustomerReducer, initialState);\n\n const getRecommendedDishes = async (customerID) => {\n try {\n const res = await axios.get(\n `http://localhost:5000/api/menuItems/topThreeForYou/${customerID}`\n );\n\n const recommendedDishes = [];\n\n for (const menuItemId of res.data) {\n const recommendedDish = await axios.get(\n `http://localhost:5000/api/menuItems/${menuItemId}`\n );\n\n recommendedDishes.push(recommendedDish.data);\n }\n\n dispatch({\n type: RECOMMENDED_DISHES,\n payload: recommendedDishes,\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n // get reviews\n const getReviews = async (customerID) => {\n try {\n const res = await axios.get(\n `http://localhost:5000/api/reviews?reviewTo=${customerID}`\n );\n\n dispatch({\n type: GET_REVIEWS,\n payload: res.data,\n });\n } catch (error){\n console.log(error);\n }\n };\n const addToCart = (menuItem) =>\n dispatch({ type: ITEM_IN_CART, payload: menuItem });\n\n const createOrder = async (order, userBalance) => {\n try {\n const res = await axios.post('http://localhost:5000/api/orders', {\n menuItemID: order.menuItemID,\n customerID: order.customerID,\n deliveryNeeded: order.deliveryNeeded,\n price: order.price,\n });\n\n dispatch({\n type: PLACE_ORDER,\n payload: res.data,\n });\n } catch (error) {\n return dispatch({\n type: INSUFFICIENT_BALANCE,\n payload: 'Insufficient balance',\n });\n }\n };\n\n const addBalance = async (balance, customerId) => {\n try {\n const res = await axios.patch(\n `http://localhost:5000/api/customers/balance/${customerId}`,\n {\n amount: parseFloat(balance),\n }\n );\n\n dispatch({\n type: NEW_BALANCE,\n payload: res.data.balance,\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n \n const clearError = () => dispatch({ type: CLEAR_ERRORS });\n // get discussion posts\n const getDiscussionPosts = async () => {\n try {\n const res = await axios.get('http://localhost:5000/api/discussions');\n\n dispatch({\n type: DISCUSSION_POSTS_SUCCESS,\n payload: res.data,\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n // post review\n const postReview = async (formData) => {\n try{\n const config = {\n headers: {\n 'content-type': 'application/json',\n },\n };\n \n const res = await axios.post(\n `http://localhost:5000/api/reviews`,\n formData,\n config\n );\n console.log(res.data);\n console.log(formData);\n\n /*dispatch({\n type: POST_REVIEW,\n payload: {\n reviews: res.data,\n },\n });*/\n } catch (error) {\n console.log(error);\n }\n };\n\n const customerDisputeReview = async (reviewID) => {\n try{\n const res = await axios.patch(\n `http://localhost:5000/api/reviews/needToHandle/${reviewID}`,\n );\n\n dispatch({\n type: DISPUTE_REVIEW,\n payload: {\n reviews: res.data,\n },\n });\n } catch (error) {\n console.log(error);\n }\n };\n\n // post to discussion\n const postToDiscussion = async (postData) => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n const message = postData.message;\n const messageFrom = postData.customerID;\n\n try {\n const res = await axios.post(\n `http://localhost:5000/api/discussions`,\n {\n message,\n messageFrom,\n },\n config\n );\n\n dispatch({\n type: DISCUSSION_POSTS_SUCCESS,\n payload: res.data,\n });\n } catch (error) {\n console.log(error.response.data.msg);\n }\n };\n\n // flag discussion post\n const flagDiscussionPost = async (customerID) => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const res = await axios.post(\n `http://localhost:5000/api/manager/discussion/${customerID}`,\n config\n );\n\n dispatch({\n type: DISCUSSION_POSTS_SUCCESS,\n payload: res.data,\n });\n } catch (error) {\n console.log(error.response.data.msg);\n }\n };\n\n return (\n <CustomerContext.Provider\n value={{\n recommendedDishes: state.recommendedDishes,\n itemsInCart: state.itemsInCart,\n newBalance: state.newBalance,\n error: state.error,\n discussionPosts: state.discussionPosts,\n reviews: state.reviews,\n getRecommendedDishes,\n getReviews,\n postReview,\n customerDisputeReview,\n addToCart,\n createOrder,\n addBalance,\n clearError,\n getDiscussionPosts,\n postToDiscussion,\n flagDiscussionPost,\n }}\n >\n {props.children}\n </CustomerContext.Provider>\n );\n};\n\nexport default CustomerState;\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/manager/managerState.js",["316","317","318","319","320","321","322","323","324","325"],"import React, { useReducer } from 'react';\nimport axios from 'axios';\nimport ManagerContext from './managerContext';\nimport ManagerReducer from './managerReducer';\nimport { GET_PENDING_CUSTOMERS, GET_PENDING_EMPLOYEES, GET_REVIEWS, CUSTOMER_SUCCESS, EMPLOYEE_SUCCESS, REVIEW_SUCCESS, API_ERROR, CLEAR_ERRORS } from '../types';\n\nconst ManagerState = (props) => {\n const initialState = {\n customers: [],\n employees: [],\n reviews: [],\n discussionPosts: [],\n error: null,\n loading: true,\n };\n\n const [state, dispatch] = useReducer(ManagerReducer, initialState);\n\n // get pending customers\n const getPendingCustomers = async () => {\n try {\n const res = await axios.get('http://localhost:5000/api/manager/customers/pending');\n\n dispatch({\n type: GET_PENDING_CUSTOMERS,\n payload: res.data,\n });\n } catch (error) {\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // get pending employees\n const getPendingEmployees = async () => {\n try {\n const res = await axios.get('http://localhost:5000/api/manager/employees/pending');\n\n dispatch({\n type: GET_PENDING_EMPLOYEES,\n payload: res.data,\n });\n } catch (error) {\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // get pending reviews\n const getReviews = async () => {\n try {\n const res = await axios.get('http://localhost:5000/api/manager/reviews/pending');\n\n dispatch({\n type: GET_REVIEWS,\n payload: res.data,\n });\n } catch (error) {\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // approve customer\n const approveCustomer = async customerID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const res = await axios.post(\n `http://localhost:5000/api/manager/approve/${customerID}`,\n config\n );\n\n dispatch({\n type: CUSTOMER_SUCCESS,\n payload: customerID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // hire employee\n const hireEmployee = async employeeID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const res = await axios.post(\n `http://localhost:5000/api/manager/hire/${employeeID}`,\n config\n );\n\n dispatch({\n type: EMPLOYEE_SUCCESS,\n payload: employeeID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // decline customer\n const declineCustomer = async customerID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const res = await axios.delete(\n `http://localhost:5000/api/customers/${customerID}`,\n config\n );\n\n dispatch({\n type: CUSTOMER_SUCCESS,\n payload: customerID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // decline employee\n const declineEmployee = async employeeID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const res = await axios.delete(\n `http://localhost:5000/api/employees/${employeeID}`,\n config\n );\n\n dispatch({\n type: EMPLOYEE_SUCCESS,\n payload: employeeID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // ban customer\n const banCustomer = async customerID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const customerObj = await axios.get(`http://localhost:5000/api/customers/${customerID}`);\n const email = customerObj.data.email;\n\n const res = await axios.post(\n `http://localhost:5000/api/blacklist`,\n {\n email,\n },\n config\n );\n\n const res2 = await axios.delete(\n `http://localhost:5000/api/customers/${customerID}`,\n config\n );\n\n dispatch({\n type: CUSTOMER_SUCCESS,\n payload: customerID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // ban employee\n const banEmployee = async employeeID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const employeeObj = await axios.get(`http://localhost:5000/api/employees/${employeeID}`);\n const email = employeeObj.data.email;\n\n const res = await axios.post(\n `http://localhost:5000/api/blacklist`,\n {\n email,\n },\n config\n );\n\n const res2 = await axios.delete(\n `http://localhost:5000/api/employees/${employeeID}`,\n config\n );\n\n dispatch({\n type: EMPLOYEE_SUCCESS,\n payload: employeeID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // approve review\n const approveReview = async reviewID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const res = await axios.post(\n `http://localhost:5000/api/manager/reviewWithMerit/${reviewID}`,\n config\n );\n\n dispatch({\n type: REVIEW_SUCCESS,\n payload: reviewID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n // dismiss review\n const dismissReview = async reviewID => {\n const config = {\n headers: { 'Content-Type': 'application/json' },\n };\n\n try {\n const res = await axios.post(\n `http://localhost:5000/api/manager/reviewWithoutMerit/${reviewID}`,\n config\n );\n\n dispatch({\n type: REVIEW_SUCCESS,\n payload: reviewID,\n });\n } catch (error) {\n // if server side crashes than axios request will fail and error.response will be undefined\n // so we shouldn't pass erroor.respoonse.data as property data of undefined cannot be called\n const errMsg =\n error.message === 'Network Error'\n ? 'Server Error'\n : error.response.data.msg;\n\n dispatch({\n type: API_ERROR,\n payload: errMsg,\n });\n }\n };\n\n const clearErrors = () => dispatch({ type: CLEAR_ERRORS });\n\n return (\n <ManagerContext.Provider\n value={{\n customers: state.customers,\n employees: state.employees,\n reviews: state.reviews,\n discussionPosts: state.discussionPosts,\n error: state.error,\n loading: state.loading,\n getPendingCustomers,\n getPendingEmployees,\n getReviews,\n approveCustomer,\n hireEmployee,\n declineCustomer,\n declineEmployee,\n banCustomer,\n banEmployee,\n approveReview,\n dismissReview,\n clearErrors,\n }}\n >\n {props.children}\n </ManagerContext.Provider>\n );\n};\n\nexport default ManagerState;\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/index.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Auth/index.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/index.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/index.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/index.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/index.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/types.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/customer/customerReducer.js",["326","327"],"import {\n RECOMMENDED_DISHES,\n ITEM_IN_CART,\n PLACE_ORDER,\n INSUFFICIENT_BALANCE,\n NEW_BALANCE,\n CLEAR_ERRORS,\n DISCUSSION_POSTS_SUCCESS,\n GET_REVIEWS, \n POST_REVIEW,\n DISPUTE_REVIEW,\n} from '../types';\n\nexport default (state, action) => {\n switch (action.type) {\n case RECOMMENDED_DISHES:\n return {\n ...state,\n recommendedDishes: action.payload,\n };\n\n case DISCUSSION_POSTS_SUCCESS:\n return {\n ...state,\n discussionPosts: action.payload,\n };\n\n case GET_REVIEWS:\n return {\n ...state,\n reviews: action.payload,\n };\n/*\n case POST_REVIEW:\n return {\n ...state,\n reviews: [...state.reviews, action.payload],\n };*/\n\n case DISPUTE_REVIEW:\n return {\n ...state,\n reviews: state.reviews.filter(\n review => review._id !== action.payload\n ),\n };\n case ITEM_IN_CART:\n return {\n ...state,\n itemsInCart: [...state.itemsInCart, action.payload],\n };\n\n case PLACE_ORDER:\n return {\n ...state,\n itemsInCart: state.itemsInCart.filter(\n (itemsInCart) => itemsInCart._id !== action.payload.menuItem\n ),\n };\n\n case INSUFFICIENT_BALANCE:\n return {\n ...state,\n error: action.payload,\n };\n\n case NEW_BALANCE:\n return {\n ...state,\n newBalance: action.payload,\n };\n\n case CLEAR_ERRORS:\n return {\n ...state,\n error: null,\n };\n\n default:\n return state;\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/customer/customerContext.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/manager/managerReducer.js",["328"],"import { GET_PENDING_CUSTOMERS, GET_PENDING_EMPLOYEES, GET_REVIEWS, CUSTOMER_SUCCESS, EMPLOYEE_SUCCESS, REVIEW_SUCCESS, API_ERROR, CLEAR_ERRORS } from '../types';\n\nexport default (state, action) => {\n switch (action.type) {\n case GET_PENDING_CUSTOMERS:\n return {\n ...state,\n customers: action.payload,\n loading: false,\n };\n \n case GET_PENDING_EMPLOYEES:\n return {\n ...state,\n employees: action.payload,\n loading: false,\n };\n \n case GET_REVIEWS:\n return {\n ...state,\n reviews: action.payload,\n loading: false,\n };\n \n case CUSTOMER_SUCCESS:\n return {\n ...state,\n customers: state.customers.filter(\n customer => customer._id !== action.payload\n ),\n loading: false\n };\n\n case EMPLOYEE_SUCCESS:\n return {\n ...state,\n employees: state.employees.filter(\n employee => employee._id !== action.payload\n ),\n loading: false\n };\n\n case REVIEW_SUCCESS:\n return {\n ...state,\n reviews: state.reviews.filter(\n review => review._id !== action.payload\n ),\n loading: false\n };\n\n case API_ERROR:\n return {\n ...state,\n error: action.payload,\n };\n\n case CLEAR_ERRORS:\n return {\n ...state,\n error: null,\n };\n\n default:\n break;\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/manager/managerContext.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/Deliveries.js",["329","330"],"import React, { useContext, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport {TaskCard} from '../../components';\nimport Typography from '@material-ui/core/Typography';\n\nimport DeliveryContext from '../../context/delivery/deliveryContext';\n\nconst useStyles = makeStyles((theme) => ({\n \n}));\n\nexport default function Deliveries(props) {\n const classes = useStyles();\n\n const deliveryContext = useContext(DeliveryContext);\n\n const { orders, getOrders } = deliveryContext;\n\n useEffect(() => {\n getOrders();\n // eslint-disable-next-line\n }, []);\n\n return(\n <Grid container spacing={3}>\n <Grid container item xs={12} spacing={5}>\n {orders.map((order) => (\n <Grid key={order._id} item xs={4}>\n <TaskCard\n id={order._id}\n type=\"delivery\"\n title={order.title}\n imageSrc={`http://localhost:5000/api/menuItems/images/${order.image}`}\n description={order.description}\n restrictions={order.restrictions}\n orderFrom={order.customer}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/DelivDiscussion.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/DelivDashboard.js",["331"],"import React, { useState, useContext, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport {ReviewCard2} from '../../components';\n\nimport Button from '@material-ui/core/Button';\nimport TextField from '@material-ui/core/TextField';\nimport Dialog from '@material-ui/core/Dialog';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogContentText from '@material-ui/core/DialogContentText';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport FormControl from '@material-ui/core/FormControl';\nimport Select from '@material-ui/core/Select';\n\n//import Menu from '@material-ui/core/Menu';\n//import MenuItem from '@material-ui/core/MenuItem';\n\nimport Rating from '@material-ui/lab/Rating';\nimport Typography from '@material-ui/core/Typography';\nimport Box from '@material-ui/core/Box';\n\nimport DeliveryContext from '../../context/delivery/deliveryContext';\nimport AuthContext from '../../context/auth/authContext';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n paper: {\n padding: theme.spacing(1),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n },\n appBarSpacer: {\n marginTop: '20px',\n },\n postReviewBtn: {\n float: 'right',\n },\n }));\n\nexport default function DelivDashboard(props) {\n const classes = useStyles();\n\n const deliveryContext = useContext(DeliveryContext);\n const authContext = useContext(AuthContext);\n\n const { user } = authContext;\n const { reviews, getReviews, postReview } = deliveryContext;\n\n useEffect(() => {\n if (user) {\n getReviews(user._id);\n }\n // eslint-disable-next-line\n }, [user]);\n\n const [open, setOpen] = React.useState(false);\n const [review, setReview] = useState({\n type: '',\n reviewFrom: '',\n reviewFromType: 'DeliveryPerson',\n reviewTo: '',\n reviewToType: 'Customer',\n review: '',\n starRating: 5,\n });\n\n //const [anchorEl, setAnchorEl] = React.useState(null);\n const [value, setValue] = React.useState(2);\n \n const handleClickOpen = () => {\n setOpen(true);\n };\n \n const handleClose = () => {\n setOpen(false);\n postReview({\n type: review.type,\n reviewFrom: user._id,\n reviewFromType: 'DeliveryPerson',\n reviewTo: review.reviewTo,\n reviewToType: 'Customer',\n review: review.review,\n starRating: value,\n\n });\n };\n\n /*const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };*/\n\n /*const handleClose2 = () => {\n setAnchorEl(null);\n };*/\n\n const onChange = (e) =>\n setReview({ ...review, [e.target.name]: e.target.value });\n\n \n return (\n <div>\n <Button variant=\"outlined\" color=\"primary\" onClick={handleClickOpen} className={classes.postReviewBtn}>\n Write a review\n </Button>\n <Dialog open={open} onClose={handleClose} aria-labelledby=\"form-dialog-title\">\n <DialogTitle id=\"form-dialog-title\">Write a Review</DialogTitle>\n <DialogContent>\n <DialogContentText>\n Enter your review below. We appreciate your feedback!\n </DialogContentText>\n \n <FormControl variant='outlined' fullWidth margin='normal'>\n <InputLabel htmlFor='outlined-userType-native-simple'>\n Review Type*\n </InputLabel>\n <Select\n native\n onChange={onChange}\n required\n label='Review Type'\n inputProps={{\n name: 'type',\n id: 'type',\n }}\n >\n <option aria-label='None' value='' />\n <option value='compliment'>Compliment</option>\n <option value='complaint'>Complaint</option>\n </Select>\n </FormControl>\n \n <TextField\n variant=\"outlined\"\n autoFocus\n required\n margin=\"dense\"\n id=\"reviewTo\"\n name=\"reviewTo\"\n label=\"Review To ID\"\n type=\"email\"\n fullWidth\n onChange={onChange}\n />\n <TextField\n variant=\"outlined\"\n autoFocus\n margin=\"dense\"\n multiline\n id=\"review\"\n name=\"review\"\n label=\"Review\"\n type=\"email\"\n fullWidth\n onChange={onChange}\n />\n\n <Box component=\"fieldset\" mb={3} borderColor=\"transparent\">\n <Rating\n required\n name=\"starRating\"\n id=\"starRating\"\n value={value}\n onChange={(event, newValue, onChange) => {\n setValue(newValue);\n }}\n />\n </Box>\n\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose} color=\"primary\">\n Cancel\n </Button>\n <Button onClick={handleClose} color=\"primary\">\n Submit\n </Button>\n </DialogActions>\n </Dialog>\n <div></div>\n <Grid container spacing={3}>\n <Grid container item xs={12} spacing={5}>\n {reviews.map((review) => (\n <Grid key = {review._id} item xs={6}>\n <ReviewCard2\n id={review._id}\n reviewType={review.type}\n reviewTo={review.reviewTo}\n reviewToType={review.reviewToType}\n reviewFrom={review.reviewFrom}\n reviewFromType={review.reviewFromType}\n reviewMessage={review.review}\n rating={review.starRating}\n />\n </Grid>\n ))} \n </Grid>\n </Grid>\n </div>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Delivery/DelivListItems.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/ChefDiscussion.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/Recipes.js",["332"],"import React, { useEffect, useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport { CartCard } from '../../components';\nimport CreateRecipes from './CreateRecipe';\n\nimport ChefContext from '../../context/chef/chefContext';\nimport AuthContext from '../../context/auth/authContext';\n\nconst useStyles = makeStyles((theme) => ({\n addRecipeBtn: {\n float: 'right',\n },\n}));\n\nexport default function Recipes(props) {\n const classes = useStyles();\n\n const chefContext = useContext(ChefContext);\n const authContext = useContext(AuthContext);\n\n const { user } = authContext;\n const { getRecipes, recipes } = chefContext;\n\n useEffect(() => {\n if (user) {\n getRecipes(user._id);\n }\n // eslint-disable-next-line\n }, [user]);\n\n return (\n <div>\n <CreateRecipes />\n <Grid container direction='column' spacing={2}>\n {recipes.map((recipe) => (\n <Grid key={recipe._id} item xs={10}>\n <CartCard\n imageSrc={`http://localhost:5000/api/menuItems/images/${recipe.image}`}\n title={recipe.title}\n price={recipe.price}\n rate={recipe.starRating}\n chefName={recipe.chefName}\n description={recipe.description}\n />\n </Grid>\n ))}\n </Grid>\n </div>\n );\n}\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/Orders.js",["333","334"],"import React, { useContext, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport {TaskCard} from '../../components';\nimport Typography from '@material-ui/core/Typography';\n\nimport ChefContext from '../../context/chef/chefContext';\n\nconst useStyles = makeStyles((theme) => ({\n \n}));\n\nexport default function Orders(props) {\n const classes = useStyles();\n\n const chefContext = useContext(ChefContext);\n\n const { orders, getOrders } = chefContext;\n\n useEffect(() => {\n getOrders();\n // eslint-disable-next-line\n }, []);\n\n return(\n <Grid container spacing={3}>\n <Grid container item xs={12} spacing={5}>\n {orders.map((order) => (\n <Grid key={order._id} item xs={4}>\n <TaskCard\n id={order._id}\n type=\"chef\"\n title={order.title}\n imageSrc={`http://localhost:5000/api/menuItems/images/${order.image}`}\n description={order.description}\n restrictions={order.restrictions}\n orderFrom={order.customer}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/ChefDashboard.js",["335","336"],"import React, { useContext, useEffect }from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport {ReviewCard2} from '../../components';\nimport Typography from '@material-ui/core/Typography';\n\nimport ChefContext from '../../context/chef/chefContext';\nimport AuthContext from '../../context/auth/authContext';\n\n\nconst useStyles = makeStyles((theme) => ({\n \n }));\n\nexport default function ChefDashboard(props) {\n const classes = useStyles();\n\n const chefContext = useContext(ChefContext);\n const authContext = useContext(AuthContext);\n\n const { user } = authContext;\n const { reviews, getReviews } = chefContext;\n\n useEffect(() => {\n if (user) {\n getReviews(user._id);\n //disputeReview();\n }\n // eslint-disable-next-line\n }, [user]);\n\n return(\n <Grid container spacing={3}>\n <Grid container item xs={12} spacing={5}>\n {reviews.map((review) => (\n <Grid key={review._id} item xs={6}>\n <ReviewCard2\n id={review._id}\n reviewType={review.type}\n reviewTo={review.reviewTo}\n reviewToType={review.reviewToType}\n reviewFrom={review.reviewFrom}\n reviewFromType={review.reviewFromType}\n reviewMessage={review.review}\n rating={review.starRating}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/delivery/deliveryContext.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/auth/authContext.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/chef/chefContext.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/index.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/CreateRecipe.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/CartCard.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ReceiptCard.js",["337","338","339"],"import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n minWidth: 700,\n minHeight: 200,\n background: theme.palette.primary.main,\n },\n}));\n\nexport default function ReceiptCard() {\n const classes = useStyles();\n const bull = <span className={classes.bullet}>•</span>;\n\n return (\n <Card className={classes.root}>\n <CardContent>\n <Typography className={classes.title} color=\"textSecondary\" gutterBottom>\n Word of the Day\n </Typography>\n </CardContent>\n </Card>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ReviewCard2.js",["340","341","342"],"import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport Rating from '@material-ui/lab/Rating';\nimport Box from '@material-ui/core/Box';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\n\nimport CustomerContext from '../context/customer/customerContext';\nimport ChefContext from '../context/chef/chefContext';\nimport DeliveryContext from '../context/delivery/deliveryContext';\nimport AuthContext from '../context/auth/authContext';\n\n\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n minWidth: 550,\n minHeight: 250,\n background: theme.palette.textBackground.main,\n },\n red: {\n background: theme.palette.buttonColor1.main,\n marginRight: theme.spacing(2)\n }\n}));\n\nexport default function ReviewCard2(props) {\n const classes = useStyles();\n\n const authContext = useContext(AuthContext);\n const { typeOfUser, user } = authContext;\n\n const deliveryContext = useContext(DeliveryContext);\n const { deliveryDisputeReview } = deliveryContext;\n\n const customerContext = useContext(CustomerContext);\n const { customerDisputeReview } = customerContext;\n\n const chefContext = useContext(ChefContext);\n const { chefDisputeReview } = chefContext;\n \n\n const onDeliveryDispute = () => {\n deliveryDisputeReview(props.id);\n };\n\n const onCustomerDispute = () => {\n customerDisputeReview(props.id);\n };\n\n const onChefDispute = () => {\n chefDisputeReview(props.id);\n };\n\n\n return (\n <Card className={classes.root}>\n <CardContent>\n <Typography gutterBottom variant=\"h5\" component=\"h2\">\n {props.reviewType}\n </Typography>\n\n <Typography variant=\"h7\" component=\"h6\">\n Review\n </Typography>\n <Typography gutterBottom variant=\"h7\" component=\"h4\">\n {props.reviewMessage}\n </Typography>\n <br/>\n <Box component=\"fieldset\" mb={3} borderColor=\"transparent\">\n <Typography component=\"legend\">Rating</Typography>\n <Rating name=\"review-rating\" value={props.rating} readOnly />\n </Box>\n <Box display=\"flex\" justifyContent=\"flex-end\">\n {typeOfUser === 'delivery' ? \n <Button className={classes.red} size=\"small\" minWidth='50px' onClick={onDeliveryDispute}>Dispute</Button>\n : null}\n {typeOfUser === 'customer' ? \n <Button className={classes.red} size=\"small\" minWidth='50px' onClick={onCustomerDispute}>Dispute</Button>\n : null}\n\n {typeOfUser === 'chef' ? \n <Button className={classes.red} size=\"small\" minWidth='50px' onClick={onChefDispute}>Dispute</Button>\n : null}\n\n </Box>\n\n </CardContent>\n </Card>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/TaskCard.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ApproveCard.js",["343","344","345"],"import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport Box from '@material-ui/core/Box';\nimport Typography from '@material-ui/core/Typography';\nimport theme from '../theme'\nimport ManagerContext from '../context/manager/managerContext';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n minWidth: 550,\n minHeight: 200,\n background: theme.palette.textBackground.main\n },\n red: {\n background: theme.palette.buttonColor1.main,\n marginRight: theme.spacing(2)\n },\n primary: {\n background: theme.palette.primary.main,\n marginRight: theme.spacing(2)\n },\n green: {\n background: theme.palette.buttonColor2.main,\n marginRight: theme.spacing(2)\n }\n}));\n\nexport default function ApproveCard(props) {\n const classes = useStyles();\n\n const managerContext = useContext(ManagerContext);\n const { hireEmployee, declineEmployee, approveCustomer, declineCustomer, banCustomer, banEmployee } = managerContext;\n\n const onApprove = () => {\n if (props.type === \"chef\" || props.type === \"delivery\")\n hireEmployee(props.id);\n else if (props.type === \"customer\")\n approveCustomer(props.id);\n };\n\n const onDecline = () => {\n if (props.type === \"chef\" || props.type === \"delivery\")\n declineEmployee(props.id);\n else if (props.type === \"customer\")\n declineCustomer(props.id);\n };\n\n const onBan = () => {\n if (props.type === \"chef\" || props.type === \"delivery\")\n banEmployee(props.id);\n else if (props.type === \"customer\")\n banCustomer(props.id);\n };\n\n return (\n <Card className={classes.root}>\n <CardContent>\n <Typography variant=\"h7\" component=\"h6\">\n Name\n </Typography>\n <Typography gutterBottom variant=\"h7\" component=\"h4\">\n {props.name}\n </Typography>\n <Typography variant=\"h7\" component=\"h6\">\n Email\n </Typography>\n <Typography gutterBottom variant=\"h7\" component=\"h4\">\n {props.email}\n </Typography>\n <Typography variant=\"h7\" component=\"h6\">\n User Type\n </Typography>\n <Typography gutterBottom variant=\"h7\" component=\"h4\">\n {props.type}\n </Typography>\n <br/>\n <Box display=\"flex\" justifyContent=\"flex-end\">\n <Button className={classes.green} size=\"small\" onClick={onApprove}>Approve</Button>\n <Button className={classes.primary} size=\"small\" onClick={onDecline}>Decline</Button>\n <Button className={classes.red} size=\"small\" onClick={onBan}>Ban</Button>\n </Box>\n </CardContent>\n </Card>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/ReviewCard.js",["346","347"],"import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport Rating from '@material-ui/lab/Rating';\nimport Box from '@material-ui/core/Box';\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\nimport ManagerContext from '../context/manager/managerContext';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n minWidth: 550,\n minHeight: 250,\n background: theme.palette.textBackground.main,\n },\n red: {\n background: theme.palette.buttonColor1.main,\n marginRight: theme.spacing(2)\n },\n green: {\n background: theme.palette.buttonColor2.main,\n marginRight: theme.spacing(2)\n }\n}));\n\nexport default function ReviewCard(props) {\n const classes = useStyles();\n\n const managerContext = useContext(ManagerContext);\n const { approveReview, dismissReview } = managerContext;\n\n const onApprove = () => {\n approveReview(props.id);\n };\n\n const onDismiss = () => {\n dismissReview(props.id);\n };\n\n return (\n <Card className={classes.root}>\n <CardContent>\n <Typography gutterBottom variant=\"h5\" component=\"h2\">\n {props.reviewType}\n </Typography>\n <Typography variant=\"h7\" component=\"h6\">\n Review To\n </Typography>\n <Typography gutterBottom variant=\"h7\" component=\"h4\">\n {props.reviewTo} ({props.reviewToType})\n </Typography>\n <Typography variant=\"h7\" component=\"h6\">\n Review From\n </Typography>\n <Typography gutterBottom variant=\"h7\" component=\"h4\">\n {props.reviewFrom} ({props.reviewFromType})\n </Typography>\n <Typography variant=\"h7\" component=\"h6\">\n Review\n </Typography>\n <Typography gutterBottom variant=\"h7\" component=\"h4\">\n {props.reviewMessage}\n </Typography>\n <br/>\n <Box component=\"fieldset\" mb={3} borderColor=\"transparent\">\n <Typography component=\"legend\">Rating</Typography>\n <Rating name=\"review-rating\" value={props.rating} readOnly />\n </Box>\n <Box display=\"flex\" justifyContent=\"flex-end\">\n <Button className={classes.green} size=\"small\" minWidth='50px' onClick={onApprove}>Valid</Button>\n <Button className={classes.red} size=\"small\" minWidth='50px' onClick={onDismiss}>Invalid</Button>\n </Box>\n </CardContent>\n </Card>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/DishCard.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/DashboardNav.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/Nav.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Chef/ChefListItems.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/ManagDiscussion.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/CustomerList.js",["348"],"import React, { useContext, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport {ApproveCard} from '../../components';\n\nimport ManagerContext from '../../context/manager/managerContext';\n\nconst useStyles = makeStyles((theme) => ({\n \n }));\n\nexport default function CustomerList(props) {\n const classes = useStyles();\n\n const managerContext = useContext(ManagerContext);\n\n const { customers, getPendingCustomers } = managerContext;\n\n useEffect(() => {\n getPendingCustomers();\n\n // eslint-disable-next-line\n }, []);\n\n return(\n <Grid container spacing={3}>\n <Grid container item xs={12} spacing={5}>\n {customers.map((customer) => (\n <Grid key={customer._id} item xs={6}>\n <ApproveCard\n id={customer._id}\n name={customer.firstName + \" \" + customer.lastName}\n email={customer.email}\n type={'customer'}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/EmployeeList.js",["349"],"import React, { useContext, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport {ApproveCard} from '../../components';\n\nimport ManagerContext from '../../context/manager/managerContext';\n\nconst useStyles = makeStyles((theme) => ({\n \n }));\n\nexport default function EmployeeList(props) {\n const classes = useStyles();\n\n const managerContext = useContext(ManagerContext);\n\n const { employees, getPendingEmployees } = managerContext;\n\n useEffect(() => {\n getPendingEmployees();\n\n // eslint-disable-next-line\n }, []);\n\n return(\n <Grid container spacing={3}>\n <Grid container item xs={12} spacing={5}>\n {employees.map((employee) => (\n <Grid key={employee._id} item xs={6}>\n <ApproveCard\n id={employee._id}\n name={employee.firstName + \" \" + employee.lastName}\n email={employee.email}\n type={employee.type}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/ManagDashboard.js",["350","351"],"import React, { useContext, useEffect } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport {ReviewCard} from '../../components';\nimport Typography from '@material-ui/core/Typography';\n\nimport ManagerContext from '../../context/manager/managerContext';\n\nconst useStyles = makeStyles((theme) => ({\n \n }));\n\nexport default function ManagDashboard(props) {\n const classes = useStyles();\n\n const managerContext = useContext(ManagerContext);\n\n const { reviews, getReviews } = managerContext;\n\n useEffect(() => {\n getReviews();\n\n // eslint-disable-next-line\n }, []);\n\n return(\n <Grid container spacing={3}>\n <Grid container item xs={12} spacing={5}>\n {reviews.map((review) => (\n <Grid key={review._id} item xs={6}>\n <ReviewCard\n id={review._id}\n reviewType={review.type}\n reviewTo={review.reviewTo}\n reviewToType={review.reviewToType}\n reviewFrom={review.reviewFrom}\n reviewFromType={review.reviewFromType}\n reviewMessage={review.review}\n rating={review.starRating}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n );\n}","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Manager/ManagListItems.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustDiscussion.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustReviews.js",["352"],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/Cart.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustDashboard.js",["353"],"import React, { useEffect, useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Grid from '@material-ui/core/Grid';\nimport { DishCard } from '../../components';\nimport Typography from '@material-ui/core/Typography';\n\nimport AuthContext from '../../context/auth/authContext';\nimport CustomerContext from '../../context/customer/customerContext';\nimport MenuItemsContext from '../../context/menuItems/menuItemsContext';\n\nconst useStyles = makeStyles((theme) => ({}));\n\nexport default function CustDashboard(props) {\n const classes = useStyles();\n\n const customerContext = useContext(CustomerContext);\n const authContext = useContext(AuthContext);\n const menuItemsContext = useContext(MenuItemsContext);\n\n const { recommendedDishes, getRecommendedDishes } = customerContext;\n const { user } = authContext;\n const {\n menuItems,\n getMenuItems,\n filterSpecialDishes,\n specialDishes,\n } = menuItemsContext;\n\n useEffect(() => {\n if (user) {\n getRecommendedDishes(user._id);\n }\n\n if (menuItems.length === 0) {\n console.log('IN IF MENUITEMS');\n getMenuItems();\n }\n\n if (user && user.isVIP) {\n filterSpecialDishes();\n }\n\n // eslint-disable-next-line\n }, [user, menuItems]);\n\n console.log(specialDishes);\n return (\n <Grid container spacing={3}>\n <div>\n {recommendedDishes.length > 0 ? (\n <Typography variant='h6' component='h6'>\n Recommended Dishes\n </Typography>\n ) : null}\n <Grid container spacing={2} style={{ margin: 0, width: '100%' }}>\n <Grid container item xs={12} spacing={2}>\n {recommendedDishes.map((recommendedDish) => (\n <Grid key={recommendedDish._id} item xs={4}>\n <DishCard\n imageSrc={`http://localhost:5000/api/menuItems/images/${recommendedDish.image}`}\n title={recommendedDish.title}\n price={recommendedDish.price}\n rate={recommendedDish.starRating}\n chefName={recommendedDish.chefName}\n description={recommendedDish.description}\n />\n </Grid>\n ))}\n </Grid>\n </Grid>\n </div>\n\n <div>\n {user && user.isVIP ? (\n <Typography variant='h6' component='h6'>\n Special Dishes\n </Typography>\n ) : null}\n <Grid container item xs={12} spacing={2}>\n {specialDishes &&\n specialDishes.map((specialDish) => (\n <Grid key={specialDish._id} item xs={4}>\n <DishCard\n imageSrc={`http://localhost:5000/api/menuItems/images/${specialDish.image}`}\n title={specialDish.title}\n price={specialDish.price}\n rate={specialDish.starRating}\n chefName={specialDish.chefName}\n description={specialDish.description}\n />\n </Grid>\n ))}\n </Grid>\n </div>\n </Grid>\n );\n}\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Auth/SignIn.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/DashboardLayout.js",["354","355"],"import React, {useEffect, useContext} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Container from '@material-ui/core/Container';\nimport { DashboardNav } from '../components';\nimport FaceIcon from '@material-ui/icons/Face';\nimport { Widget, addResponseMessage, addUserMessage, renderCustomComponent} from 'react-chat-widget';\nimport 'react-chat-widget/lib/styles.css';\n\nimport AuthContext from '../context/auth/authContext';\nimport CustomerContext from '../context/customer/customerContext';\n\nconst useStyles = makeStyles((theme) => ({\n content: {\n flexGrow: 1,\n height: '100vh',\n overflow: 'auto',\n },\n appBarSpacer: theme.mixins.toolbar,\n container: {\n paddingTop: theme.spacing(4),\n paddingBottom: theme.spacing(4),\n },\n}));\n\nexport default function DashboardLayout(props) {\n const classes = useStyles();\n var Filter = require('bad-words'), filter = new Filter();\n\n const authContext = useContext(AuthContext);\n const { typeOfUser, user } = authContext;\n\n const customerContext = useContext(CustomerContext);\n const { discussionPosts, getDiscussionPosts, postToDiscussion, flagDiscussionPost } = customerContext;\n\n useEffect(() => {\n getDiscussionPosts();\n // eslint-disable-next-line\n }, []);\n \n // populate chat\n if (discussionPosts.length > 0) {\n let discussionPostsSet = [...new Set(discussionPosts)]; // turn into set to remove duplicates\n\n for (const discussionPost of discussionPostsSet) {\n if (user && discussionPost.messageFrom === user._id)\n addUserMessage(discussionPost.message);\n else\n addResponseMessage(discussionPost.message);\n }\n }\n\n // when user types new message\n const onNewMessage = (newMessage) => {\n newMessage = filter.clean(newMessage);\n const newMessageAsArr = newMessage.split(\" \"); // turn into array of words\n var numOfBadWords = 0;\n for(const word of newMessageAsArr) {\n if (word.charAt(0) === \"*\") // check how many words have * (aka bad words)\n numOfBadWords++;\n }\n console.log(numOfBadWords);\n\n if (user) {\n if (numOfBadWords >= 3) {\n flagDiscussionPost(user._id);\n }\n else {\n postToDiscussion({\n customerID: user._id,\n message: newMessage,\n });\n }\n }\n }\n\n return (\n <div style={{ display: 'flex' }}>\n <DashboardNav listItems={props.listItems} />\n <main className={classes.content}>\n <div className={classes.appBarSpacer} />\n {typeOfUser === 'customer' ? \n <Widget\n handleNewUserMessage={onNewMessage}\n profileAvatar={'https://www.midtownatlanta.org/wp-content/uploads/2019/06/istockphoto-1005214200-170667a.jpg'}\n senderPlaceHolder=\"Type your message\"\n title=\"Discussion\"\n subtitle=\"Ask any questions you want!\"\n />\n : null}\n <Container maxWidth='lg' className={classes.container}>\n {props.routes}\n </Container>\n </main>\n </div>\n );\n}\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Customer/CustListItems.js",["356"],"import React from 'react';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport DashboardIcon from '@material-ui/icons/Dashboard';\nimport ShoppingCartIcon from '@material-ui/icons/ShoppingCart';\nimport RateReviewIcon from '@material-ui/icons/RateReview';\nimport RestaurantMenuIcon from '@material-ui/icons/RestaurantMenu';\nimport ForumIcon from '@material-ui/icons/Forum';\nimport { Link as RouterLink } from 'react-router-dom';\n\nexport default function CustListItems(props) {\n return (\n <div>\n <ListItem\n button\n component={RouterLink}\n to='/customer/dashboard'\n onClick={() => props.display('Dashboard')}\n >\n <ListItemIcon>\n <DashboardIcon />\n </ListItemIcon>\n <ListItemText primary='Dashboard' />\n </ListItem>\n\n <ListItem\n button\n component={RouterLink}\n to='/customer/reviews'\n onClick={() => props.display('Reviews')}\n >\n <ListItemIcon>\n <RateReviewIcon />\n </ListItemIcon>\n <ListItemText primary='Reviews' />\n </ListItem>\n\n <ListItem button component={RouterLink} to='/menus'>\n <ListItemIcon>\n <RestaurantMenuIcon />\n </ListItemIcon>\n <ListItemText primary='Menu' />\n </ListItem>\n\n <ListItem\n button\n component={RouterLink}\n to='/customer/cart'\n onClick={() => props.display('Cart')}\n >\n <ListItemIcon>\n <ShoppingCartIcon />\n </ListItemIcon>\n <ListItemText primary='Cart' />\n </ListItem>\n </div>\n );\n}\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Menus.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/chef/chefReducer.js",["357"],"import { CREATE_RECIPE, GET_RECIPES, GET_ORDERS, COOK_SUCCESS, GET_REVIEWS, DISPUTE_REVIEW } from '../types';\n\nexport default (state, action) => {\n switch (action.type) {\n case GET_RECIPES:\n return {\n ...state,\n recipes: action.payload,\n };\n\n case CREATE_RECIPE:\n return {\n ...state,\n recipes: [...state.recipes, action.payload],\n };\n\n case GET_REVIEWS:\n return {\n ...state,\n reviews: action.payload,\n };\n\n\n case DISPUTE_REVIEW:\n return {\n ...state,\n reviews: state.reviews.filter(\n review => review._id !== action.payload\n ),\n };\n \n case GET_ORDERS:\n return {\n ...state,\n orders: action.payload,\n };\n\n case COOK_SUCCESS:\n return {\n ...state,\n orders: state.orders.filter(\n order => order._id !== action.payload\n ),\n };\n\n default:\n break;\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/delivery/deliveryReducer.js",["358","359"],"import { GET_ORDERS, DELIVER_SUCCESS, GET_REVIEWS, POST_REVIEW, DISPUTE_REVIEW } from '../types';\n\nexport default (state, action) => {\n switch (action.type) {\n case GET_ORDERS:\n return {\n ...state,\n orders: action.payload,\n };\n\n case DELIVER_SUCCESS:\n return {\n ...state,\n orders: state.orders.filter(\n order => order._id !== action.payload\n ),\n };\n\n case GET_REVIEWS:\n return {\n ...state,\n reviews: action.payload,\n };\n\n /*case POST_REVIEW:\n return {\n ...state,\n reviews: [...state.reviews, action.payload],\n };*/\n\n case DISPUTE_REVIEW:\n return {\n ...state,\n reviews: state.reviews.filter(\n review => review._id !== action.payload\n ),\n };\n\n default:\n break;\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Home.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/menuItems/menuItemsReducer.js",["360"],"import {\n GET_MENUITEMS,\n GET_MENUITEMS_ERROR,\n CLEAR_ERRORS,\n SPECIAL_DISHES,\n SEARCH_MENUITEMS,\n CLEAR_SEARCH,\n} from '../types';\n\nexport default (state, action) => {\n switch (action.type) {\n case GET_MENUITEMS:\n return {\n ...state,\n menuItems: action.payload,\n loading: false,\n };\n\n case GET_MENUITEMS_ERROR:\n return {\n ...state,\n error: action.payload,\n };\n\n case SPECIAL_DISHES:\n return {\n ...state,\n specialDishes: state.menuItems.filter(\n (menuItem) => menuItem.specialItem\n ),\n };\n\n case SEARCH_MENUITEMS:\n return {\n ...state,\n filtered: state.menuItems.filter((menuItem) => {\n const regex = new RegExp(`${action.payload}`, 'gi');\n return menuItem.title.match(regex);\n }),\n };\n\n case CLEAR_SEARCH:\n return {\n ...state,\n filtered: null,\n };\n\n case CLEAR_ERRORS:\n return {\n ...state,\n error: null,\n };\n\n default:\n break;\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/auth/authReducer.js",["361"],"import {\n SIGNIN_SUCCESS,\n SIGNIN_FAIL,\n SIGNUP_SUCCESS,\n SIGNUP_FAIL,\n LOAD_USER,\n SIGNOUT,\n SIGNOUT_FAIL,\n AUTH_ERROR,\n CLEAR_ERRORS,\n CLEAR_MSG,\n SERVER_ERROR,\n} from '../types';\n\nexport default (state, action) => {\n switch (action.type) {\n case SIGNIN_SUCCESS:\n localStorage.setItem('token', action.payload.token);\n return {\n ...state,\n user: action.payload.user,\n token: action.payload.token,\n isAuthenticated: true,\n loading: false,\n };\n\n case SIGNUP_SUCCESS:\n return {\n ...state,\n msg: action.payload,\n };\n\n case SIGNOUT:\n localStorage.removeItem('token');\n return {\n ...state,\n token: null,\n isAuthenticated: false,\n loading: false,\n user: null,\n };\n\n case LOAD_USER:\n return {\n ...state,\n isAuthenticated: true,\n loading: false,\n user: action.payload.user,\n typeOfUser: action.payload.userRole\n };\n\n case AUTH_ERROR:\n case SIGNIN_FAIL:\n case SIGNOUT_FAIL:\n case SIGNUP_FAIL:\n case SERVER_ERROR:\n localStorage.removeItem('token');\n return {\n ...state,\n token: null,\n isAuthenticated: false,\n loading: false,\n user: null,\n error: action.payload,\n };\n\n // cases where token is not retrieved so no needed to\n // case SIGNUP_FAIL:\n // case SERVER_ERROR:\n // return {\n // ...state,\n // token: null,\n // isAuthenticated: false,\n // loading: false,\n // user: null,\n // error: action.payload,\n // };\n\n case CLEAR_ERRORS:\n return {\n ...state,\n error: null,\n };\n\n case CLEAR_MSG:\n return {\n ...state,\n msg: null,\n };\n\n default:\n break;\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/menuItems/menuItemsContext.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/alerts/alertReducer.js",["362"],"import { SET_ALERT, REMOVE_ALERT } from '../types';\n\nexport default (state, action) => {\n switch (action.type) {\n case SET_ALERT:\n return [...state, action.payload];\n\n case REMOVE_ALERT:\n return state.filter((alert) => alert.id !== action.payload);\n\n default:\n return action;\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/context/alerts/alertContext.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/layouts/Auth/SignUp.js",[],"/Users/gregk/Documents/GitHub/swe-project-frontend/src/utils/setAuthToken.js",["363"],"import axios from 'axios';\n\nexport default (token) => {\n if (token) {\n axios.defaults.headers.common['x-auth-token'] = token;\n } else {\n delete axios.defaults.headers.common['x-auth-token'];\n }\n};\n","/Users/gregk/Documents/GitHub/swe-project-frontend/src/components/custToast.js",[],{"ruleId":"364","replacedBy":"365"},{"ruleId":"366","replacedBy":"367"},{"ruleId":"368","severity":1,"message":"369","line":13,"column":3,"nodeType":"370","messageId":"371","endLine":13,"endColumn":15},{"ruleId":"368","severity":1,"message":"372","line":17,"column":3,"nodeType":"370","messageId":"371","endLine":17,"endColumn":15},{"ruleId":"368","severity":1,"message":"373","line":143,"column":13,"nodeType":"370","messageId":"371","endLine":143,"endColumn":16},{"ruleId":"368","severity":1,"message":"374","line":5,"column":68,"nodeType":"370","messageId":"371","endLine":5,"endColumn":79},{"ruleId":"368","severity":1,"message":"373","line":56,"column":13,"nodeType":"370","messageId":"371","endLine":56,"endColumn":16},{"ruleId":"368","severity":1,"message":"375","line":92,"column":13,"nodeType":"370","messageId":"371","endLine":92,"endColumn":19},{"ruleId":"368","severity":1,"message":"374","line":14,"column":3,"nodeType":"370","messageId":"371","endLine":14,"endColumn":14},{"ruleId":"368","severity":1,"message":"373","line":92,"column":13,"nodeType":"370","messageId":"371","endLine":92,"endColumn":16},{"ruleId":"368","severity":1,"message":"373","line":123,"column":13,"nodeType":"370","messageId":"371","endLine":123,"endColumn":16},{"ruleId":"368","severity":1,"message":"373","line":154,"column":13,"nodeType":"370","messageId":"371","endLine":154,"endColumn":16},{"ruleId":"368","severity":1,"message":"373","line":185,"column":13,"nodeType":"370","messageId":"371","endLine":185,"endColumn":16},{"ruleId":"368","severity":1,"message":"373","line":219,"column":13,"nodeType":"370","messageId":"371","endLine":219,"endColumn":16},{"ruleId":"368","severity":1,"message":"376","line":227,"column":13,"nodeType":"370","messageId":"371","endLine":227,"endColumn":17},{"ruleId":"368","severity":1,"message":"373","line":261,"column":13,"nodeType":"370","messageId":"371","endLine":261,"endColumn":16},{"ruleId":"368","severity":1,"message":"376","line":269,"column":13,"nodeType":"370","messageId":"371","endLine":269,"endColumn":17},{"ruleId":"368","severity":1,"message":"373","line":300,"column":13,"nodeType":"370","messageId":"371","endLine":300,"endColumn":16},{"ruleId":"368","severity":1,"message":"373","line":331,"column":13,"nodeType":"370","messageId":"371","endLine":331,"endColumn":16},{"ruleId":"368","severity":1,"message":"374","line":10,"column":3,"nodeType":"370","messageId":"371","endLine":10,"endColumn":14},{"ruleId":"377","severity":1,"message":"378","line":14,"column":1,"nodeType":"379","endLine":82,"endColumn":3},{"ruleId":"377","severity":1,"message":"378","line":3,"column":1,"nodeType":"379","endLine":68,"endColumn":3},{"ruleId":"368","severity":1,"message":"380","line":5,"column":8,"nodeType":"370","messageId":"371","endLine":5,"endColumn":18},{"ruleId":"368","severity":1,"message":"381","line":14,"column":11,"nodeType":"370","messageId":"371","endLine":14,"endColumn":18},{"ruleId":"368","severity":1,"message":"380","line":21,"column":8,"nodeType":"370","messageId":"371","endLine":21,"endColumn":18},{"ruleId":"368","severity":1,"message":"381","line":17,"column":9,"nodeType":"370","messageId":"371","endLine":17,"endColumn":16},{"ruleId":"368","severity":1,"message":"380","line":5,"column":8,"nodeType":"370","messageId":"371","endLine":5,"endColumn":18},{"ruleId":"368","severity":1,"message":"381","line":14,"column":11,"nodeType":"370","messageId":"371","endLine":14,"endColumn":18},{"ruleId":"368","severity":1,"message":"380","line":5,"column":8,"nodeType":"370","messageId":"371","endLine":5,"endColumn":18},{"ruleId":"368","severity":1,"message":"381","line":16,"column":11,"nodeType":"370","messageId":"371","endLine":16,"endColumn":18},{"ruleId":"368","severity":1,"message":"382","line":4,"column":8,"nodeType":"370","messageId":"371","endLine":4,"endColumn":19},{"ruleId":"368","severity":1,"message":"383","line":6,"column":8,"nodeType":"370","messageId":"371","endLine":6,"endColumn":14},{"ruleId":"368","severity":1,"message":"384","line":19,"column":9,"nodeType":"370","messageId":"371","endLine":19,"endColumn":13},{"ruleId":"368","severity":1,"message":"382","line":4,"column":8,"nodeType":"370","messageId":"371","endLine":4,"endColumn":19},{"ruleId":"368","severity":1,"message":"385","line":10,"column":8,"nodeType":"370","messageId":"371","endLine":10,"endColumn":19},{"ruleId":"368","severity":1,"message":"386","line":35,"column":23,"nodeType":"370","messageId":"371","endLine":35,"endColumn":27},{"ruleId":"368","severity":1,"message":"382","line":4,"column":8,"nodeType":"370","messageId":"371","endLine":4,"endColumn":19},{"ruleId":"368","severity":1,"message":"385","line":7,"column":8,"nodeType":"370","messageId":"371","endLine":7,"endColumn":19},{"ruleId":"368","severity":1,"message":"387","line":10,"column":8,"nodeType":"370","messageId":"371","endLine":10,"endColumn":13},{"ruleId":"368","severity":1,"message":"382","line":4,"column":8,"nodeType":"370","messageId":"371","endLine":4,"endColumn":19},{"ruleId":"368","severity":1,"message":"385","line":10,"column":8,"nodeType":"370","messageId":"371","endLine":10,"endColumn":19},{"ruleId":"368","severity":1,"message":"381","line":13,"column":11,"nodeType":"370","messageId":"371","endLine":13,"endColumn":18},{"ruleId":"368","severity":1,"message":"381","line":13,"column":11,"nodeType":"370","messageId":"371","endLine":13,"endColumn":18},{"ruleId":"368","severity":1,"message":"380","line":5,"column":8,"nodeType":"370","messageId":"371","endLine":5,"endColumn":18},{"ruleId":"368","severity":1,"message":"381","line":14,"column":11,"nodeType":"370","messageId":"371","endLine":14,"endColumn":18},{"ruleId":"368","severity":1,"message":"380","line":19,"column":8,"nodeType":"370","messageId":"371","endLine":19,"endColumn":18},{"ruleId":"368","severity":1,"message":"381","line":14,"column":9,"nodeType":"370","messageId":"371","endLine":14,"endColumn":16},{"ruleId":"368","severity":1,"message":"388","line":5,"column":8,"nodeType":"370","messageId":"371","endLine":5,"endColumn":16},{"ruleId":"368","severity":1,"message":"389","line":6,"column":54,"nodeType":"370","messageId":"371","endLine":6,"endColumn":75},{"ruleId":"368","severity":1,"message":"390","line":9,"column":8,"nodeType":"370","messageId":"371","endLine":9,"endColumn":17},{"ruleId":"377","severity":1,"message":"378","line":3,"column":1,"nodeType":"379","endLine":49,"endColumn":3},{"ruleId":"368","severity":1,"message":"374","line":1,"column":52,"nodeType":"370","messageId":"371","endLine":1,"endColumn":63},{"ruleId":"377","severity":1,"message":"378","line":3,"column":1,"nodeType":"379","endLine":42,"endColumn":3},{"ruleId":"377","severity":1,"message":"378","line":10,"column":1,"nodeType":"379","endLine":57,"endColumn":3},{"ruleId":"377","severity":1,"message":"378","line":15,"column":1,"nodeType":"379","endLine":94,"endColumn":3},{"ruleId":"377","severity":1,"message":"378","line":3,"column":1,"nodeType":"379","endLine":14,"endColumn":3},{"ruleId":"377","severity":1,"message":"378","line":3,"column":1,"nodeType":"379","endLine":9,"endColumn":3},"no-native-reassign",["391"],"no-negated-in-lhs",["392"],"no-unused-vars","'SIGNOUT_FAIL' is defined but never used.","Identifier","unusedVar","'SERVER_ERROR' is defined but never used.","'res' is assigned a value but never used.","'POST_REVIEW' is defined but never used.","'review' is assigned a value but never used.","'res2' is assigned a value but never used.","import/no-anonymous-default-export","Assign arrow function to a variable before exporting as module default","ExportDefaultDeclaration","'Typography' is defined but never used.","'classes' is assigned a value but never used.","'CardActions' is defined but never used.","'Button' is defined but never used.","'bull' is assigned a value but never used.","'ButtonGroup' is defined but never used.","'user' is assigned a value but never used.","'theme' is defined but never used.","'FaceIcon' is defined but never used.","'renderCustomComponent' is defined but never used.","'ForumIcon' is defined but never used.","no-global-assign","no-unsafe-negation"]