summaryrefslogtreecommitdiffstats
path: root/src/components/RequestSummary/RequestSummary.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/RequestSummary/RequestSummary.tsx')
-rw-r--r--src/components/RequestSummary/RequestSummary.tsx33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/components/RequestSummary/RequestSummary.tsx b/src/components/RequestSummary/RequestSummary.tsx
new file mode 100644
index 0000000..af928c0
--- /dev/null
+++ b/src/components/RequestSummary/RequestSummary.tsx
@@ -0,0 +1,33 @@
1import {RequestResponse} from "~hooks/useRequests";
2import * as React from "react";
3import classNames from "classnames";
4
5import styles from './RequestSummary.module.scss';
6
7interface RequestSummaryProps {
8 requestResponse: RequestResponse
9 className?: string
10}
11
12function isBetween(value: number, min: number, max: number) {
13 return value >= min && value <= max
14}
15
16export default function RequestSummary({ requestResponse: { request, response }, className = ''}: RequestSummaryProps) {
17 const statusCode = response?.status ?? 0
18 return (
19 <div className={classNames(styles.requestSummary, className)}>
20 <span className={styles.method}>{ request.method }</span>
21 <p>{ request.path }</p>
22 <span className={classNames(styles.statusCode, {
23 [styles.info]: isBetween(statusCode, 100, 199),
24 [styles.success]: isBetween(statusCode, 200, 299),
25 [styles.redirect]: isBetween(statusCode, 300, 399),
26 [styles.clientError]: isBetween(statusCode, 400, 499),
27 [styles.serverError]: isBetween(statusCode, 500, 599)
28 })}>
29 { response?.status ?? 'Loading...'}
30 </span>
31 </div>
32 )
33}