renamed SearchResponse to ServiceItem in frontend
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
import { apiFetch } from "./client";
|
||||
import type { PagedSearchResponse, SearchRequest, SearchResponse } from "../types/search";
|
||||
import type {
|
||||
PagedSearchResponse,
|
||||
SearchRequest,
|
||||
ServiceItem,
|
||||
} from "../types/search";
|
||||
|
||||
export const search = (req: SearchRequest) =>
|
||||
apiFetch<PagedSearchResponse<SearchResponse>>("/search", {
|
||||
apiFetch<PagedSearchResponse<ServiceItem>>("/search", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(req),
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useEffect, useRef, useState, type SyntheticEvent } from 'react'
|
||||
import '../ui/Modal.scss'
|
||||
import { type PagedSearchResponse, type SearchResponse, type SearchRequest } from '../../types/search'
|
||||
import { type PagedSearchResponse, type ServiceItem, type SearchRequest } from '../../types/search'
|
||||
import { search } from '../../api/searches'
|
||||
import type { ServiceType } from '../../types/connection'
|
||||
|
||||
@@ -14,11 +14,13 @@ interface Props {
|
||||
|
||||
export function SearchModal({ serviceType, label, appUrl, username, onClose }: Readonly<Props>) {
|
||||
const [query, setQuery] = useState('')
|
||||
const [results, setResults] = useState<PagedSearchResponse<SearchResponse> | null>(null)
|
||||
const [results, setResults] = useState<PagedSearchResponse<ServiceItem> | null>(null)
|
||||
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [error, setError] = useState<string | null>(null)
|
||||
//TODO: implement aiSearch
|
||||
const [aiSearch, setAiSearch] = useState(false);
|
||||
const firstInputRef = useRef<HTMLInputElement>(null)
|
||||
|
||||
const dialogRef = useRef<HTMLDialogElement>(null)
|
||||
|
||||
useEffect(() => {
|
||||
@@ -41,7 +43,7 @@ export function SearchModal({ serviceType, label, appUrl, username, onClose }: R
|
||||
setError(null)
|
||||
setLoading(true)
|
||||
try {
|
||||
const req: SearchRequest = { appUrl, serviceType, username, query}
|
||||
const req: SearchRequest = { appUrl, serviceType, username, query, aiSearch}
|
||||
const res = await search(req)
|
||||
console.log(req)
|
||||
setResults(res)
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
import type { ServiceType } from "./connection";
|
||||
|
||||
export interface SearchRequest {
|
||||
appUrl: string
|
||||
serviceType: ServiceType
|
||||
username: string
|
||||
query: string | null
|
||||
appUrl: string;
|
||||
serviceType: ServiceType;
|
||||
username: string;
|
||||
query: string | null;
|
||||
aiSearch: boolean;
|
||||
}
|
||||
|
||||
export interface SearchResponse {
|
||||
id: string
|
||||
title: string
|
||||
description: string | null
|
||||
extraData: Record<string, unknown>
|
||||
export interface ServiceItem {
|
||||
id: string;
|
||||
title: string;
|
||||
description: string | null;
|
||||
extraData: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export interface PagedSearchResponse<T> {
|
||||
content: T[]
|
||||
page: number
|
||||
pageSize: number
|
||||
totalElements: number
|
||||
first: boolean
|
||||
last: boolean
|
||||
sort: string
|
||||
content: T[];
|
||||
page: number;
|
||||
pageSize: number;
|
||||
totalElements: number;
|
||||
first: boolean;
|
||||
last: boolean;
|
||||
sort: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user