From fa1f33a2ace73019f5fa8bc52585effe2a0734f2 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Mon, 13 Mar 2023 09:24:38 -0700 Subject: [PATCH] Move some stuff around --- src-tauri/icons/icon.icns | Bin 616124 -> 616124 bytes src-web/App.tsx | 89 +++++++++++++++++++++++++++++ src-web/components/AppRouter.tsx | 2 +- src-web/main.tsx | 90 +----------------------------- src-web/{ => pages}/Workspace.tsx | 12 ++-- tsconfig.json | 6 +- 6 files changed, 104 insertions(+), 95 deletions(-) create mode 100644 src-web/App.tsx rename src-web/{ => pages}/Workspace.tsx (81%) diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns index bc6522e163e1970cebf2e6162d7133003be86054..24843975a42f42631fce2258b3c915b0b83c9007 100644 GIT binary patch delta 86 zcmdmUR&~!=)eRAx+u!eF^pn``f0842ZoAcWMj&PaVrC#_*=}{6by03JP*DUY { + queryClient.setQueryData( + requestsQueryKey(request.workspaceId), + (requests: HttpRequest[] = []) => { + const newRequests = []; + let found = false; + for (const r of requests) { + if (r.id === request.id) { + found = true; + newRequests.push(convertDates(request)); + } else { + newRequests.push(r); + } + } + if (!found) { + newRequests.push(convertDates(request)); + } + return newRequests; + }, + ); +}); + +await listen('deleted_request', ({ payload: request }: { payload: HttpRequest }) => { + queryClient.setQueryData(requestsQueryKey(request.workspaceId), (requests: HttpRequest[] = []) => + requests.filter((r) => r.id !== request.id), + ); +}); + +await listen('updated_response', ({ payload: response }: { payload: HttpResponse }) => { + queryClient.setQueryData( + responsesQueryKey(response.requestId), + (responses: HttpResponse[] = []) => { + const newResponses = []; + let found = false; + for (const r of responses) { + if (r.id === response.id) { + found = true; + newResponses.push(convertDates(response)); + } else { + newResponses.push(r); + } + } + if (!found) { + newResponses.push(convertDates(response)); + } + return newResponses; + }, + ); +}); + +await listen('zoom', ({ payload: zoomDelta }: { payload: number }) => { + const fontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize); + + let newFontSize; + if (zoomDelta === 0) { + newFontSize = DEFAULT_FONT_SIZE; + } else if (zoomDelta > 0) { + newFontSize = Math.min(fontSize * 1.1, DEFAULT_FONT_SIZE * 5); + } else if (zoomDelta < 0) { + newFontSize = Math.max(fontSize * 0.9, DEFAULT_FONT_SIZE * 0.4); + } + + document.documentElement.style.fontSize = `${newFontSize}px`; +}); + +export function App() { + return ( + + + + + + + + ); +} diff --git a/src-web/components/AppRouter.tsx b/src-web/components/AppRouter.tsx index 34f215c5..85f244c1 100644 --- a/src-web/components/AppRouter.tsx +++ b/src-web/components/AppRouter.tsx @@ -1,6 +1,6 @@ import { Router } from 'preact-router'; import { Workspaces } from '../pages/Workspaces'; -import { Workspace } from '../Workspace'; +import { Workspace } from '../pages/Workspace'; export function AppRouter() { return ( diff --git a/src-web/main.tsx b/src-web/main.tsx index 9c04ae37..a46f22fe 100644 --- a/src-web/main.tsx +++ b/src-web/main.tsx @@ -1,93 +1,9 @@ -import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import { listen } from '@tauri-apps/api/event'; -import { MotionConfig } from 'framer-motion'; import { render } from 'preact'; -import { HelmetProvider } from 'react-helmet-async'; -import { AppRouter } from './components/AppRouter'; -import { requestsQueryKey } from './hooks/useRequest'; -import { responsesQueryKey } from './hooks/useResponses'; -import { DEFAULT_FONT_SIZE } from './lib/constants'; -import type { HttpRequest, HttpResponse } from './lib/models'; -import { convertDates } from './lib/models'; +import { App } from './App'; import { setAppearance } from './lib/theme/window'; import './main.css'; setAppearance(); -const queryClient = new QueryClient(); - -await listen('updated_request', ({ payload: request }: { payload: HttpRequest }) => { - queryClient.setQueryData( - requestsQueryKey(request.workspaceId), - (requests: HttpRequest[] = []) => { - const newRequests = []; - let found = false; - for (const r of requests) { - if (r.id === request.id) { - found = true; - newRequests.push(convertDates(request)); - } else { - newRequests.push(r); - } - } - if (!found) { - newRequests.push(convertDates(request)); - } - return newRequests; - }, - ); -}); - -await listen('deleted_request', ({ payload: request }: { payload: HttpRequest }) => { - queryClient.setQueryData(requestsQueryKey(request.workspaceId), (requests: HttpRequest[] = []) => - requests.filter((r) => r.id !== request.id), - ); -}); - -await listen('updated_response', ({ payload: response }: { payload: HttpResponse }) => { - queryClient.setQueryData( - responsesQueryKey(response.requestId), - (responses: HttpResponse[] = []) => { - const newResponses = []; - let found = false; - for (const r of responses) { - if (r.id === response.id) { - found = true; - newResponses.push(convertDates(response)); - } else { - newResponses.push(r); - } - } - if (!found) { - newResponses.push(convertDates(response)); - } - return newResponses; - }, - ); -}); - -await listen('zoom', ({ payload: zoomDelta }: { payload: number }) => { - const fontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize); - - let newFontSize; - if (zoomDelta === 0) { - newFontSize = DEFAULT_FONT_SIZE; - } else if (zoomDelta > 0) { - newFontSize = Math.min(fontSize * 1.1, DEFAULT_FONT_SIZE * 5); - } else if (zoomDelta < 0) { - newFontSize = Math.max(fontSize * 0.9, DEFAULT_FONT_SIZE * 0.4); - } - - document.documentElement.style.fontSize = `${newFontSize}px`; -}); - -render( - - - - - - - , - document.getElementById('root') as HTMLElement, -); +// root holds our app's root DOM Element: +render(, document.getElementById('root') as HTMLElement); diff --git a/src-web/Workspace.tsx b/src-web/pages/Workspace.tsx similarity index 81% rename from src-web/Workspace.tsx rename to src-web/pages/Workspace.tsx index ca48b197..cac408c3 100644 --- a/src-web/Workspace.tsx +++ b/src-web/pages/Workspace.tsx @@ -1,11 +1,11 @@ import classnames from 'classnames'; import { useWindowSize } from 'react-use'; -import { RequestPane } from './components/RequestPane'; -import { ResponsePane } from './components/ResponsePane'; -import { Sidebar } from './components/Sidebar'; -import { HStack } from './components/Stacks'; -import { WindowDragRegion } from './components/WindowDragRegion'; -import { useRequests } from './hooks/useRequest'; +import { RequestPane } from '../components/RequestPane'; +import { ResponsePane } from '../components/ResponsePane'; +import { Sidebar } from '../components/Sidebar'; +import { HStack } from '../components/Stacks'; +import { WindowDragRegion } from '../components/WindowDragRegion'; +import { useRequests } from '../hooks/useRequest'; type Params = { workspaceId: string; diff --git a/tsconfig.json b/tsconfig.json index 0b7339bb..b0edfc87 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -16,7 +16,11 @@ "isolatedModules": true, "noEmit": true, "jsx": "react-jsx", - "jsxImportSource": "preact" + "jsxImportSource": "preact", + "paths": { + "react": ["./node_modules/preact/compat/"], + "react-dom": ["./node_modules/preact/compat/"] + }, }, "include": [ "src-web"