-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintcache
1 lines (1 loc) · 24.4 KB
/
.eslintcache
1
[{"D:\\MERN\\Expense Tracker MERN\\client\\src\\index.tsx":"1","D:\\MERN\\Expense Tracker MERN\\client\\src\\App.tsx":"2","D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Header.tsx":"3","D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Info.tsx":"4","D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\TransactionHistory.tsx":"5","D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Transaction.tsx":"6","D:\\MERN\\Expense Tracker MERN\\client\\src\\Types.ts":"7","D:\\MERN\\Expense Tracker MERN\\client\\src\\containers\\Home.tsx":"8","D:\\MERN\\Expense Tracker MERN\\client\\src\\containers\\SignUpIn.tsx":"9","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\actions\\actionTypes.ts":"10","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\store.ts":"11","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\reducers\\rootReducer.ts":"12","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\reducers\\transactionReducer.ts":"13","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\reducers\\authReducer.ts":"14","D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\showAlert.ts":"15","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\actions\\authActions.ts":"16","D:\\MERN\\Expense Tracker MERN\\client\\src\\api\\authApi.ts":"17","D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\set-axios-auth-header.ts":"18","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\actions\\transactionActions.ts":"19","D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\format.ts":"20","D:\\MERN\\Expense Tracker MERN\\client\\src\\api\\transactionApi.ts":"21","D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Loader.tsx":"22","D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\axios-interceptor.ts":"23","D:\\MERN\\Expense Tracker MERN\\client\\src\\theme\\theme.ts":"24"},{"size":504,"mtime":1616566010098,"results":"25","hashOfConfig":"26"},{"size":919,"mtime":1616564249392,"results":"27","hashOfConfig":"26"},{"size":2305,"mtime":1616566764590,"results":"28","hashOfConfig":"26"},{"size":7450,"mtime":1616566756205,"results":"29","hashOfConfig":"26"},{"size":1518,"mtime":1616511222094,"results":"30","hashOfConfig":"26"},{"size":2023,"mtime":1616567883366,"results":"31","hashOfConfig":"26"},{"size":1213,"mtime":1609951896150,"results":"32","hashOfConfig":"26"},{"size":5926,"mtime":1616566586470,"results":"33","hashOfConfig":"26"},{"size":3597,"mtime":1616514125287,"results":"34","hashOfConfig":"26"},{"size":550,"mtime":1616503420066,"results":"35","hashOfConfig":"26"},{"size":453,"mtime":1616485661332,"results":"36","hashOfConfig":"26"},{"size":242,"mtime":1616429824718,"results":"37","hashOfConfig":"26"},{"size":794,"mtime":1616503440640,"results":"38","hashOfConfig":"26"},{"size":1568,"mtime":1616577321412,"results":"39","hashOfConfig":"26"},{"size":659,"mtime":1616494166264,"results":"40","hashOfConfig":"26"},{"size":1922,"mtime":1616505140056,"results":"41","hashOfConfig":"26"},{"size":373,"mtime":1616504986854,"results":"42","hashOfConfig":"26"},{"size":300,"mtime":1616577348654,"results":"43","hashOfConfig":"26"},{"size":2282,"mtime":1616504151257,"results":"44","hashOfConfig":"26"},{"size":141,"mtime":1616430212055,"results":"45","hashOfConfig":"26"},{"size":565,"mtime":1616429330046,"results":"46","hashOfConfig":"26"},{"size":636,"mtime":1616491287065,"results":"47","hashOfConfig":"26"},{"size":1424,"mtime":1616579538783,"results":"48","hashOfConfig":"26"},{"size":287,"mtime":1616566399786,"results":"49","hashOfConfig":"26"},{"filePath":"50","messages":"51","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},"gw2l57",{"filePath":"53","messages":"54","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"55","usedDeprecatedRules":"52"},{"filePath":"56","messages":"57","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"60","messages":"61","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"64"},{"filePath":"65","messages":"66","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"67","messages":"68","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"69","usedDeprecatedRules":"52"},{"filePath":"70","messages":"71","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"72","messages":"73","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"74","messages":"75","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"76","messages":"77","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"78","messages":"79","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"80","usedDeprecatedRules":"52"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"83","usedDeprecatedRules":"52"},{"filePath":"84","messages":"85","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"88","usedDeprecatedRules":"52"},{"filePath":"89","messages":"90","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"91","messages":"92","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"93","messages":"94","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"97","messages":"98","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"99","messages":"100","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},{"filePath":"101","messages":"102","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"103","messages":"104","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"52"},"D:\\MERN\\Expense Tracker MERN\\client\\src\\index.tsx",[],["105","106"],"D:\\MERN\\Expense Tracker MERN\\client\\src\\App.tsx",["107"],"import React, { useEffect } from \"react\";\r\n// Styles\r\nimport \"./App.css\";\r\n// Import Components\r\nimport Home from \"./containers/Home\";\r\nimport SignUpIn from \"./containers/SignUpIn\";\r\nimport Header from \"./components/Header\";\r\nimport Loader from \"./components/Loader\";\r\n\r\nimport axiosInterceptor from \"./utils/axios-interceptor\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { loadUser } from \"./redux/actions/authActions\";\r\nimport { RootState } from \"./Types\";\r\n\r\naxiosInterceptor();\r\n\r\nconst App = () => {\r\n const dispatch = useDispatch();\r\n const { isAuthenticated, isLoading } = useSelector(\r\n (state: RootState) => state.auth\r\n );\r\n\r\n useEffect(() => {\r\n dispatch(loadUser());\r\n }, []);\r\n return (\r\n <div className=\"App\">\r\n <Header />\r\n {isLoading ? <Loader /> : isAuthenticated ? <Home /> : <SignUpIn />}\r\n <Loader />\r\n </div>\r\n );\r\n};\r\n\r\nexport default App;\r\n","D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Header.tsx",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Info.tsx",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\TransactionHistory.tsx",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Transaction.tsx",["108"],"import React, { useEffect, useRef } from \"react\";\r\nimport { Grid, Typography, Box, useMediaQuery } from \"@material-ui/core\";\r\nimport { useTheme } from \"@material-ui/core/styles\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport { TransactionProp } from \"../Types\";\r\nimport gsap from \"gsap\";\r\nimport numberWithCommas from \"../utils/format\";\r\n\r\nconst Transaction: React.FC<TransactionProp> = ({\r\n addToRef,\r\n id,\r\n description,\r\n amount,\r\n income,\r\n handleDelete,\r\n handleEditIcon,\r\n}) => {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const theme = useTheme();\r\n const xsdown = useMediaQuery(theme.breakpoints.down('xs'))\r\n useEffect(() => {\r\n addToRef(ref);\r\n gsap.from(ref.current, {\r\n duration: 0.5,\r\n autoAlpha: 0,\r\n translateX: \"-100%\",\r\n boxShadow: 0,\r\n ease: \"circ.out\",\r\n });\r\n }, []);\r\n return (\r\n <div ref={ref}>\r\n <Grid\r\n container\r\n item\r\n xs={12}\r\n component={Box}\r\n className={`transaction-div ${income ? \"income\" : \"expense\"}`}\r\n >\r\n <Grid item xs={6} sm={3}>\r\n <Typography>\r\n <b>$</b>\r\n {numberWithCommas(amount)}\r\n </Typography>\r\n </Grid>\r\n <Grid item xs={6} sm={7}>\r\n <Typography align={xsdown ? \"right\" : \"left\"}>\r\n {description}\r\n </Typography>\r\n </Grid>\r\n <Grid container item xs={12} sm={2} justify='space-between'>\r\n <Grid item>\r\n <EditIcon\r\n cursor=\"pointer\"\r\n onClick={() => {\r\n handleEditIcon(id, description, amount, income, ref);\r\n }}\r\n />\r\n </Grid>\r\n <Grid item>\r\n <DeleteIcon\r\n cursor=\"pointer\"\r\n onClick={() => {\r\n handleDelete(id, ref);\r\n }}\r\n />\r\n </Grid>\r\n </Grid>\r\n </Grid>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Transaction;\r\n","D:\\MERN\\Expense Tracker MERN\\client\\src\\Types.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\containers\\Home.tsx",["109"],"import React, { RefObject, useEffect, useRef, useState } from \"react\";\r\n//Styles\r\nimport { Grid, makeStyles } from \"@material-ui/core\";\r\n//Components\r\nimport Info from \"../components/Info\";\r\nimport TransactionHistory from \"../components/TransactionHistory\";\r\n\r\nimport gsap from \"gsap\";\r\n\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { deleteTransaction, editTransaction, loadTransactions } from \"../redux/actions/transactionActions\";\r\nimport dayjs from \"dayjs\";\r\nimport { RootState } from \"../Types\";\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n flexGrow: 1,\r\n height: \"90vh\",\r\n overflowY: \"scroll\",\r\n },\r\n});\r\n\r\nfunction Home() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const userTransactions = useSelector((state: RootState) => state.auth.user.transactions)\r\n\r\n // States\r\n const [isEditing, setIsEditing] = useState<boolean>(false);\r\n const [value, setValue] = useState<number>(0);\r\n const [description, setDescription] = useState<string>(\"\");\r\n const [amount, setAmount] = useState<number>(0);\r\n const [editingRef, setEditingRef] = useState<any>(null);\r\n const [currentEditingId, setCurrentEditingId] = useState<any>(null)\r\n\r\n useEffect(() => {\r\n dispatch(loadTransactions(userTransactions))\r\n }, [])\r\n\r\n // ALl Refs of transaction history\r\n const allRef = useRef<HTMLDivElement[]>([]);\r\n const addToRef = (el: RefObject<HTMLDivElement>) => {\r\n if (el.current && !allRef.current.includes(el.current)) {\r\n allRef.current.push(el.current);\r\n }\r\n };\r\n\r\n // This function will delete a transaction\r\n const handleDelete = async (\r\n id: string | undefined,\r\n ObjRef: RefObject<HTMLDivElement>\r\n ) => {\r\n gsap.to(allRef.current, { duration: 0, pointerEvents: \"none\" });\r\n gsap.to(ObjRef.current, { duration: 0.3, autoAlpha: 0, ease: \"circ.out\" });\r\n\r\n dispatch(deleteTransaction(id, ObjRef, allRef));\r\n };\r\n\r\n // This function will add values and animate transaction to edit\r\n const handleEditIcon = (\r\n id: string | undefined,\r\n description: string,\r\n amount: number,\r\n income: boolean,\r\n ObjRef: RefObject<HTMLDivElement>\r\n ) => {\r\n setEditingRef(ObjRef);\r\n gsap.to(ObjRef.current, {\r\n duration: 0.5,\r\n translateX: \"-100%\",\r\n autoAlpha: 0,\r\n });\r\n gsap.to(allRef.current, { duration: 0, pointerEvents: \"none\" });\r\n if (ObjRef.current !== null) {\r\n const index = allRef.current.indexOf(ObjRef.current);\r\n gsap.to(allRef.current.slice(0, index), {\r\n duration: 0.5,\r\n translateY: \"-100%\",\r\n ease: \"circ.out\",\r\n });\r\n gsap.to(allRef.current.slice(0, index), {\r\n duration: 0,\r\n translateY: \"0\",\r\n ease: \"circ.out\",\r\n });\r\n }\r\n setValue(!income ? 1 : 0)\r\n setDescription(description);\r\n setAmount(amount);\r\n setCurrentEditingId(id)\r\n setIsEditing(true);\r\n };\r\n\r\n // This will edit the transaction data\r\n const handleEditButton = (value: number, setIsLoading: (isLoading: boolean) => void) => {\r\n setIsLoading(true)\r\n\r\n const now = dayjs().format()\r\n const trans = {\r\n description,\r\n amount,\r\n income: value ? false : true,\r\n updatedAt: now\r\n }\r\n\r\n dispatch(editTransaction(currentEditingId, trans))\r\n\r\n gsap.to(allRef.current, { duration: 0, pointerEvents: \"all\" });\r\n \r\n const index = allRef.current.indexOf(editingRef.current);\r\n gsap.to(allRef.current.slice(0, index), {\r\n duration: 0,\r\n translateY: \"0\",\r\n ease: \"circ.out\",\r\n });\r\n editingRef.current.remove()\r\n \r\n \r\n setCurrentEditingId(null)\r\n setDescription('')\r\n setAmount(0)\r\n setEditingRef(null)\r\n setIsEditing(false)\r\n setIsLoading(false)\r\n };\r\n\r\n //This will cancel the current editing\r\n const cancelEditing = () => {\r\n gsap.to(editingRef.current, {\r\n duration: 0.5,\r\n translateX: \"0\",\r\n autoAlpha: 1,\r\n });\r\n gsap.to(allRef.current, { duration: 0, pointerEvents: \"all\" });\r\n\r\n const index = allRef.current.indexOf(editingRef.current);\r\n gsap.to(allRef.current.slice(0, index), {\r\n duration: 0.5,\r\n translateY: \"0\",\r\n ease: \"circ.out\",\r\n });\r\n setIsEditing(false)\r\n setDescription('')\r\n setAmount(0)\r\n setEditingRef(null)\r\n };\r\n\r\n // Refs to animate components after loading\r\n const InfoRef = useRef<HTMLDivElement>(null);\r\n const TransactionHistoryRef = useRef<HTMLDivElement>(null);\r\n\r\n // Use Effect to animate components\r\n useEffect(() => {\r\n gsap.from(InfoRef.current, {\r\n duration: 2,\r\n autoAlpha: 0,\r\n translateX: \"-25%\",\r\n ease: \"circ.out\",\r\n });\r\n gsap.from(TransactionHistoryRef.current, {\r\n duration: 2,\r\n autoAlpha: 0,\r\n translateY: \"25%\",\r\n ease: \"circ.out\",\r\n });\r\n }, []);\r\n\r\n return (\r\n <div className=\"Home\">\r\n <Grid\r\n className={classes.root}\r\n container\r\n alignItems=\"flex-start\"\r\n justify=\"space-around\"\r\n >\r\n <Grid container item className=\"balance-container\" xs={12} lg={7} justify='center'>\r\n <Info\r\n isEditing={isEditing}\r\n setIsEditing={setIsEditing}\r\n value={value}\r\n setValue={setValue}\r\n description={description}\r\n setDescription={setDescription}\r\n amount={amount}\r\n cancelEditing={cancelEditing}\r\n setAmount={setAmount}\r\n handleEditButton={handleEditButton}\r\n InfoRef={InfoRef}\r\n allRef={allRef}\r\n />\r\n </Grid>\r\n <Grid container item xs={12} lg={5} justify='center'>\r\n <TransactionHistory\r\n addToRef={addToRef}\r\n handleDelete={handleDelete}\r\n handleEditIcon={handleEditIcon}\r\n TransactionHistoryRef={TransactionHistoryRef}\r\n />\r\n </Grid>\r\n </Grid>\r\n </div>\r\n );\r\n}\r\n\r\nexport default Home;\r\n","D:\\MERN\\Expense Tracker MERN\\client\\src\\containers\\SignUpIn.tsx",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\actions\\actionTypes.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\store.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\reducers\\rootReducer.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\reducers\\transactionReducer.ts",["110"],"import { TransactionActionType, TransactionType } from \"../../Types\";\r\nimport * as actionTypes from '../actions/actionTypes'\r\n\r\nexport default (state: TransactionType[] = [], action: TransactionActionType) => {\r\n switch (action.type) {\r\n case actionTypes.LOAD_TRANSACTION:\r\n return action.payload;\r\n case actionTypes.CREATE_TRANSACTION:\r\n return [...state, action.payload]\r\n case actionTypes.DELETE_TRANSACTION:\r\n const transactions = state.filter((transaction: TransactionType) => {\r\n return transaction._id !== action.payload\r\n })\r\n return transactions\r\n case actionTypes.EDIT_TRANSACTION:\r\n return [...state, action.payload]\r\n default:\r\n return state;\r\n }\r\n}","D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\reducers\\authReducer.ts",["111"],"import setAxiosAuthHeader from '../../utils/set-axios-auth-header';\r\nimport * as actionTypes from '../actions/actionTypes';\r\n\r\nconst initialState = {\r\n token: localStorage.getItem('token'),\r\n isAuthenticated: false,\r\n isLoading: false,\r\n user: null,\r\n}\r\n\r\nexport default (state = initialState, action: any) => {\r\n switch (action.type) {\r\n case actionTypes.USER_LOADING:\r\n return {\r\n ...state,\r\n isLoading: true,\r\n }\r\n case actionTypes.USER_LOADED:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n isAuthenticated: true,\r\n user: action.payload.user\r\n }\r\n case actionTypes.AUTH_ERROR:\r\n case actionTypes.LOGIN_FAIL:\r\n case actionTypes.SIGNUP_FAIL:\r\n case actionTypes.LOGOUT:\r\n localStorage.removeItem('token')\r\n setAxiosAuthHeader()\r\n return {\r\n isLoading: false,\r\n token: null,\r\n isAuthenticated: false,\r\n user: null,\r\n }\r\n case actionTypes.LOGIN_SUCCESS:\r\n case actionTypes.SIGNUP_SUCCESS:\r\n localStorage.setItem('token', action.payload.token)\r\n setAxiosAuthHeader(action.payload.token)\r\n return {\r\n isLoading: false,\r\n token: action.payload.token,\r\n isAuthenticated: true,\r\n user: action.payload.user\r\n }\r\n default:\r\n return state\r\n }\r\n}","D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\showAlert.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\actions\\authActions.ts",["112"],"import * as actionTypes from './actionTypes';\r\nimport * as authApi from '../../api/authApi';\r\nimport { AuthBodyType } from '../../Types';\r\nimport setAxiosAuthHeader from '../../utils/set-axios-auth-header';\r\nimport showAlert from '../../utils/showAlert';\r\n\r\nexport const loadUser = () => async (dispatch: Function, getState: Function) => {\r\n dispatch({ type: actionTypes.USER_LOADING })\r\n\r\n const token = getState().auth.token\r\n\r\n if (token) {\r\n setAxiosAuthHeader(token)\r\n } else {\r\n return dispatch({ type: actionTypes.AUTH_ERROR })\r\n }\r\n\r\n try {\r\n const data = await authApi.getUser()\r\n\r\n dispatch({ type: actionTypes.USER_LOADED, payload: data })\r\n } catch (err) {\r\n dispatch({ type: actionTypes.AUTH_ERROR })\r\n }\r\n\r\n}\r\n\r\nexport const login = ({ username, password }: AuthBodyType) => async (dispatch: Function) => {\r\n const body: AuthBodyType = {\r\n username,\r\n password\r\n }\r\n try {\r\n const data = await authApi.loginApi(body)\r\n \r\n dispatch({ type: actionTypes.LOGIN_SUCCESS, payload: data })\r\n } catch (err) {\r\n dispatch({ type: actionTypes.LOGIN_FAIL })\r\n }\r\n}\r\n\r\nexport const signup = ({ username, password }: AuthBodyType) => async (dispatch: Function) => {\r\n const body: AuthBodyType = {\r\n username,\r\n password\r\n }\r\n try {\r\n const data = await authApi.signupApi(body)\r\n\r\n dispatch({ type: actionTypes.SIGNUP_SUCCESS, payload: data })\r\n } catch (err) {\r\n dispatch({ type: actionTypes.SIGNUP_FAIL })\r\n }\r\n}\r\n\r\nexport const deleteUser = (id: string) => async (dispatch: Function) => {\r\n try {\r\n const data = await authApi.deleteUserApi(id)\r\n\r\n dispatch(logout())\r\n } catch (err) {\r\n showAlert('Failed to delete user', 'error')\r\n }\r\n}\r\n\r\nexport const logout = () => {\r\n return {\r\n type: actionTypes.LOGOUT\r\n }\r\n}","D:\\MERN\\Expense Tracker MERN\\client\\src\\api\\authApi.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\set-axios-auth-header.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\redux\\actions\\transactionActions.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\format.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\api\\transactionApi.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\components\\Loader.tsx",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\utils\\axios-interceptor.ts",[],"D:\\MERN\\Expense Tracker MERN\\client\\src\\theme\\theme.ts",[],{"ruleId":"113","replacedBy":"114"},{"ruleId":"115","replacedBy":"116"},{"ruleId":"117","severity":1,"message":"118","line":25,"column":6,"nodeType":"119","endLine":25,"endColumn":8,"suggestions":"120"},{"ruleId":"117","severity":1,"message":"121","line":31,"column":6,"nodeType":"119","endLine":31,"endColumn":8,"suggestions":"122"},{"ruleId":"117","severity":1,"message":"123","line":39,"column":6,"nodeType":"119","endLine":39,"endColumn":8,"suggestions":"124"},{"ruleId":"125","severity":1,"message":"126","line":4,"column":1,"nodeType":"127","endLine":20,"endColumn":2},{"ruleId":"125","severity":1,"message":"126","line":11,"column":1,"nodeType":"127","endLine":50,"endColumn":2},{"ruleId":"128","severity":1,"message":"129","line":58,"column":15,"nodeType":"130","messageId":"131","endLine":58,"endColumn":19},"no-native-reassign",["132"],"no-negated-in-lhs",["133"],"react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'dispatch'. Either include it or remove the dependency array.","ArrayExpression",["134"],"React Hook useEffect has a missing dependency: 'addToRef'. Either include it or remove the dependency array. If 'addToRef' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["135"],"React Hook useEffect has missing dependencies: 'dispatch' and 'userTransactions'. Either include them or remove the dependency array.",["136"],"import/no-anonymous-default-export","Assign arrow function to a variable before exporting as module default","ExportDefaultDeclaration","@typescript-eslint/no-unused-vars","'data' is assigned a value but never used.","Identifier","unusedVar","no-global-assign","no-unsafe-negation",{"desc":"137","fix":"138"},{"desc":"139","fix":"140"},{"desc":"141","fix":"142"},"Update the dependencies array to be: [dispatch]",{"range":"143","text":"144"},"Update the dependencies array to be: [addToRef]",{"range":"145","text":"146"},"Update the dependencies array to be: [dispatch, userTransactions]",{"range":"147","text":"148"},[717,719],"[dispatch]",[896,898],"[addToRef]",[1277,1279],"[dispatch, userTransactions]"]