{ "version": 3, "sources": ["../javascripts/Data/Article/useArticles.ts"], "sourcesContent": ["import { useQuery } from '@tanstack/react-query';\nimport { useCallback, useState } from 'react';\n\nimport type { Article } from '../../@types/ArticleV2';\nimport type { ElasticSearchResponse } from '../../@types/ElasticSearchResponse';\nimport type { RequestStateQuery } from '../../@types/RequestStateQuery';\nimport type { ApiResponse } from '../../Http';\nimport { buildGetRequest } from '../../Http/requestTemplates';\nimport useHttp from '../../Http/useHttp';\nimport { ARTICLES_QUERY } from './QueryKeys';\n\nconst useArticles = (\n _searchParams?: URLSearchParams,\n): [\n ApiResponse> | undefined,\n RequestStateQuery,\n (s: URLSearchParams) => void,\n URLSearchParams,\n] => {\n const { httpJson } = useHttp();\n\n const [searchParams, setSearchParams] = useState(\n _searchParams || new URLSearchParams(),\n );\n\n const params = new URLSearchParams(searchParams);\n const query = params.toString().replaceAll('+', ' ');\n\n const get = useCallback(\n async () =>\n httpJson>>(\n `/api/articles?search=${encodeURIComponent(query)}`,\n buildGetRequest(),\n ),\n [query],\n );\n\n const { data, isPending, isSuccess, isError } = useQuery<\n ApiResponse>\n >({\n queryKey: [ARTICLES_QUERY, query],\n queryFn: get,\n\n retry: false,\n refetchOnWindowFocus: false,\n gcTime: Number.POSITIVE_INFINITY,\n staleTime: Number.POSITIVE_INFINITY,\n });\n\n return [data, { isLoading: isPending, isSuccess, isError }, setSearchParams, searchParams];\n};\n\nexport default useArticles;\n"], "mappings": "kPACA,IAAAA,EAAsC,SAUtC,IAAMC,EACJC,GAMG,CACH,GAAM,CAAE,SAAAC,CAAS,EAAIC,EAAQ,EAEvB,CAACC,EAAcC,CAAe,KAAI,YACtCJ,GAAiB,IAAI,eACvB,EAGMK,EADS,IAAI,gBAAgBF,CAAY,EAC1B,SAAS,EAAE,WAAW,IAAK,GAAG,EAE7CG,KAAM,eACV,SACEL,EACE,wBAAwB,mBAAmBI,CAAK,CAAC,GACjDE,EAAgB,CAClB,EACF,CAACF,CAAK,CACR,EAEM,CAAE,KAAAG,EAAM,UAAAC,EAAW,UAAAC,EAAW,QAAAC,CAAQ,EAAIC,EAE9C,CACA,SAAU,CAACC,EAAgBR,CAAK,EAChC,QAASC,EAET,MAAO,GACP,qBAAsB,GACtB,OAAQ,OAAO,kBACf,UAAW,OAAO,iBACpB,CAAC,EAED,MAAO,CAACE,EAAM,CAAE,UAAWC,EAAW,UAAAC,EAAW,QAAAC,CAAQ,EAAGP,EAAiBD,CAAY,CAC3F,EAEOW,EAAQf", "names": ["import_react", "useArticles", "_searchParams", "httpJson", "useHttp_default", "searchParams", "setSearchParams", "query", "get", "buildGetRequest", "data", "isPending", "isSuccess", "isError", "useQuery", "ARTICLES_QUERY", "useArticles_default"] }