summaryrefslogtreecommitdiffstats
path: root/src/components
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.io>2024-09-04 10:27:24 +0200
committerGravatar Tom van der Lee <tom@vanderlee.io>2024-09-04 10:27:24 +0200
commita087494f6809a7a8ea8e6c27a105d8c8f0f3839e (patch)
tree617c0dbd168d6e340923dd17b07cc8239787e196 /src/components
parentfe61544bafafc8b4de78cc71cb641af2dfb7b72d (diff)
downloadclient-a087494f6809a7a8ea8e6c27a105d8c8f0f3839e.tar.gz
client-a087494f6809a7a8ea8e6c27a105d8c8f0f3839e.tar.bz2
client-a087494f6809a7a8ea8e6c27a105d8c8f0f3839e.zip
Updated the libraries
Diffstat (limited to 'src/components')
-rw-r--r--src/components/App/App.tsx18
-rw-r--r--src/components/Content/Content.tsx19
-rw-r--r--src/components/Frames/Frames.tsx3
-rw-r--r--src/components/RequestList/RequestList.tsx4
-rw-r--r--src/components/RequestSummary/RequestSummary.tsx3
5 files changed, 22 insertions, 25 deletions
diff --git a/src/components/App/App.tsx b/src/components/App/App.tsx
index ad36add..85119e6 100644
--- a/src/components/App/App.tsx
+++ b/src/components/App/App.tsx
@@ -1,25 +1,19 @@
1import * as React from "react"; 1import * as React from "react";
2import { ReactElement, useContext, useEffect, useMemo, useState } from "react"; 2import { ReactElement, useContext, useEffect } from "react";
3import useRequests from "~/hooks/useRequests";
4 3
5import styles from "~/components/App/App.module.scss"; 4import styles from "~/components/App/App.module.scss";
6import RequestDetails from "~/components/RequestDetails/RequestDetails"; 5import RequestDetails from "~/components/RequestDetails/RequestDetails";
7import { getHost } from "~/utils";
8import { Container, Nav, Navbar, NavDropdown } from "react-bootstrap"; 6import { Container, Nav, Navbar, NavDropdown } from "react-bootstrap";
9import classNames from "classnames"; 7import classNames from "classnames";
10import Sliders from "~/components/Icons/Sliders"; 8import Sliders from "~/components/Icons/Sliders";
11import Sun from "~/components/Icons/Sun"; 9import Sun from "~/components/Icons/Sun";
12import Moon from "~/components/Icons/Moon"; 10import Moon from "~/components/Icons/Moon";
13import Trash from "~/components/Icons/Trash"; 11import Trash from "~/components/Icons/Trash";
14import { DarkModeContext } from "~/contexts/DarkMode"; 12import { SettingsContext } from "~/contexts/Settings";
15import RequestList from "~/components/RequestList/RequestList"; 13import RequestList from "~/components/RequestList/RequestList";
16import { Call, ReadyState } from "~/types"; 14import { ReadyState } from "~/types";
17import { ConnectionContext } from "~/contexts/Connection"; 15import { ConnectionContext } from "~/contexts/Connection";
18 16
19interface Config {
20 url: string;
21}
22
23interface SettingsMenu { 17interface SettingsMenu {
24 icon: ReactElement; 18 icon: ReactElement;
25 label: string; 19 label: string;
@@ -48,8 +42,8 @@ const statusTextMap: ReadyStateMap = {
48}; 42};
49 43
50export default function App() { 44export default function App() {
51 const { darkMode, toggle } = useContext(DarkModeContext); 45 const { darkMode, setSetting } = useContext(SettingsContext);
52 const { config, selectedCall, setSelectedCall, readyState, clear } = 46 const { config, setSelectedCall, readyState, clear } =
53 useContext(ConnectionContext); 47 useContext(ConnectionContext);
54 48
55 useEffect(() => { 49 useEffect(() => {
@@ -59,7 +53,7 @@ export default function App() {
59 53
60 const settingsMenu: (SettingsMenu | null)[] = [ 54 const settingsMenu: (SettingsMenu | null)[] = [
61 { 55 {
62 onClick: toggle, 56 onClick: () => setSetting("darkMode", !darkMode),
63 icon: darkMode ? <Sun /> : <Moon />, 57 icon: darkMode ? <Sun /> : <Moon />,
64 label: darkMode ? "Light mode" : "Dark mode", 58 label: darkMode ? "Light mode" : "Dark mode",
65 }, 59 },
diff --git a/src/components/Content/Content.tsx b/src/components/Content/Content.tsx
index e670376..94fca32 100644
--- a/src/components/Content/Content.tsx
+++ b/src/components/Content/Content.tsx
@@ -4,7 +4,7 @@ import { Headers, RequestPayload, ResponsePayload } from "~hooks/useRequests";
4import ReactJson from "react-json-view"; 4import ReactJson from "react-json-view";
5import styles from "~/components/Content/Content.module.scss"; 5import styles from "~/components/Content/Content.module.scss";
6import { Button, Col, Container, Row } from "react-bootstrap"; 6import { Button, Col, Container, Row } from "react-bootstrap";
7import { DarkModeContext } from "~/contexts/DarkMode"; 7import { SettingsContext } from "~/contexts/Settings";
8 8
9function getHeader( 9function getHeader(
10 headers: Headers, 10 headers: Headers,
@@ -80,14 +80,14 @@ export default function Content({
80} 80}
81 81
82function ContentBody({ data, raw = false }: Omit<ContentProps, "setRaw">) { 82function ContentBody({ data, raw = false }: Omit<ContentProps, "setRaw">) {
83 const { darkMode } = useContext(DarkModeContext); 83 const { darkMode } = useContext(SettingsContext);
84 const contentType = useMemo(() => { 84 const contentType = useMemo(() => {
85 if (raw) { 85 if (raw) {
86 return ""; 86 return "";
87 } 87 }
88 88
89 const type = getHeader(data.headers, "content-type"); 89 const type = getHeader(data.headers, "content-type");
90 return type.toLowerCase().split(";")[0]; 90 return type?.toLowerCase().split(";")[0];
91 }, [data, raw]); 91 }, [data, raw]);
92 92
93 if (raw) { 93 if (raw) {
@@ -98,7 +98,10 @@ function ContentBody({ data, raw = false }: Omit<ContentProps, "setRaw">) {
98 ); 98 );
99 } 99 }
100 100
101 if (["application/pdf", "text/html"].includes(contentType)) { 101 if (
102 contentType !== undefined &&
103 ["application/pdf", "text/html"].includes(contentType)
104 ) {
102 return ( 105 return (
103 <iframe 106 <iframe
104 className="bg-white" 107 className="bg-white"
@@ -110,7 +113,7 @@ function ContentBody({ data, raw = false }: Omit<ContentProps, "setRaw">) {
110 ); 113 );
111 } 114 }
112 115
113 if (contentType.startsWith("application/json")) { 116 if (contentType?.startsWith("application/json")) {
114 return ( 117 return (
115 <ReactJson 118 <ReactJson
116 src={JSON.parse(atob(data.body))} 119 src={JSON.parse(atob(data.body))}
@@ -125,15 +128,15 @@ function ContentBody({ data, raw = false }: Omit<ContentProps, "setRaw">) {
125 ); 128 );
126 } 129 }
127 130
128 if (contentType.startsWith("audio")) { 131 if (contentType?.startsWith("audio")) {
129 return <audio src={`data:${contentType};base64,${data.body}`} />; 132 return <audio src={`data:${contentType};base64,${data.body}`} />;
130 } 133 }
131 134
132 if (contentType.startsWith("video")) { 135 if (contentType?.startsWith("video")) {
133 return <video src={`data:${contentType};base64,${data.body}`} />; 136 return <video src={`data:${contentType};base64,${data.body}`} />;
134 } 137 }
135 138
136 if (contentType.startsWith("image")) { 139 if (contentType?.startsWith("image")) {
137 return <img src={`data:${contentType};base64,${data.body}`} alt="" />; 140 return <img src={`data:${contentType};base64,${data.body}`} alt="" />;
138 } 141 }
139 142
diff --git a/src/components/Frames/Frames.tsx b/src/components/Frames/Frames.tsx
index 83c4c96..1d31d92 100644
--- a/src/components/Frames/Frames.tsx
+++ b/src/components/Frames/Frames.tsx
@@ -5,7 +5,7 @@ import classNames from "classnames";
5import styles from "./Frames.module.scss"; 5import styles from "./Frames.module.scss";
6import dayjs from "dayjs"; 6import dayjs from "dayjs";
7import ReactJson from "react-json-view"; 7import ReactJson from "react-json-view";
8import { DarkModeContext } from "~/contexts/DarkMode"; 8import { SettingsContext } from "~/contexts/Settings";
9 9
10function isJson(data: any): boolean { 10function isJson(data: any): boolean {
11 try { 11 try {
@@ -23,7 +23,6 @@ interface FramesProps {
23export default function Frames({ 23export default function Frames({
24 frames, 24 frames,
25}: PropsWithChildren<FramesProps>): JSX.Element { 25}: PropsWithChildren<FramesProps>): JSX.Element {
26 const { darkMode } = useContext(DarkModeContext);
27 return ( 26 return (
28 <ListGroup variant="flush" as="ul" className={"flex-grow-1"}> 27 <ListGroup variant="flush" as="ul" className={"flex-grow-1"}>
29 {frames.length > 0 ? ( 28 {frames.length > 0 ? (
diff --git a/src/components/RequestList/RequestList.tsx b/src/components/RequestList/RequestList.tsx
index 82a6b21..8217229 100644
--- a/src/components/RequestList/RequestList.tsx
+++ b/src/components/RequestList/RequestList.tsx
@@ -12,7 +12,7 @@ import styles from "~/components/RequestList/RequestList.module.scss";
12import RequestSummary from "~/components/RequestSummary/RequestSummary"; 12import RequestSummary from "~/components/RequestSummary/RequestSummary";
13import * as React from "react"; 13import * as React from "react";
14import { useCallback, useContext, useEffect, useMemo, useState } from "react"; 14import { useCallback, useContext, useEffect, useMemo, useState } from "react";
15import { DarkModeContext } from "~/contexts/DarkMode"; 15import { SettingsContext } from "~/contexts/Settings";
16import Filter from "~/components/Icons/Filter"; 16import Filter from "~/components/Icons/Filter";
17import { Call, Method } from "~/types"; 17import { Call, Method } from "~/types";
18import { ConnectionContext } from "~/contexts/Connection"; 18import { ConnectionContext } from "~/contexts/Connection";
@@ -22,7 +22,7 @@ type EnabledMethods = {
22}; 22};
23 23
24export default function RequestList() { 24export default function RequestList() {
25 const { darkMode } = useContext(DarkModeContext); 25 const { darkMode } = useContext(SettingsContext);
26 const { 26 const {
27 calls: requests, 27 calls: requests,
28 selectedCall, 28 selectedCall,
diff --git a/src/components/RequestSummary/RequestSummary.tsx b/src/components/RequestSummary/RequestSummary.tsx
index 4e97676..64ff475 100644
--- a/src/components/RequestSummary/RequestSummary.tsx
+++ b/src/components/RequestSummary/RequestSummary.tsx
@@ -4,10 +4,11 @@ import classNames from "classnames";
4 4
5import { Badge, Col, Row } from "react-bootstrap"; 5import { Badge, Col, Row } from "react-bootstrap";
6import dayjs from "dayjs"; 6import dayjs from "dayjs";
7import { Call } from "~/types";
7 8
8interface RequestSummaryProps { 9interface RequestSummaryProps {
9 selected?: boolean; 10 selected?: boolean;
10 requestResponse: Calls; 11 requestResponse: Call;
11 showTime?: boolean; 12 showTime?: boolean;
12} 13}
13 14