Skip to content

Commit 71d0364

Browse files
Twinkle PardeshiTwinkle
Twinkle Pardeshi
authored and
Twinkle
committed
Add empty line at the EOF and remove react fragments
1 parent 6a2ec6a commit 71d0364

17 files changed

+20180
-69
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@
2121
npm-debug.log*
2222
yarn-debug.log*
2323
yarn-error.log*
24+
25+
#environment variable
26+
.env

package-lock.json

+19,554
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+36-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,40 @@
11
{
2-
"name": "imagematch",
2+
"name": "frontend-demo",
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6-
"react": "^16.10.1",
7-
"react-dom": "^16.10.1",
8-
"react-scripts": "3.1.2"
6+
"@patternfly/react-core": "^3.129.3",
7+
"@patternfly/react-topology": "^2.14.66",
8+
"@testing-library/jest-dom": "^4.2.4",
9+
"@testing-library/react": "^9.3.2",
10+
"@testing-library/user-event": "^7.1.2",
11+
"activestorage": "^5.2.4-1",
12+
"axios": "^0.19.1",
13+
"bootstrap": "^4.4.1",
14+
"dotenv": "^8.2.0",
15+
"react": "^16.12.0",
16+
"react-bootstrap": "^1.0.1",
17+
"react-dom": "^16.12.0",
18+
"react-hook-form": "^6.0.8",
19+
"react-image": "^2.2.2",
20+
"react-image-mapper": "^0.0.15",
21+
"react-js-pagination": "^3.0.3",
22+
"react-lazy-load-image-component": "^1.5.0-beta.0",
23+
"react-lazyload": "^2.6.7",
24+
"react-modal": "^3.11.2",
25+
"react-multiselect-checkboxes": "^0.1.1",
26+
"react-paginate": "^6.3.2",
27+
"react-router": "^5.1.2",
28+
"react-router-dom": "^5.1.2",
29+
"react-scripts": "3.4.0"
930
},
1031
"scripts": {
1132
"start": "react-scripts start",
1233
"build": "react-scripts build",
1334
"test": "react-scripts test",
14-
"eject": "react-scripts eject"
35+
"eject": "react-scripts eject",
36+
"storybook": "start-storybook -p 9009 -s public",
37+
"build-storybook": "build-storybook -s public"
1538
},
1639
"eslintConfig": {
1740
"extends": "react-app"
@@ -27,5 +50,13 @@
2750
"last 1 firefox version",
2851
"last 1 safari version"
2952
]
53+
},
54+
"devDependencies": {
55+
"@storybook/addon-actions": "^5.3.8",
56+
"@storybook/addon-links": "^5.3.8",
57+
"@storybook/addons": "^5.3.8",
58+
"@storybook/preset-create-react-app": "^1.5.2",
59+
"@storybook/react": "^5.3.8",
60+
"eslint-plugin-react-hooks": "^4.0.8"
3061
}
3162
}

src/API/BASE_URL.js

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
const BASE_URL = process.env.REACT_APP_BASE_URL;
2+
export default BASE_URL;

src/App.css

-22
This file was deleted.

src/App.js

+23-22
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
1-
import React from 'react';
2-
import logo from './logo.svg';
3-
import './App.css';
1+
import { Route, Switch, BrowserRouter } from "react-router-dom";
2+
import "@patternfly/react-core/dist/styles/base.css";
3+
import { PageHeader, Page } from "@patternfly/react-core";
4+
import React from "react";
5+
import Products from "./Screens/Products"
6+
import Versions from "./Screens/Versions";
47

5-
function App() {
8+
export default function PageLayoutSimpleNav() {
9+
const logoProps = {
10+
href: "https://github.com/lingostack",
11+
target: "_blank",
12+
};
613
return (
7-
<div className="App">
8-
<header className="App-header">
9-
<img src={logo} className="App-logo" alt="logo" />
10-
<p>
11-
Edit <code>src/App.js</code> and save to reload.
12-
</p>
13-
<a
14-
className="App-link"
15-
href="https://reactjs.org"
16-
target="_blank"
17-
rel="noopener noreferrer"
18-
>
19-
Learn React
20-
</a>
21-
</header>
22-
</div>
14+
<BrowserRouter>
15+
<Switch>
16+
<Page
17+
header={<PageHeader logo={"LingoQA Dashboard"} logoProps={logoProps} />}>
18+
<Route exact path="/" component={Products} />
19+
<Route
20+
path="/products/:productid/screenshots"
21+
component={Versions}
22+
/>
23+
</Page>
24+
</Switch>
25+
</BrowserRouter>
2326
);
2427
}
25-
26-
export default App;

src/App.test.js

-9
This file was deleted.

src/Components/Breadcrumbs.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import React from "react";
2+
import { Link } from 'react-router-dom';
3+
import { AngleRightIcon } from '@patternfly/react-icons'
4+
5+
export default function Breadcrumbs() {
6+
return (
7+
<nav className="pf-c-breadcrumb" aria-label="breadcrumb">
8+
<ol className="pf-c-breadcrumb__list">
9+
<li className="pf-c-breadcrumb__item">
10+
<Link to="/" className="pf-c-breadcrumb__link">Products</Link>
11+
<span className="pf-c-breadcrumb__item-divider">
12+
<AngleRightIcon />
13+
</span>
14+
</li>
15+
<li className="pf-c-breadcrumb__item">
16+
<span className="pf-c-breadcrumb__link pf-m-current" aria-current="page">
17+
Versions
18+
</span>
19+
</li>
20+
</ol>
21+
</nav>
22+
)
23+
}

src/Components/Paginate.js

+181
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
import React, { useState } from "react";
2+
import { Split, SplitItem } from "@patternfly/react-core";
3+
import { Pagination, PaginationVariant } from "@patternfly/react-core";
4+
import SimpleEmptyState from "./SimpleEmptyState";
5+
6+
export default function Paginate(props) {
7+
const [screenshotsOther, setScreenshotsOther] = useState([]);
8+
const [screenshotsEN, setScreenshotsEN] = useState([]);
9+
const [itemCount, setItemCount] = useState();
10+
const [elementsRight, setElementRight] = useState([]);
11+
const [elementsLeft, setElementLeft] = useState([]);
12+
const [offset, setOffset] = useState();
13+
const [page, setPage] = useState(1);
14+
const [perPage, setPerPage] = useState(10);
15+
16+
//Set the page
17+
const onSetPage = (_event, pageNumber) => {
18+
setPage(pageNumber)
19+
};
20+
21+
//Items to be displayed per page
22+
const onPerPageSelect = (_event, perPage) => {
23+
setPerPage(perPage)
24+
};
25+
26+
//Next set of Items
27+
const onNextClick = (_event, page) => {
28+
setPage(page)
29+
setOffset((page - 1) * (perPage))
30+
};
31+
32+
//Previous set of Items
33+
const onPreviousClick = (_event, page) => {
34+
setPage(page)
35+
setOffset((page - 1) * (perPage));
36+
};
37+
38+
//First set of Items
39+
const onFirstClick = (_event, page) => {
40+
setPage(page)
41+
setOffset(0)
42+
};
43+
44+
//Last set of items
45+
const onLastClick = (_event, page) => {
46+
setPage(page)
47+
setOffset((page - 1) * (perPage));
48+
};
49+
50+
React.useEffect(() => {
51+
setScreenshotsOther(props.screenshotsOther);
52+
setScreenshotsEN(props.screenshotsEN);
53+
setItemCount(props.itemCount);
54+
setOffset(0);
55+
}, [props.screenshotsEN, props.screenshotsOther, props.itemCount]);
56+
57+
React.useEffect(() => {
58+
const SetImages = () => {
59+
if (props.screenshotsEN.length !== 0) {
60+
const elementsLeft = props.screenshotsEN[0].images.slice(offset, (offset + perPage));
61+
setElementLeft(elementsLeft)
62+
}
63+
if (props.screenshotsOther.length !== 0) {
64+
const elementsRight = props.screenshotsOther[0].images.slice(offset, (offset + perPage));
65+
setElementRight(elementsRight)
66+
}
67+
}
68+
SetImages();
69+
}, [offset, perPage, screenshotsEN, screenshotsOther])
70+
71+
const paginateEN = () => (
72+
<>
73+
<Pagination
74+
widgetId="pagination-options-menu-bottom"
75+
itemCount={itemCount}
76+
perPage={perPage}
77+
page={page}
78+
variant={PaginationVariant.bottom}
79+
onSetPage={onSetPage}
80+
onPerPageSelect={onPerPageSelect}
81+
onNextClick={onNextClick}
82+
onPreviousClick={onPreviousClick}
83+
onFirstClick={onFirstClick}
84+
onLastClick={onLastClick}
85+
/>
86+
<div className="en_screens mb-4">
87+
{elementsLeft.map((image, index) => (
88+
<img src={image} alt="" key={index} className="image" />
89+
))}
90+
</div>
91+
<Pagination
92+
widgetId="pagination-options-menu-bottom"
93+
itemCount={itemCount}
94+
perPage={perPage}
95+
page={page}
96+
variant={PaginationVariant.bottom}
97+
onSetPage={onSetPage}
98+
onPerPageSelect={onPerPageSelect}
99+
onNextClick={onNextClick}
100+
onPreviousClick={onPreviousClick}
101+
onFirstClick={onFirstClick}
102+
onLastClick={onLastClick}
103+
/>
104+
</>
105+
)
106+
107+
const paginateOther = () => (
108+
<>
109+
<Pagination
110+
widgetId="pagination-options-menu-bottom"
111+
itemCount={itemCount}
112+
perPage={perPage}
113+
page={page}
114+
variant={PaginationVariant.bottom}
115+
onSetPage={onSetPage}
116+
onPerPageSelect={onPerPageSelect}
117+
onNextClick={onNextClick}
118+
onPreviousClick={onPreviousClick}
119+
onFirstClick={onFirstClick}
120+
onLastClick={onLastClick}
121+
/>
122+
{/* For screenshots display side by side */}
123+
<div id="image-compare">
124+
<Split gutter="md">
125+
<div>
126+
{elementsLeft.length &&
127+
<SplitItem>
128+
<div>
129+
{elementsLeft.map((image, index) => (
130+
<img src={image} alt="" key={index} className="image" />
131+
))}
132+
</div>
133+
</SplitItem>
134+
135+
}
136+
</div>
137+
<div>
138+
{elementsRight.length &&
139+
<SplitItem>
140+
<div>
141+
{elementsRight.map((image, index) => (
142+
<img src={image} alt="" key={index} className="image" />
143+
))}
144+
</div>
145+
</SplitItem>
146+
}
147+
</div>
148+
</Split>
149+
</div>
150+
<Pagination
151+
widgetId="pagination-options-menu-bottom"
152+
itemCount={itemCount}
153+
perPage={perPage}
154+
page={page}
155+
variant={PaginationVariant.bottom}
156+
onSetPage={onSetPage}
157+
onPerPageSelect={onPerPageSelect}
158+
onNextClick={onNextClick}
159+
onPreviousClick={onPreviousClick}
160+
onFirstClick={onFirstClick}
161+
onLastClick={onLastClick}
162+
/>
163+
</>
164+
)
165+
166+
if (props.screenshotsEN.length === 0) {
167+
return <SimpleEmptyState />;
168+
}
169+
else if ((typeof itemCount !== "undefined") && (props.screenshotsOther.length === 0)) {
170+
return <div className="mb-4">{paginateEN()}</div>;
171+
}
172+
else if ((typeof itemCount !== "undefined") && (props.screenshotsOther[0].id === props.screenshotsEN[0].id)) {
173+
return <div className="mb-4">{paginateEN()}</div>;
174+
}
175+
else {
176+
if (typeof itemCount !== "undefined")
177+
return <div className="mb-4">{paginateOther()}</div>
178+
else
179+
return null
180+
}
181+
}

0 commit comments

Comments
 (0)