useRequests hook

This commit is contained in:
Gregory Schier
2024-03-18 13:49:36 -07:00
parent e2166d8a26
commit 2d6caa1126
4 changed files with 25 additions and 24 deletions

View File

@@ -1,7 +1,6 @@
import type { GrpcRequest, HttpRequest } from '../lib/models';
import { useActiveRequestId } from './useActiveRequestId';
import { useGrpcRequests } from './useGrpcRequests';
import { useHttpRequests } from './useHttpRequests';
import { useRequests } from './useRequests';
interface TypeMap {
http_request: HttpRequest;
@@ -12,16 +11,14 @@ export function useActiveRequest<T extends keyof TypeMap>(
model?: T | undefined,
): TypeMap[T] | null {
const requestId = useActiveRequestId();
const httpRequests = useHttpRequests();
const grpcRequests = useGrpcRequests();
const requests = useRequests();
if (model === 'http_request') {
return (httpRequests.find((r) => r.id === requestId) ?? null) as TypeMap[T] | null;
} else if (model === 'grpc_request') {
return (grpcRequests.find((r) => r.id === requestId) ?? null) as TypeMap[T] | null;
} else {
return (grpcRequests.find((r) => r.id === requestId) ??
httpRequests.find((r) => r.id === requestId) ??
null) as TypeMap[T] | null;
for (const request of requests) {
const modelMatch = model == null ? true : request.model === model;
if (modelMatch && request.id === requestId) {
return request as TypeMap[T];
}
}
return null;
}

View File

@@ -2,18 +2,15 @@ import { useEffect, useMemo } from 'react';
import { getKeyValue } from '../lib/keyValueStore';
import { useActiveRequestId } from './useActiveRequestId';
import { useActiveWorkspaceId } from './useActiveWorkspaceId';
import { useGrpcRequests } from './useGrpcRequests';
import { useHttpRequests } from './useHttpRequests';
import { useKeyValue } from './useKeyValue';
import { useRequests } from './useRequests';
const kvKey = (workspaceId: string) => 'recent_requests::' + workspaceId;
const namespace = 'global';
const fallback: string[] = [];
export function useRecentRequests() {
const httpRequests = useHttpRequests();
const grpcRequests = useGrpcRequests();
const requests = useMemo(() => [...httpRequests, ...grpcRequests], [httpRequests, grpcRequests]);
const requests = useRequests();
const activeWorkspaceId = useActiveWorkspaceId();
const activeRequestId = useActiveRequestId();

View File

@@ -0,0 +1,9 @@
import { useMemo } from 'react';
import { useGrpcRequests } from './useGrpcRequests';
import { useHttpRequests } from './useHttpRequests';
export function useRequests() {
const httpRequests = useHttpRequests();
const grpcRequests = useGrpcRequests();
return useMemo(() => [...httpRequests, ...grpcRequests], [httpRequests, grpcRequests]);
}