diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index daddf79d..c9b48bd5 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -91,8 +91,6 @@ async fn actually_send_ephemeral_request( url_string = format!("http://{}", url_string); } - println!("Sending request to {}", url_string); - let client = reqwest::Client::builder() .redirect(Policy::none()) // .danger_accept_invalid_certs(true) diff --git a/src-web/components/HeaderEditor.tsx b/src-web/components/HeaderEditor.tsx index c277bbb9..04c83637 100644 --- a/src-web/components/HeaderEditor.tsx +++ b/src-web/components/HeaderEditor.tsx @@ -63,7 +63,7 @@ const validateHttpHeader = (v: string) => { return true; } - const hi = v.replace(/\$\{\[\s*[^\]\s]+\s*]}/gi, 'fo'); - console.log('V', v, '-->', hi); - return v.match(/^[a-zA-Z0-9-_]+$/) !== null; + // Template strings are not allowed so we replace them with a valid example string + const withoutTemplateStrings = v.replace(/\$\{\[\s*[^\]\s]+\s*]}/gi, '123'); + return withoutTemplateStrings.match(/^[a-zA-Z0-9-_]+$/) !== null; }; diff --git a/src-web/components/RecentRequestsDropdown.tsx b/src-web/components/RecentRequestsDropdown.tsx index 2b2f4c36..8dee9450 100644 --- a/src-web/components/RecentRequestsDropdown.tsx +++ b/src-web/components/RecentRequestsDropdown.tsx @@ -15,9 +15,10 @@ export function RecentRequestsDropdown() { const dropdownRef = useRef(null); const activeRequest = useActiveRequest(); const activeWorkspaceId = useActiveWorkspaceId(); - const recentRequestIds = useRecentRequests(); const requests = useRequests(); const routes = useAppRoutes(); + const allRecentRequestIds = useRecentRequests(); + const recentRequestIds = useMemo(() => allRecentRequestIds.slice(1), [allRecentRequestIds]); // Toggle the menu on Cmd+k useKey('k', (e) => { diff --git a/src-web/hooks/useRecentRequests.ts b/src-web/hooks/useRecentRequests.ts index 68368685..3eebf982 100644 --- a/src-web/hooks/useRecentRequests.ts +++ b/src-web/hooks/useRecentRequests.ts @@ -14,23 +14,26 @@ export function useRecentRequests() { [], ); - useEffect(() => { - setLSState(history); - }, [history, setLSState]); - + // Load local storage state on initial render useEffectOnce(() => { if (lsState) { setHistory(lsState); } }); + // Update local storage state when history changes useEffect(() => { - setHistory((h: string[]) => { - if (activeRequestId === null) return h; - const withoutCurrentRequest = h.filter((id) => id !== activeRequestId); + setLSState(history); + }, [history, setLSState]); + + // Set history when active request changes + useEffect(() => { + setHistory((currentHistory: string[]) => { + if (activeRequestId === null) return currentHistory; + const withoutCurrentRequest = currentHistory.filter((id) => id !== activeRequestId); return [activeRequestId, ...withoutCurrentRequest]; }); }, [activeRequestId, setHistory]); - return history.slice(1); + return history; }