-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.eslintcache
1 lines (1 loc) · 58.3 KB
/
.eslintcache
1
[{"/home/dell/Desktop/Learning/JWT/client/src/index.tsx":"1","/home/dell/Desktop/Learning/JWT/client/src/generated/graphql.tsx":"2","/home/dell/Desktop/Learning/JWT/client/src/Routes.tsx":"3","/home/dell/Desktop/Learning/JWT/client/src/pages/Bye.tsx":"4","/home/dell/Desktop/Learning/JWT/client/src/pages/Header.tsx":"5","/home/dell/Desktop/Learning/JWT/client/src/App.tsx":"6","/home/dell/Desktop/Learning/JWT/client/src/pages/Header/Header.tsx":"7","/home/dell/Desktop/Learning/JWT/client/src/pages/Register/Register.tsx":"8","/home/dell/Desktop/Learning/JWT/client/src/pages/Login/Login.tsx":"9","/home/dell/Desktop/Learning/JWT/client/src/accessToken.ts":"10","/home/dell/Desktop/Learning/JWT/client/src/pages/Cart/Cart.tsx":"11","/home/dell/Desktop/Learning/JWT/client/src/redux/reducers/cartReducer.ts":"12","/home/dell/Desktop/Learning/JWT/client/src/redux/types/cart.ts":"13","/home/dell/Desktop/Learning/JWT/client/src/redux/reducers/index.ts":"14","/home/dell/Desktop/Learning/JWT/client/src/redux/store/index.tsx":"15","/home/dell/Desktop/Learning/JWT/client/src/redux/actions/carts.ts":"16","/home/dell/Desktop/Learning/JWT/client/src/pages/Home/Home.tsx":"17","/home/dell/Desktop/Learning/JWT/client/src/pages/Items/Items.tsx":"18","/home/dell/Desktop/Learning/JWT/client/src/pages/Items/ItemDetails.tsx":"19","/home/dell/Desktop/Learning/JWT/client/src/pages/Items/ItemsList.tsx":"20","/home/dell/Desktop/Learning/JWT/client/src/pages/Items/ALlitem.tsx":"21","/home/dell/Desktop/Learning/JWT/client/src/components/Breadcrumb/Breadcrumb.tsx":"22","/home/dell/Desktop/Learning/JWT/client/src/util/index.ts":"23","/home/dell/Desktop/Learning/JWT/client/src/components/CustomCard/CustomCard.tsx":"24","/home/dell/Desktop/Learning/JWT/client/src/components/ListView/ListView.tsx":"25"},{"size":2584,"mtime":1613316576726,"results":"26","hashOfConfig":"27"},{"size":15726,"mtime":1612855942125,"results":"28","hashOfConfig":"27"},{"size":1133,"mtime":1613421516691,"results":"29","hashOfConfig":"27"},{"size":519,"mtime":1611479125809,"results":"30","hashOfConfig":"27"},{"size":1387,"mtime":1611851727305,"results":"31","hashOfConfig":"27"},{"size":787,"mtime":1613593898739,"results":"32","hashOfConfig":"27"},{"size":10748,"mtime":1613337895963,"results":"33","hashOfConfig":"27"},{"size":3860,"mtime":1613594241256,"results":"34","hashOfConfig":"27"},{"size":3479,"mtime":1613228887840,"results":"35","hashOfConfig":"27"},{"size":292,"mtime":1612090362982,"results":"36","hashOfConfig":"27"},{"size":981,"mtime":1612121091935,"results":"37","hashOfConfig":"27"},{"size":630,"mtime":1612121416769,"results":"38","hashOfConfig":"27"},{"size":488,"mtime":1612096562625,"results":"39","hashOfConfig":"27"},{"size":211,"mtime":1612121200239,"results":"40","hashOfConfig":"27"},{"size":227,"mtime":1612119901451,"results":"41","hashOfConfig":"27"},{"size":499,"mtime":1612120493986,"results":"42","hashOfConfig":"27"},{"size":4129,"mtime":1613337230588,"results":"43","hashOfConfig":"27"},{"size":736,"mtime":1613228112744,"results":"44","hashOfConfig":"27"},{"size":8662,"mtime":1613514228182,"results":"45","hashOfConfig":"27"},{"size":18977,"mtime":1613513635302,"results":"46","hashOfConfig":"27"},{"size":2924,"mtime":1613597711450,"results":"47","hashOfConfig":"27"},{"size":1523,"mtime":1613332721657,"results":"48","hashOfConfig":"27"},{"size":451,"mtime":1613335410767,"results":"49","hashOfConfig":"27"},{"size":2375,"mtime":1613596668517,"results":"50","hashOfConfig":"27"},{"size":1763,"mtime":1613597208825,"results":"51","hashOfConfig":"27"},{"filePath":"52","messages":"53","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"tem2du",{"filePath":"54","messages":"55","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"56"},{"filePath":"57","messages":"58","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"59"},{"filePath":"60","messages":"61","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"62","usedDeprecatedRules":"63"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"66","messages":"67","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"68","messages":"69","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"70","usedDeprecatedRules":"59"},{"filePath":"71","messages":"72","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"73","messages":"74","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"75","usedDeprecatedRules":"59"},{"filePath":"76","messages":"77","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"56"},{"filePath":"78","messages":"79","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"80","usedDeprecatedRules":"59"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"56"},{"filePath":"83","messages":"84","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"86","messages":"87","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"88","messages":"89","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"63"},{"filePath":"90","messages":"91","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"85"},{"filePath":"92","messages":"93","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"94"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"97","usedDeprecatedRules":"56"},{"filePath":"98","messages":"99","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"100","usedDeprecatedRules":"85"},{"filePath":"101","messages":"102","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"103","usedDeprecatedRules":"56"},{"filePath":"104","messages":"105","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"106","messages":"107","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"108","messages":"109","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"110","messages":"111","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/dell/Desktop/Learning/JWT/client/src/index.tsx",[],"/home/dell/Desktop/Learning/JWT/client/src/generated/graphql.tsx",[],["114","115"],"/home/dell/Desktop/Learning/JWT/client/src/Routes.tsx",[],["116","117"],"/home/dell/Desktop/Learning/JWT/client/src/pages/Bye.tsx",["118"],"import React from 'react'\nimport { useByeQuery } from 'src/generated/graphql';\n\ninterface ByeProps {\n\n}\n\nexport const Bye: React.FC<ByeProps> = ({ }) => {\n const { data, loading, error } = useByeQuery({ fetchPolicy: 'network-only' });\n if (loading) {\n return <div>loading...</div>\n }\n if (error) {\n console.log('error', error)\n return <div>err</div>\n }\n if (!data) {\n return <div>no data</div>\n }\n return (\n <div>\n {data.bye}\n </div>\n );\n}",["119","120"],"/home/dell/Desktop/Learning/JWT/client/src/pages/Header.tsx",["121"],"/home/dell/Desktop/Learning/JWT/client/src/App.tsx",["122","123","124","125"],"/home/dell/Desktop/Learning/JWT/client/src/pages/Header/Header.tsx",["126","127","128","129"],"import React, { useEffect, useState } from 'react';\nimport { Avatar, Dropdown, Drawer, message, Menu, Row, Col, Input, Button } from 'antd';\nimport './index.scss';\nimport \"antd/dist/antd.css\";\nimport { UserOutlined, NotificationOutlined, StarOutlined, SearchOutlined, MenuOutlined, ArrowLeftOutlined } from '@ant-design/icons';\nimport { setAccessToken } from 'src/accessToken';\nimport { useLogoutUserMutation, useUserDetailsQuery } from 'src/generated/graphql';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport { getHeaderText } from 'src/util';\n\ninterface HeaderProps {\n}\n\ninterface MenuClickEventHandlerProps {\n key: React.Key;\n keyPath: React.Key[];\n item: React.ReactInstance;\n domEvent: React.MouseEvent<HTMLElement>;\n}\n\nexport const Header: React.FC<HeaderProps> = () => {\n const { data, loading } = useUserDetailsQuery()\n const [logoutUser, { client }] = useLogoutUserMutation()\n const [isVisible, setVisible] = useState<boolean | undefined>(false);\n const history = useHistory();\n const { pathname } = useLocation();\n const rootSubmenuKeys: string[] = ['1', '2', '3'];\n const [drawerOpenKeys, setdrawerOpenKeys] = useState<string[]>([]);\n\n\n // const [currentWindow, setCurrentWindow] = useState(window.innerWidth);\n\n // useEffect(() => {\n // window.addEventListener(\"resize\", (ev) => {\n // setCurrentWindow(window.innerWidth)\n // })\n // }, []);\n\n if (loading) {\n return <></>\n }\n const showDrawer = (event: React.MouseEvent<HTMLSpanElement, MouseEvent>): void => {\n setVisible(true);\n };\n\n const onClose = (e?: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement | HTMLButtonElement>): void => {\n setVisible(false);\n };\n\n const logOutUser = (e: any) => {\n return logoutUser().then(res => {\n setAccessToken('');\n client.resetStore();\n history.push('./');\n })\n }\n\n const handleOpenChange = (keys: any): void => {\n const latestOpenKey: string = keys.find((key: string) => drawerOpenKeys.indexOf(key) === -1);\n if (rootSubmenuKeys.indexOf(latestOpenKey) === -1) {\n setdrawerOpenKeys(keys);\n } else {\n setdrawerOpenKeys(latestOpenKey ? [latestOpenKey] : []);\n }\n };\n\n const onDrawerOptionClick = (key: MenuClickEventHandlerProps): void => {\n onClick(key)\n onClose()\n }\n\n const onClick = (key: MenuClickEventHandlerProps): void => {\n message.info(`Click on item ${key.key}`);\n };\n\n const onClickCart = (event: React.MouseEvent<HTMLSpanElement, MouseEvent>): void => {\n history.push('/cart')\n }\n\n const onSearch = (value: string, event?: React.ChangeEvent<HTMLInputElement> | React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLInputElement>): void => {\n console.log(value)\n }\n const onClickNotification = (event: React.MouseEvent<HTMLSpanElement, MouseEvent>): void => {\n console.log('onClickNotification')\n }\n\n const drawerTitile = <>\n <div className=\"header-drawer-title\">\n Profile\n </div>\n </>;\n\n const menuOption = <>\n <Menu.SubMenu key=\"1\" title=\"Topwear \">\n <Menu.Item key=\"T-Shirts\">T-Shirts</Menu.Item>\n <Menu.Item key=\"Casual Shirts\">Casual Shirts</Menu.Item>\n <Menu.Item key=\"Formal Shirts\">Formal Shirts</Menu.Item>\n <Menu.Item key=\"Sweatshirts\">Sweatshirts</Menu.Item>\n <Menu.Item key=\"Sweaters\">Sweaters</Menu.Item>\n <Menu.Item key=\"Jackets\">Jackets</Menu.Item>\n </Menu.SubMenu>\n <Menu.SubMenu key=\"2\" title=\"Bottomwear \">\n <Menu.Item key=\"Jeans\" >Jeans</Menu.Item>\n <Menu.Item key=\"Casual Trousers\" >Casual Trousers</Menu.Item>\n <Menu.Item key=\"Formal Trousers\" >Formal Trousers</Menu.Item>\n <Menu.Item key=\"Track Pants & Joggers\" >Track Pants & Joggers</Menu.Item>\n </Menu.SubMenu>\n <Menu.SubMenu key=\"3\" title=\"Footwear \">\n <Menu.Item key=\"Sports Shoes\">Sports Shoes</Menu.Item>\n <Menu.Item key=\"Casual Shoes\">Casual Shoes</Menu.Item>\n <Menu.Item key=\"Formal Shoes\">Formal Shoes</Menu.Item>\n <Menu.Item key=\"Sneakers\">Sneakers</Menu.Item>\n <Menu.Item key=\"Sandals & Floaters\">Sandals & Floaters</Menu.Item>\n </Menu.SubMenu>\n </>\n\n let userMenuOption: any = null;\n\n if (loading || !data || !data.getUserDetails) {\n userMenuOption = <>\n <Menu.Item key=\"login\" ><Link to=\"/login\">Log in</Link></Menu.Item>\n <Menu.Item key=\"signin\"><Link to=\"/register\">register</Link></Menu.Item>\n </>;\n } else {\n userMenuOption = <>\n <Menu.Item key=\"login\" >{data.getUserDetails.email}</Menu.Item>\n <Menu.Item key=\"Casuals\">Profile</Menu.Item>\n <Menu.Item key=\"logout\"><Button style={{ width: \"100%\" }} onClick={e => logOutUser(e)}>log out</Button></Menu.Item>\n </>;\n }\n\n\n const handleBack = (): void => {\n history.goBack();\n }\n const headerIcon: JSX.Element = pathname === '/' ? <MenuOutlined onClick={showDrawer} /> : <ArrowLeftOutlined onClick={handleBack} />\n const headerText: string = getHeaderText(pathname);\n\n return (\n <>\n <Row className=\"header\" align=\"middle\">\n <Col className=\"gutter-row\" xs={{ span: 10, offset: 0 }} sm={{ span: 10, offset: 4 }} md={{ span: 6, offset: 2 }} lg={{ span: 6, offset: 2 }} xl={{ span: 6, offset: 2 }} xxl={{ span: 6, offset: 2 }} >\n <Row>\n <Col xs={{ span: 3, offset: 3 }} sm={{ span: 0, offset: 0 }} md={{ span: 0, offset: 0 }} lg={{ span: 0, offset: 0 }} xl={{ span: 0, offset: 0 }}>\n {headerIcon}\n </Col>\n <Col xs={{ span: 12, offset: 2 }} sm={{ span: 0, offset: 0 }} md={{ span: 0, offset: 0 }} lg={{ span: 0, offset: 0 }} xl={{ span: 0, offset: 0 }}>\n <div>{headerText}</div>\n </Col>\n <Col xs={{ span: 0, offset: 2 }} sm={{ span: 7, offset: 0 }} md={{ span: 7, offset: 0 }} lg={{ span: 8, offset: 0 }} xl={{ span: 8, offset: 0 }}>\n <div>Fashion</div>\n </Col>\n <Col xs={{ span: 0, offset: 0 }} sm={{ span: 3, offset: 2 }} md={{ span: 3, offset: 2 }} lg={{ span: 2, offset: 3 }} xl={{ span: 2, offset: 3 }}>\n <Dropdown overlay={<Menu onClick={onClick}>{menuOption}</Menu>}>\n <a className=\"ant-dropdown-link\" onClick={e => e.preventDefault()}>\n Men\n </a>\n </Dropdown>\n </Col>\n <Col xs={{ span: 0, offset: 0 }} sm={{ span: 3, offset: 2 }} md={{ span: 3, offset: 2 }} lg={{ span: 2, offset: 3 }} xl={{ span: 2, offset: 3 }}>\n <Dropdown overlay={<Menu onClick={onClick}>{menuOption}</Menu>}>\n <a className=\"ant-dropdown-link\" onClick={e => e.preventDefault()}>\n Women\n </a>\n </Dropdown>\n </Col>\n <Col xs={{ span: 0, offset: 0 }} sm={{ span: 3, offset: 4 }} md={{ span: 3, offset: 4 }} lg={{ span: 2, offset: 4 }} xl={{ span: 2, offset: 4 }}>\n <Dropdown overlay={<Menu onClick={onClick}>{menuOption}</Menu>}>\n <a className=\"ant-dropdown-link\" onClick={e => e.preventDefault()}>\n Kids\n </a>\n </Dropdown>\n </Col>\n </Row>\n </Col>\n <Col className=\"gutter-row header-search-box\" xs={{ span: 0, offset: 0 }} sm={{ span: 0, offset: 0 }} md={{ span: 8, offset: 2 }} lg={{ span: 8, offset: 3 }} xl={{ span: 8, offset: 3 }} xxl={{ span: 8, offset: 4 }}>\n <Input.Search allowClear placeholder=\"Search\" onSearch={onSearch} />\n </Col>\n <Col className=\"gutter-row\" xs={{ span: 10, offset: 4 }} sm={{ span: 4, offset: 4 }} md={{ span: 4, offset: 1 }} lg={{ span: 4, offset: 1 }} xl={{ span: 4, offset: 1 }} xxl={{ span: 3, offset: 1 }} >\n <Row>\n <Col xs={{ span: 6, offset: 5 }} sm={{ span: 6, offset: 0 }} md={{ span: 0, offset: 0 }} lg={{ span: 0, offset: 0 }} xl={{ span: 0, offset: 0 }} xxl={{ span: 0, offset: 0 }} >\n <Avatar shape=\"square\" className=\"header-icon\" icon={<SearchOutlined onClick={onClickNotification} />} />\n\n </Col>\n <Col xs={{ span: 0, offset: 0 }} sm={{ span: 0, offset: 0 }} md={{ span: 6, offset: 2 }} lg={{ span: 4, offset: 2 }} xl={{ span: 4, offset: 3 }} xxl={{ span: 4, offset: 2 }} >\n <Dropdown placement=\"bottomCenter\" overlay={<Menu style={{ width: '200px' }} >{userMenuOption}</Menu>}>\n <Avatar shape=\"circle\" className=\"header-icon\" icon={<UserOutlined />} />\n </Dropdown>\n </Col>\n <Col xs={{ span: 6, offset: 0 }} sm={{ span: 6, offset: 3 }} md={{ span: 6, offset: 2 }} lg={{ span: 4, offset: 2 }} xl={{ span: 4, offset: 3 }} xxl={{ span: 4, offset: 2 }} >\n <Avatar shape=\"square\" className=\"header-icon\" icon={<StarOutlined onClick={onClickCart} />} />\n </Col>\n <Col xs={{ span: 6, offset: 0 }} sm={{ span: 6, offset: 3 }} md={{ span: 6, offset: 2 }} lg={{ span: 4, offset: 2 }} xl={{ span: 4, offset: 4 }} xxl={{ span: 4, offset: 2 }} >\n <Avatar shape=\"square\" className=\"header-icon\" icon={<NotificationOutlined onClick={onClickNotification} />} />\n </Col>\n </Row>\n </Col>\n </Row>\n <Drawer\n title={drawerTitile}\n placement={\"left\"}\n closable={false}\n onClose={onClose}\n visible={isVisible}\n bodyStyle={{ padding: 0 }}\n headerStyle={{ background: \"lightblue\" }}\n >\n <Menu mode=\"inline\" onClick={onDrawerOptionClick} openKeys={drawerOpenKeys} onOpenChange={handleOpenChange} >\n {menuOption}\n </Menu>\n </Drawer>\n </>\n );\n};","/home/dell/Desktop/Learning/JWT/client/src/pages/Register/Register.tsx",["130"],"/home/dell/Desktop/Learning/JWT/client/src/pages/Login/Login.tsx",["131"],"import React, { useEffect } from 'react'\nimport { RouteComponentProps } from 'react-router-dom';\nimport { getAccessToken, setAccessToken } from 'src/accessToken';\nimport { useLoginUserMutation, UserDetailsDocument, UserDetailsQuery } from 'src/generated/graphql';\nimport { Form, Input, Button, Card } from 'antd';\nimport { UserOutlined, LockOutlined } from '@ant-design/icons';\nimport './index.scss';\n\n\nexport const Login: React.FC<RouteComponentProps> = ({ history }) => {\n useEffect(() => {\n const accessToken = getAccessToken();\n if (accessToken !== '') {\n history.replace('./');\n }\n }, [])\n const [login] = useLoginUserMutation()\n const [form] = Form.useForm();\n const onFinish = (values: any) => {\n return login({\n variables: {\n email: values.email,\n password: values.password\n },\n update: (store, { data }) => {\n if (data) {\n store.writeQuery<UserDetailsQuery>({\n query: UserDetailsDocument,\n data: {\n __typename: \"Query\",\n getUserDetails: data.loginUser.user\n }\n })\n }\n console.log('unbale to update user cache')\n }\n }).then(res => {\n if (!res || res.errors || !res.data) {\n console.log('err', res.errors)\n return\n }\n console.log('res', res)\n setAccessToken(res.data.loginUser.accessToken)\n history.push(\"/\");\n }).catch(err => {\n console.log('err', err)\n })\n\n }\n const signUp = (e: any) => {\n history.push(\"/register\");\n }\n\n return (\n <div className=\"login\">\n <Card className=\"login-card\">\n <Form\n form={form}\n name=\"normal_login\"\n className=\"login-form\"\n initialValues={{ email: '', password: '' }}\n onFinish={onFinish}\n >\n <Form.Item\n name=\"email\"\n rules={[{ type: 'email', required: true, message: 'Please input your Email!' }]}\n >\n <Input placeholder=\"Email\" prefix={<UserOutlined className=\"site-form-item-icon\" />} />\n </Form.Item>\n\n <Form.Item\n name=\"password\"\n rules={[{ required: true, message: 'Please input your Password!' }]}\n >\n <Input\n prefix={<LockOutlined className=\"site-form-item-icon\" />}\n type=\"password\"\n placeholder=\"Password\"\n />\n </Form.Item>\n\n <Form.Item>\n <Button type=\"primary\" htmlType=\"submit\" className=\"login-form-button\">\n Log in\n </Button>\n </Form.Item>\n <Form.Item>\n <Button type=\"dashed\" className=\"login-form-button\" onClick={e => signUp(e)}>\n Sign up\n </Button>\n </Form.Item>\n </Form>\n </Card>\n </div>\n );\n} ","/home/dell/Desktop/Learning/JWT/client/src/accessToken.ts",[],"/home/dell/Desktop/Learning/JWT/client/src/pages/Cart/Cart.tsx",["132"],"import React from 'react'\nimport { useSelector, useDispatch } from 'react-redux';\nimport { RootState } from 'src/redux/reducers';\nimport { CartState } from 'src/redux/types/cart';\nimport { addItem } from 'src/redux/actions/carts';\n\ninterface CartProps {\n\n}\n\nexport const Cart: React.FC<CartProps> = ({ }) => {\n const items = useSelector<RootState, CartState['items']>(\n (state) => state.cart.items\n );\n console.log(items)\n const dispatch = useDispatch();\n const addNewItem = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n let item = {\n id: \"123\",\n name: 'new',\n quantity: 2,\n price: 100,\n timestamp: 3\n }\n dispatch(addItem(item))\n }\n return (\n <div>\n cart details\n {items.map(item => {\n return <p>{item.id}</p>\n })}\n\n <button onClick={e => addNewItem(e)}>add new</button>\n </div>\n );\n}","/home/dell/Desktop/Learning/JWT/client/src/redux/reducers/cartReducer.ts",[],"/home/dell/Desktop/Learning/JWT/client/src/redux/types/cart.ts",[],["133","134"],"/home/dell/Desktop/Learning/JWT/client/src/redux/reducers/index.ts",[],"/home/dell/Desktop/Learning/JWT/client/src/redux/store/index.tsx",[],"/home/dell/Desktop/Learning/JWT/client/src/redux/actions/carts.ts",[],"/home/dell/Desktop/Learning/JWT/client/src/pages/Home/Home.tsx",[],["135","136"],"/home/dell/Desktop/Learning/JWT/client/src/pages/Items/Items.tsx",["137","138","139","140"],"import React, { useEffect, useState } from 'react';\nimport { Redirect, Route, Switch, useRouteMatch } from 'react-router-dom';\nimport { ALlitem } from './ALlitem';\nimport { ItemDetails } from './ItemDetails';\nimport { ItemsList } from './ItemsList';\n\ninterface ItemsProps {\n\n}\n\nexport const Items: React.FC<ItemsProps> = ({ }) => {\n const { path, url } = useRouteMatch();\n return (\n <Switch>\n <Route exact path={`${path}/default`} component={ALlitem} />\n <Route exact path={`${path}/:category/:id`} component={ItemDetails} />\n <Route exact path={`${path}/:category`} component={ItemsList} />\n <Redirect exact from={`${path}/`} to={`${path}/default`} />\n </Switch>\n );\n}","/home/dell/Desktop/Learning/JWT/client/src/pages/Items/ItemDetails.tsx",["141"],"import { Col, Row, Carousel, Divider, Radio, RadioChangeEvent, Button, Affix } from 'antd';\nimport React from 'react';\nimport { NavBreadcrumb } from 'src/components/Breadcrumb/Breadcrumb';\nimport './index.scss';\nimport { CommentOutlined, ProfileOutlined, ShoppingCartOutlined, HeartOutlined } from '@ant-design/icons';\n\ninterface ItemDetailsProps {\n\n}\nconst tempData2 = [\n { number: 1 },\n { number: 1 },\n { number: 1 },\n { number: 1 },\n { number: 1 }\n]\nconst sizeArray = ['42', '44', '46', '48']\n\n\n\nconst itemData = {\n details: \"Black and grey checked casual shirt, has a spread collar, long roll - up sleeves, button placket, curved hem and 1 patch pocket\",\n size: \"The model(height 6') is wearing a size 40\",\n fit: \"Slim fit\",\n materials: \"Cotton\",\n care: \"Machine - wash\"\n}\n\nexport const ItemDetails: React.FC<ItemDetailsProps> = ({ }) => {\n const onChange = (e: RadioChangeEvent) => {\n console.log(e)\n\n }\n return (\n <div className=\"item-details\">\n <div className=\"item-details-breadcrumb\">\n <NavBreadcrumb />\n </div>\n <div className=\"item-details-content\">\n <Row className=\"item-details-content-row\" gutter={24} style={{ margin: 0 }}>\n <Col className=\"item-details-content-col1\" xs={24} sm={24} md={12} lg={14} xl={14} xxl={14}>\n <div className=\"item-details-content-preview\">\n <Carousel className=\"item-details-content-preview-carousel\">\n {tempData2.map(item => {\n return <div className=\"item-details-content-preview-carousel-image\">\n <h3>{item.number}</h3>\n </div>\n })}\n </Carousel>\n </div>\n </Col>\n <Col className=\"item-details-content-col2\" xs={24} sm={24} md={12} lg={10} xl={10} xxl={10}>\n <div className=\"item-details-content-description\">\n <div className=\"item-details-content-description-info\">\n <div className=\"item-details-content-description-info-head\">\n <h1 className=\"item-details-content-description-info-head-title\">HIGHLANDER</h1>\n <h1 className=\"item-details-content-description-info-head-name\">Highlander Black Solid Jeans </h1>\n </div>\n <div className=\"item-details-content-description-info-review\">\n <div className=\"item-details-content-description-info-review-container\">\n <CommentOutlined />\n <div className=\"item-details-content-description-info-review-text\">\n 27000 Review\n </div>\n </div>\n </div>\n <Divider />\n <div className=\"item-details-content-description-info-price\">\n <p className=\"item-details-content-description-info-price-amount\" >\n Rs. 500\n </p>\n <p className=\"item-details-content-description-info-price-text\">\n inclusive of all taxes\n </p>\n </div>\n </div>\n </div>\n <div className=\"item-details-content-size-container\">\n <div className=\"item-details-content-size-container-title\">\n <h3>\n Select Size\n </h3>\n <span>\n <button>\n View Chart\n </button>\n </span>\n </div>\n <div className=\"item-details-content-size-container-options\" >\n <Radio.Group onChange={onChange}>\n {sizeArray.map((item) => {\n return <Radio.Button value={item}>{item}</Radio.Button>\n })}\n </Radio.Group>\n </div>\n </div>\n <Affix offsetBottom={12}>\n <div className=\"item-details-content-action\">\n <Row gutter={24}>\n <Col className=\"item-details-content-action-cart\"\n xs={{ span: 13, offset: 1, order: 2 }} sm={{ span: 12, offset: 0, order: 2 }} md={{ span: 10, offset: 0, order: 1 }} lg={{ span: 10, offset: 0, order: 1 }} xl={{ span: 10, offset: 0, order: 1 }} xxl={{ span: 10, offset: 0, order: 1 }}>\n <Button onClick={e => { e.preventDefault() }} className=\"item-details-content-action-cart-button\" type=\"primary\" icon={<ShoppingCartOutlined />}>\n ADD TO CART\n </Button>\n </Col>\n <Col className=\"item-details-content-action-star\"\n xs={{ span: 10, offset: 0, order: 1 }} sm={{ span: 12, offset: 0, order: 1 }} md={{ span: 8, offset: 2, order: 2 }} lg={{ span: 8, offset: 2, order: 2 }} xl={{ span: 8, offset: 2, order: 2 }} xxl={{ span: 8, offset: 2, order: 2 }}>\n <Button onClick={e => { e.preventDefault() }} type=\"default\" icon={<HeartOutlined />}>\n WISHLIST\n </Button>\n </Col>\n </Row>\n </div>\n </Affix>\n <Divider />\n <div className=\"item-details-content-product\">\n <div className=\"item-details-content-product-description\">\n <div className=\"item-details-content-product-description-title\">\n <h4>\n Product Details\n </h4>\n <span className=\"item-details-content-product-description-title-icon\">\n <ProfileOutlined />\n </span>\n </div>\n <p>\n {itemData.details}\n </p>\n </div>\n <div className=\"item-details-content-product-size\">\n <h4>\n Size & Fit\n </h4>\n <p>\n <span>\n {itemData.fit}\n </span>\n <br />\n <span>\n {itemData.size}\n </span>\n </p>\n </div>\n <div className=\"item-details-content-product-care\">\n <h4>\n Material & Care\n </h4>\n <p>\n <span>\n {itemData.materials}\n </span>\n <br />\n <span>\n {itemData.care}\n </span>\n </p>\n </div>\n </div>\n </Col>\n </Row>\n </div>\n </div >\n );\n}","/home/dell/Desktop/Learning/JWT/client/src/pages/Items/ItemsList.tsx",["142","143","144","145"],"import { Col, Layout, PageHeader, Row, Checkbox, Divider, Affix, Drawer, Select, List, Card } from 'antd';\nimport { CheckboxValueType } from 'antd/lib/checkbox/Group';\nimport React, { useEffect, useState } from 'react';\n\n// import {placementType } from '/antd/lib/drawer/index';\nimport { useParams, useHistory } from 'react-router-dom';\nimport { NavBreadcrumb } from 'src/components/Breadcrumb/Breadcrumb';\nimport { CustomCard } from 'src/components/CustomCard/CustomCard';\nimport { CheckCircleTwoTone } from '@ant-design/icons';\n\nimport './index.scss';\nimport { valueType } from 'antd/lib/statistic/utils';\n\ninterface ItemsListRouterProps {\n category: string\n}\n\nlet tempDataConst = [\n { id: \"0x123g1j3hj21g3j21g21ydx1\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: true },\n { id: \"0x123g1j3hj21g3j21g21ydx11\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"Here & Now Jeans\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx12\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-2\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: true },\n { id: \"0x123g1j3hj21g3j21g21ydx13\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-3\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx14\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-4\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx15\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-5\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: true },\n { id: \"0x123g1j3hj21g3j21g21ydx16\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-6\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx17\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-7\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx18\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-8\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx19\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-9\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx110\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-10\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx111\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-11\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx110\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-10\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx111\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-11\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx110\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-10\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx111\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-11\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx110\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-10\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx111\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-11\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx110\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-10\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n { id: \"0x123g1j3hj21g3j21g21ydx111\", imageUrl: \"https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png\", title: \"HRX Jeans-11\", description: \"Men Skinny Fit Jeans\", price: 4012, stared: false },\n]\ninterface ITempData {\n id: string;\n imageUrl: string;\n title: string;\n description: string;\n price: number;\n stared: boolean;\n}\n\nexport const ItemsList: React.FC<ItemsListRouterProps> = ({ }) => {\n const [isFetching, setIsFetching] = useState<boolean>(false)\n const [filterColor, setFilterColor] = useState<Array<string | number | boolean>>([]);\n const [filterCategory, setFilterCategory] = useState<Array<string | number | boolean>>([]);\n const [filterDiscount, setFilterDiscount] = useState<Array<string | number | boolean>>([]);\n const [filterPrice, setFilterPrice] = useState<Array<string | number | boolean>>([]);\n const [isVisible, setVisible] = useState<boolean | undefined>(false);\n const [drawerType, setDrawerType] = useState<string>('')\n const [sortBy, setSortBy] = useState<valueType>(0)\n const [tempData, setTempData] = useState<Array<ITempData>>(tempDataConst)\n\n useEffect(() => {\n const fetchData = () => {\n //call API here\n // setTimeout(() => {\n // setIsFetching(false)\n // // if API response empty means categorie doesn't exists, redirect to all items page\n // // history.replace('/items')\n // }, 2000)\n }\n fetchData();\n }, [])\n const id: string = \"SAd786ds8a6d8sad7876d8asd\";\n const { category } = useParams<ItemsListRouterProps>();\n const history = useHistory();\n if (isFetching) {\n return <div>loading item details</div>\n }\n\n\n const handleClick = (event: React.MouseEvent<HTMLDivElement, MouseEvent>, id: string, name?: string): void => {\n history.push({ pathname: `${category}/${id}$${name}` })\n\n }\n const handleClickStar = (event: React.MouseEvent<HTMLSpanElement, MouseEvent>, id: string) => {\n //add to wish list\n const originalData = [...tempData]\n const index: number = tempData.findIndex((v: ITempData) => v.id === id)\n if (index === -1) {\n return\n }\n const item = originalData[index]\n originalData.splice(index, 1, {\n ...item\n })\n originalData[index].stared = !tempData[index].stared\n setTempData(originalData)\n }\n\n const plainOptions = ['Printed', 'Checks', 'Damge'];\n const categoryOptions = plainOptions.map((item) => {\n return <><Checkbox value={item}>{item}</Checkbox><br /> </>\n })\n const onChange = (checkedValue: CheckboxValueType[], type?: string): void => {\n console.log('checked = ', type, checkedValue);\n if (type === 'color') {\n setFilterColor(checkedValue)\n } else if (type === 'category') {\n setFilterCategory(checkedValue)\n } else if (type === 'discount') {\n setFilterDiscount(checkedValue)\n } else {\n setFilterPrice(checkedValue)\n }\n }\n\n const pricePlainOptions = [\"Rs. 134 to Rs. 3051\", \"Rs. 3051 to Rs. 5968\", \"Rs. 5968 to Rs. 8885\", \"Rs. 8885 to Rs. 11802\"];\n const priceOptions = pricePlainOptions.map((item, index) => {\n return <><Checkbox value={index} >{item}</Checkbox><br /> </>\n });\n\n const colorPlainOptions = [\n \"AliceBlue\",\n \"AntiqueWhite\",\n \"Aqua\",\n \"Aquamarine\",\n \"Azure\",\n \"Beige\",\n \"Bisque\",\n \"Black\",\n \"BlanchedAlmond\",\n \"Blue\",\n \"BlueViolet\",\n \"Brown\",\n \"BurlyWood\",\n \"CadetBlue\",\n \"Chartreuse\",\n \"Chocolate\",\n \"Coral\",\n \"CornflowerBlue\",\n \"Cornsilk\",\n \"Crimson\",\n \"Cyan\",\n \"DarkBlue\",\n \"DarkCyan\",\n \"DarkGoldenRod\",\n \"DarkGray\",\n \"DarkGrey\",\n \"DarkGreen\",\n \"DarkKhaki\",\n \"DarkMagenta\",\n \"DarkOliveGreen\",\n \"DarkOrange\",\n \"DarkOrchid\",\n \"DarkRed\",\n \"DarkSlateBlue\",\n \"DarkSlateGray\",\n \"DarkSlateGrey\",\n \"DarkTurquoise\",\n \"DarkViolet\",\n \"DeepPink\",\n \"DeepSkyBlue\",\n \"DimGray\",\n \"DimGrey\",\n \"DodgerBlue\",\n \"FireBrick\",\n \"FloralWhite\",\n \"ForestGreen\",\n \"Fuchsia\",\n \"Gainsboro\",\n \"GhostWhite\",\n \"Gold\",\n \"GoldenRod\",\n \"Gray\",\n \"Grey\",\n \"Green\",\n \"GreenYellow\",\n \"HoneyDew\",\n \"HotPink\",\n \"IndianRed\",\n \"Indigo\",\n \"Ivory\",\n \"MediumSeaGreen\",\n \"MediumSlateBlue\",\n \"MediumTurquoise\",\n \"MediumVioletRed\",\n \"MidnightBlue\",\n \"MintCream\",\n \"MistyRose\",\n \"Moccasin\",\n \"NavajoWhite\",\n \"Navy\",\n \"OldLace\",\n \"Olive\",\n \"OliveDrab\",\n \"Orange\",\n \"OrangeRed\",\n \"Orchid\",\n \"PaleGoldenRod\",\n \"PaleGreen\",\n \"PaleTurquoise\",\n \"PaleVioletRed\",\n \"PapayaWhip\",\n \"SeaShell\",\n \"Sienna\",\n \"Silver\",\n \"SkyBlue\",\n \"SlateBlue\",\n \"SlateGray\",\n \"SlateGrey\",\n \"Snow\",\n \"WhiteSmoke\",\n \"Yellow\",\n \"YellowGreen\",\n ];\n const colorOptions = colorPlainOptions.map((item, index) => {\n return <><Checkbox value={item}><span className=\"label-color\" style={{ backgroundColor: item }}></span>{item}</Checkbox><br /> </>\n });\n const discountPlanOption = [\n \"10 % and above\",\n \"20 % and above\",\n \"30 % and above\",\n \"40 % and above\",\n \"50 % and above\",\n \"60 % and above\",\n \"70 % and above\",\n \"80 % and above\"\n ]\n const discountOptions = discountPlanOption.map((item, index) => {\n return <><Checkbox value={index}>{item}</Checkbox><br /> </>\n });\n\n const resetFilters = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>): void => {\n setFilterColor([]);\n setFilterCategory([]);\n setFilterDiscount([]); // state contains index of discountPlanOption\n setFilterPrice([]);// state contains index of pricePlainOptions\n }\n const isClearOption = (filterColor.length === 0 && filterCategory.length === 0 && filterDiscount.length === 0 && filterPrice.length === 0) ? false : true\n\n const filterHeader: JSX.Element = <div style={{ display: 'flex', flexDirection: \"row\", justifyContent: 'space-between' }}>\n <text>\n FILTERS\n </text>\n {isClearOption && <button style={{ border: 0, background: \"transparent\", outline: 'none' }} onClick={resetFilters}>Clear All</button>}\n </div>\n\n const filterOptions: JSX.Element = <>\n <div className=\"item-listing-layout-sider-content-category\" >\n <text>\n CATEGORIES\n </text>\n <div className=\"item-listing-layout-sider-content-category-options\">\n <Checkbox.Group value={filterCategory} onChange={e => { onChange(e, 'category') }} >\n {categoryOptions}\n </Checkbox.Group>\n </div>\n </div>\n <Divider />\n <div className=\"item-listing-layout-sider-content-price\" >\n <text>\n PRICE\n </text>\n <div className=\"item-listing-layout-sider-content-price-options\">\n <Checkbox.Group value={filterPrice} onChange={e => { onChange(e, 'price') }} >\n {priceOptions}\n </Checkbox.Group>\n </div>\n </div>\n <Divider />\n <div className=\"item-listing-layout-sider-content-color\" >\n <text>\n COLOR\n </text>\n <div className=\"item-listing-layout-sider-content-color-options\">\n <Checkbox.Group value={filterColor} onChange={e => { onChange(e, 'color') }} >\n {colorOptions}\n </Checkbox.Group>\n </div>\n </div>\n <Divider />\n <div className=\"item-listing-layout-sider-content-discount\" >\n <text>\n DISCOUNT RANGE\n </text>\n <div className=\"item-listing-layout-sider-content-discount-options\">\n <Checkbox.Group value={filterDiscount} onChange={e => { onChange(e, 'discount') }} >\n {discountOptions}\n </Checkbox.Group>\n </div>\n </div>\n </>;\n const showDrawer = (event: React.MouseEvent<HTMLSpanElement, MouseEvent>, type: string): void => {\n setDrawerType(type)\n setVisible(true);\n };\n\n const onClose = (e?: React.KeyboardEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement | HTMLButtonElement>): void => {\n setVisible(false);\n };\n\n const handleChange = (value: valueType): void => {\n if (sortBy === value) {\n return\n }\n setSortBy(value)\n if (drawerType === 'sort') {\n onClose();\n }\n }\n\n const sortPlainOption = [\"What's New\", \"Popularity\", \"Better Discount\", \"Price: High to Low\", \"Price: Low to High\"]\n const sortOptions: JSX.Element = <>\n <text>\n SORT BY :\n </text>\n <Select value={sortBy} style={{ width: 200 }} onChange={handleChange}>\n {\n sortPlainOption.map((item, index) => {\n return <Select.Option value={index}>{item}</Select.Option>\n })\n }\n </Select>\n </>\n\n const drawerHeader: JSX.Element | string = drawerType === 'sort' ? \"SORT BY\" : filterHeader\n const drwaerContent: JSX.Element =\n drawerType === 'sort' ?\n <List\n bordered\n dataSource={sortPlainOption}\n renderItem={(item, index) => (\n <List.Item onClick={e => { handleChange(index) }}>\n {item}\n {sortBy === index &&\n <div style={{\n float: \"right\",\n textAlign: 'right'\n }}>\n <CheckCircleTwoTone twoToneColor=\"#52c41a\" />\n </div>\n }\n </List.Item>\n )}\n />\n :\n <div className=\"item-listing-layout-sider-content\" style={{ padding: '10px 20px' }}>\n {filterOptions}\n </div>\n\n console.log('test', tempData[1])\n return (\n <div className=\"item-listing\">\n <div className=\"item-listing-breadcrumb\" >\n <NavBreadcrumb />\n </div>\n <Layout className=\"item-listing-layout\">\n <Layout.Sider className=\"item-listing-layout-sider\" width={'15rem'}>\n <div className=\"item-listing-layout-sider-content\" style={{ padding: '10px 20px' }}>\n {filterHeader}\n <Divider />\n {filterOptions}\n </div>\n </Layout.Sider>\n <Layout.Content className=\"item-listing-layout-content\">\n <div className=\"item-listing-layout-content-main\">\n <PageHeader\n className=\"item-listing-layout-content-main-header\"\n title={category}\n extra={[sortOptions]}\n />\n\n <div className=\"item-listing-layout-content-main-items\">\n <Row style={{ margin: 0 }} gutter={24}>\n {tempData.map(item => {\n return <Col xs={12} sm={12} md={8} lg={8} xl={6} xxl={4} >\n {/* <Card className=\"item-listing-layout-content-main-items-card\"\n bordered={false}\n hoverable\n cover={<img className={`tem-listing-layout-content-main-items-card-image`} alt={item.title} src={item.imageUrl} />\n }\n >\n <Card.Meta title={item.title} />\n </Card > */}\n <CustomCard\n type={'item-preview'}\n param={item.id}\n handleClick={handleClick}\n onClickStar={handleClickStar}\n hoverable={true}\n styleName=\"preview-card\"\n imageUrl={item.imageUrl}\n title={item.title}\n price={item.price}\n stared={item.stared}\n description={item.description} />\n </Col>\n })}\n </Row>\n </div>\n\n </div>\n\n <Affix className=\"item-listing-layout-content-footer\" offsetBottom={0} >\n <button className=\"item-listing-layout-content-footer-content\" onClick={e => { showDrawer(e, \"sort\") }} >\n SORT\n </button>\n <button className=\"item-listing-layout-content-footer-content\" onClick={e => { showDrawer(e, \"filter\") }}>\n FILTER\n </button>\n </Affix>\n </Layout.Content>\n </Layout>\n <Drawer\n title={drawerHeader}\n placement={drawerType === 'sort' ? \"bottom\" : \"right\"}\n closable={false}\n onClose={onClose}\n visible={isVisible}\n bodyStyle={{ padding: 0 }}\n headerStyle={{ background: \"lightblue\" }}\n height={300}\n >\n {drwaerContent}\n </Drawer>\n </div>\n );\n}","/home/dell/Desktop/Learning/JWT/client/src/pages/Items/ALlitem.tsx",["146","147"],"/home/dell/Desktop/Learning/JWT/client/src/components/Breadcrumb/Breadcrumb.tsx",[],"/home/dell/Desktop/Learning/JWT/client/src/util/index.ts",[],"/home/dell/Desktop/Learning/JWT/client/src/components/CustomCard/CustomCard.tsx",[],"/home/dell/Desktop/Learning/JWT/client/src/components/ListView/ListView.tsx",[],{"ruleId":"148","replacedBy":"149"},{"ruleId":"150","replacedBy":"151"},{"ruleId":"148","replacedBy":"152"},{"ruleId":"150","replacedBy":"153"},{"ruleId":"154","severity":1,"message":"155","line":8,"column":41,"nodeType":"156","messageId":"157","endLine":8,"endColumn":44},{"ruleId":"148","replacedBy":"158"},{"ruleId":"150","replacedBy":"159"},{"ruleId":"154","severity":1,"message":"155","line":10,"column":47,"nodeType":"156","messageId":"157","endLine":10,"endColumn":50},{"ruleId":"160","severity":1,"message":"161","line":1,"column":17,"nodeType":"162","messageId":"163","endLine":1,"endColumn":26},{"ruleId":"160","severity":1,"message":"164","line":2,"column":10,"nodeType":"162","messageId":"163","endLine":2,"endColumn":24},{"ruleId":"160","severity":1,"message":"165","line":9,"column":12,"nodeType":"162","messageId":"163","endLine":9,"endColumn":19},{"ruleId":"160","severity":1,"message":"166","line":9,"column":21,"nodeType":"162","messageId":"163","endLine":9,"endColumn":31},{"ruleId":"160","severity":1,"message":"161","line":1,"column":17,"nodeType":"162","messageId":"163","endLine":1,"endColumn":26},{"ruleId":"167","severity":1,"message":"168","line":155,"column":33,"nodeType":"169","endLine":155,"endColumn":100},{"ruleId":"167","severity":1,"message":"168","line":162,"column":33,"nodeType":"169","endLine":162,"endColumn":100},{"ruleId":"167","severity":1,"message":"168","line":169,"column":33,"nodeType":"169","endLine":169,"endColumn":100},{"ruleId":"170","severity":1,"message":"171","line":16,"column":8,"nodeType":"172","endLine":16,"endColumn":10,"suggestions":"173"},{"ruleId":"170","severity":1,"message":"171","line":16,"column":8,"nodeType":"172","endLine":16,"endColumn":10,"suggestions":"174"},{"ruleId":"154","severity":1,"message":"155","line":11,"column":43,"nodeType":"156","messageId":"157","endLine":11,"endColumn":46},{"ruleId":"148","replacedBy":"175"},{"ruleId":"150","replacedBy":"176"},{"ruleId":"148","replacedBy":"177"},{"ruleId":"150","replacedBy":"178"},{"ruleId":"160","severity":1,"message":"161","line":1,"column":17,"nodeType":"162","messageId":"163","endLine":1,"endColumn":26},{"ruleId":"160","severity":1,"message":"179","line":1,"column":28,"nodeType":"162","messageId":"163","endLine":1,"endColumn":36},{"ruleId":"154","severity":1,"message":"155","line":11,"column":45,"nodeType":"156","messageId":"157","endLine":11,"endColumn":48},{"ruleId":"160","severity":1,"message":"180","line":12,"column":19,"nodeType":"162","messageId":"163","endLine":12,"endColumn":22},{"ruleId":"154","severity":1,"message":"155","line":29,"column":57,"nodeType":"156","messageId":"157","endLine":29,"endColumn":60},{"ruleId":"160","severity":1,"message":"181","line":1,"column":88,"nodeType":"162","messageId":"163","endLine":1,"endColumn":92},{"ruleId":"154","severity":1,"message":"155","line":49,"column":59,"nodeType":"156","messageId":"157","endLine":49,"endColumn":62},{"ruleId":"160","severity":1,"message":"182","line":50,"column":24,"nodeType":"162","messageId":"163","endLine":50,"endColumn":37},{"ruleId":"160","severity":1,"message":"183","line":71,"column":11,"nodeType":"162","messageId":"163","endLine":71,"endColumn":21},{"ruleId":"160","severity":1,"message":"184","line":1,"column":10,"nodeType":"162","messageId":"163","endLine":1,"endColumn":17},{"ruleId":"154","severity":1,"message":"155","line":12,"column":49,"nodeType":"156","messageId":"157","endLine":12,"endColumn":52},"no-native-reassign",["185"],"no-negated-in-lhs",["186"],["185"],["186"],"no-empty-pattern","Unexpected empty object pattern.","ObjectPattern","unexpected",["185"],["186"],"@typescript-eslint/no-unused-vars","'useEffect' is defined but never used.","Identifier","unusedVar","'setAccessToken' is defined but never used.","'loading' is assigned a value but never used.","'setLoading' is assigned a value but never used.","jsx-a11y/anchor-is-valid","The href attribute is required for an anchor to be keyboard accessible. Provide a valid, navigable address as the href value. If you cannot provide an href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md","JSXOpeningElement","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'history'. Either include it or remove the dependency array.","ArrayExpression",["187"],["188"],["185"],["186"],["185"],["186"],"'useState' is defined but never used.","'url' is assigned a value but never used.","'Card' is defined but never used.","'setIsFetching' is assigned a value but never used.","'id' is assigned a value but never used.","'Divider' is defined but never used.","no-global-assign","no-unsafe-negation",{"desc":"189","fix":"190"},{"desc":"189","fix":"191"},"Update the dependencies array to be: [history]",{"range":"192","text":"193"},{"range":"194","text":"193"},[587,589],"[history]",[628,630]]