From 7d154800a0b8d9524215e58194140d41ec850315 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Tue, 4 Apr 2023 08:14:32 -0700 Subject: [PATCH] Remove expects from request sending --- src-tauri/src/main.rs | 21 ++++++++++++++++----- src-web/components/ResponsePane.tsx | 18 +++++++++++++++--- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index da7c14e2..fd637ae0 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -186,12 +186,23 @@ async fn actually_send_ephemeral_request( let raw_response = client.execute(sendable_req).await; - let p = app_handle - .path_resolver() - .resolve_resource("plugins/plugin.ts") - .expect("failed to resolve resource"); + let plugin_rel_path = "plugins/plugin.ts"; + let plugin_path = match app_handle.path_resolver().resolve_resource(plugin_rel_path) { + Some(p) => p, + None => { + return response_err( + response, + format!("Plugin not found at {}", plugin_rel_path), + &app_handle, + pool, + ) + .await; + } + }; - runtime::run_plugin_sync(p.to_str().unwrap()).unwrap(); + if let Err(e) = runtime::run_plugin_sync(plugin_path.to_str().unwrap()) { + return response_err(response, e.to_string(), &app_handle, pool).await; + } match raw_response { Ok(v) => { diff --git a/src-web/components/ResponsePane.tsx b/src-web/components/ResponsePane.tsx index ee6f366e..b26a3e79 100644 --- a/src-web/components/ResponsePane.tsx +++ b/src-web/components/ResponsePane.tsx @@ -18,6 +18,7 @@ import { Icon } from './core/Icon'; import { IconButton } from './core/IconButton'; import { HStack } from './core/Stacks'; import { StatusColor } from './core/StatusColor'; +import type { TabItem } from './core/Tabs/Tabs'; import { TabContent, Tabs } from './core/Tabs/Tabs'; import { Webview } from './core/Webview'; import { EmptyStateText } from './EmptyStateText'; @@ -53,9 +54,20 @@ export const ResponsePane = memo(function ResponsePane({ style, className }: Pro [activeResponse], ); - const tabs = useMemo( + const tabs: TabItem[] = useMemo( () => [ - { label: 'Preview', value: 'body' }, + { + value: 'body', + label: 'Preview', + options: { + value: viewMode, + onChange: toggleViewMode, + items: [ + { label: 'Pretty', value: 'pretty' }, + { label: 'Raw', value: 'raw' }, + ], + }, + }, { label: (
@@ -68,7 +80,7 @@ export const ResponsePane = memo(function ResponsePane({ style, className }: Pro value: 'headers', }, ], - [activeResponse?.headers], + [activeResponse?.headers, toggleViewMode, viewMode], ); return (