Skip to content

Commit df0a777

Browse files
author
spaceless
committed
fix: display list of responses
1 parent b114376 commit df0a777

File tree

3 files changed

+50
-2
lines changed

3 files changed

+50
-2
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"@emotion/react": "^11.11.3",
1414
"@emotion/styled": "^11.11.0",
1515
"@mui/material": "^5.15.6",
16+
"@reduxjs/toolkit": "^2.2.1",
1617
"axios": "^1.6.5",
1718
"formik": "^2.4.5",
1819
"p-limit": "^5.0.0",

src/App.tsx

+19-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
import { Button, Card } from "@mui/material";
22
import { useFormik } from "formik";
33
import { FC, useState } from "react";
4+
import { useDispatch } from "react-redux";
45

6+
import { ResponseCard } from "./components/ResponseCard";
57
import { Input } from "./components/UI";
8+
import { useAppSelector } from "./hooks/use-app-selector";
69
import { inputSchema } from "./schemas";
10+
import { responseActions } from "./store/response/slice";
11+
import { Response } from "./store/response/types";
712
import { FormValues } from "./types";
813
import { doWorkWithLimit } from "./utils";
914

1015
const App: FC = () => {
1116
const [isStarted, setIsStarted] = useState(false);
17+
const { responseData } = useAppSelector((state) => state.responses);
18+
const dispatch = useDispatch();
19+
20+
const handleResponse = (response: Response) => {
21+
dispatch(responseActions.pushResponse(response));
22+
};
1223

1324
const formik = useFormik<FormValues>({
1425
initialValues: { limit: 0 },
@@ -17,7 +28,7 @@ const App: FC = () => {
1728
console.log("submit");
1829
setIsStarted(true);
1930

20-
await doWorkWithLimit(limit);
31+
await doWorkWithLimit(limit, handleResponse);
2132

2233
setIsStarted(false);
2334
},
@@ -28,7 +39,7 @@ const App: FC = () => {
2839
};
2940

3041
return (
31-
<div className="flex h-screen w-full flex-col items-center p-4">
42+
<div className="flex w-full flex-col items-center p-4">
3243
<Card className="flex w-full flex-col gap-2 p-2 sm:w-1/2 sm:max-w-[600px]">
3344
<Input
3445
id="limit"
@@ -51,6 +62,12 @@ const App: FC = () => {
5162
</Button>
5263
</div>
5364
</Card>
65+
66+
<div className="mt-4 flex flex-col gap-4 overflow-auto p-2">
67+
{responseData.map((response) => {
68+
return <ResponseCard key={response.index} response={response} />;
69+
})}
70+
</div>
5471
</div>
5572
);
5673
};

yarn.lock

+30
Original file line numberDiff line numberDiff line change
@@ -531,6 +531,16 @@
531531
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
532532
integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
533533

534+
"@reduxjs/toolkit@^2.2.1":
535+
version "2.2.1"
536+
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-2.2.1.tgz#3dce4906fb33da9e0122468ef21438dd7f2277a9"
537+
integrity sha512-8CREoqJovQW/5I4yvvijm/emUiCCmcs4Ev4XPWd4mizSO+dD3g5G6w34QK5AGeNrSH7qM8Fl66j4vuV7dpOdkw==
538+
dependencies:
539+
immer "^10.0.3"
540+
redux "^5.0.1"
541+
redux-thunk "^3.1.0"
542+
reselect "^5.0.1"
543+
534544
"@remix-run/router@1.15.0":
535545
version "1.15.0"
536546
resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.15.0.tgz#461a952c2872dd82c8b2e9b74c4dfaff569123e2"
@@ -1981,6 +1991,11 @@ ignore@^5.2.0, ignore@^5.2.4:
19811991
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
19821992
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
19831993

1994+
immer@^10.0.3:
1995+
version "10.0.3"
1996+
resolved "https://registry.yarnpkg.com/immer/-/immer-10.0.3.tgz#a8de42065e964aa3edf6afc282dfc7f7f34ae3c9"
1997+
integrity sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==
1998+
19841999
import-fresh@^3.2.1:
19852000
version "3.3.0"
19862001
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -2812,6 +2827,16 @@ readdirp@~3.6.0:
28122827
dependencies:
28132828
picomatch "^2.2.1"
28142829

2830+
redux-thunk@^3.1.0:
2831+
version "3.1.0"
2832+
resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-3.1.0.tgz#94aa6e04977c30e14e892eae84978c1af6058ff3"
2833+
integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==
2834+
2835+
redux@^5.0.1:
2836+
version "5.0.1"
2837+
resolved "https://registry.yarnpkg.com/redux/-/redux-5.0.1.tgz#97fa26881ce5746500125585d5642c77b6e9447b"
2838+
integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==
2839+
28152840
reflect.getprototypeof@^1.0.4:
28162841
version "1.0.5"
28172842
resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.5.tgz#e0bd28b597518f16edaf9c0e292c631eb13e0674"
@@ -2840,6 +2865,11 @@ regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.2:
28402865
es-errors "^1.3.0"
28412866
set-function-name "^2.0.1"
28422867

2868+
reselect@^5.0.1:
2869+
version "5.1.0"
2870+
resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.1.0.tgz#c479139ab9dd91be4d9c764a7f3868210ef8cd21"
2871+
integrity sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==
2872+
28432873
resolve-from@^4.0.0:
28442874
version "4.0.0"
28452875
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"

0 commit comments

Comments
 (0)