From b19c1877d088fbe01bcdea9fbdef282e66ab114f Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Wed, 20 Mar 2024 22:25:56 +0100 Subject: Started with frontend --- src/components/App/App.tsx | 3 ++- src/components/RequestDetails/RequestDetails.tsx | 2 +- src/components/RequestList/RequestList.tsx | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/components') diff --git a/src/components/App/App.tsx b/src/components/App/App.tsx index b1a4501..5e17388 100644 --- a/src/components/App/App.tsx +++ b/src/components/App/App.tsx @@ -1,6 +1,6 @@ import * as React from "react"; import { ReactElement, useContext, useEffect, useMemo, useState } from "react"; -import useRequests, { ReadyState, RequestResponse } from "~/hooks/useRequests"; +import useRequests from "~/hooks/useRequests"; import styles from "~/components/App/App.module.scss"; import RequestDetails from "~/components/RequestDetails/RequestDetails"; @@ -13,6 +13,7 @@ import Moon from "~/components/Icons/Moon"; import Trash from "~/components/Icons/Trash"; import { DarkModeContext } from "~/contexts/DarkMode"; import RequestList from "~/components/RequestList/RequestList"; +import { ReadyState, RequestResponse } from "~/types"; interface Config { url: string; diff --git a/src/components/RequestDetails/RequestDetails.tsx b/src/components/RequestDetails/RequestDetails.tsx index f34ef6f..9000220 100644 --- a/src/components/RequestDetails/RequestDetails.tsx +++ b/src/components/RequestDetails/RequestDetails.tsx @@ -1,11 +1,11 @@ import * as React from "react"; import { useCallback, useMemo, useState } from "react"; -import { Headers, RequestResponse } from "~/hooks/useRequests"; import styles from "~/components/RequestDetails/RequestDetails.module.scss"; import RequestSummary from "~/components/RequestSummary/RequestSummary"; import Content from "~/components/Content/Content"; import { getHost } from "~/utils"; import { Button, Card, Col, Container, Nav, Row, Table } from "react-bootstrap"; +import { Headers, RequestResponse } from "~/types"; interface TimingProps { timing: number; diff --git a/src/components/RequestList/RequestList.tsx b/src/components/RequestList/RequestList.tsx index acef47a..a4e9a0e 100644 --- a/src/components/RequestList/RequestList.tsx +++ b/src/components/RequestList/RequestList.tsx @@ -12,9 +12,9 @@ import styles from "~/components/RequestList/RequestList.module.scss"; import RequestSummary from "~/components/RequestSummary/RequestSummary"; import * as React from "react"; import { useCallback, useContext, useMemo, useState } from "react"; -import { Method, RequestResponse } from "~/hooks/useRequests"; import { DarkModeContext } from "~/contexts/DarkMode"; import Filter from "~/components/Icons/Filter"; +import { Method, RequestResponse } from "~/types"; interface ListProps { requests: RequestResponse[]; -- cgit v1.2.3 From 648b804e72d4831e41e02dfd7d6b5a9ac7660b58 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Fri, 30 Aug 2024 11:19:30 +0200 Subject: Added ui --- src/components/App/App.tsx | 39 ++++------- src/components/Frames/Frames.module.scss | 9 +++ src/components/Frames/Frames.tsx | 75 ++++++++++++++++++++++ src/components/Icons/Sliders.tsx | 2 +- src/components/Icons/Trash.tsx | 2 +- src/components/RequestDetails/RequestDetails.tsx | 82 +++++++++++++++--------- src/components/RequestList/RequestList.tsx | 48 +++++++------- src/components/RequestSummary/RequestSummary.tsx | 2 +- 8 files changed, 173 insertions(+), 86 deletions(-) create mode 100644 src/components/Frames/Frames.module.scss create mode 100644 src/components/Frames/Frames.tsx (limited to 'src/components') diff --git a/src/components/App/App.tsx b/src/components/App/App.tsx index 5e17388..ad36add 100644 --- a/src/components/App/App.tsx +++ b/src/components/App/App.tsx @@ -13,7 +13,8 @@ import Moon from "~/components/Icons/Moon"; import Trash from "~/components/Icons/Trash"; import { DarkModeContext } from "~/contexts/DarkMode"; import RequestList from "~/components/RequestList/RequestList"; -import { ReadyState, RequestResponse } from "~/types"; +import { Call, ReadyState } from "~/types"; +import { ConnectionContext } from "~/contexts/Connection"; interface Config { url: string; @@ -48,29 +49,14 @@ const statusTextMap: ReadyStateMap = { export default function App() { const { darkMode, toggle } = useContext(DarkModeContext); - const [config, setConfig] = useState(null); - - const { calls, readyState, clear } = useRequests({ - onConnect: async () => { - const response = await fetch(`http://${getHost()}/config/`); - const config = await response.json(); - setConfig(config); - }, - }); + const { config, selectedCall, setSelectedCall, readyState, clear } = + useContext(ConnectionContext); useEffect(() => { const url = new URL(config?.url ?? "https://loading..."); document.title = `${statusIconMap[readyState]} ${url.host} | TTUN`; }, [readyState, config?.url]); - const [selectedRequestIndex, setSelectedRequestIndex] = useState< - number | null - >(null); - const selectedRequest = useMemo( - () => (selectedRequestIndex === null ? null : calls[selectedRequestIndex]), - [selectedRequestIndex, calls] - ); - const settingsMenu: (SettingsMenu | null)[] = [ { onClick: toggle, @@ -80,7 +66,7 @@ export default function App() { null, { onClick: () => { - setSelectedRequestIndex(null); + setSelectedCall(null); clear(); }, icon: , @@ -106,14 +92,15 @@ export default function App() { - + - +