import React, {type ComponentProps} from 'react'; import { type QueryFunctionContext, useQuery } from '@tanstack/react-query'; import {createApi, fetchBaseQuery} from "@reduxjs/toolkit/query/react"; import ky from 'ky'; import { baseUrl } from './utils'; import { TextMuted } from './components/TextMuted'; export const versionApi = createApi({ reducerPath: 'versionApi', baseQuery: fetchBaseQuery({ baseUrl: './api/' }), endpoints: (builder) => ({ getVersion: builder.query<{version: string}, undefined>({ query: () => `version`, }), }), }); const { useGetVersionQuery } = versionApi; const Version = () => { const { data = undefined, } = useGetVersionQuery(undefined); return {data === undefined ? null : `${data.version}`} ; } export default Version; export const VersionNext = (props: ComponentProps = {}) => { const { isPending, isError, data, error } = useQuery({ queryKey: ['version'], queryFn: queryFn, staleTime: Infinity, }); if (isError) { return error.message; } if(!isPending) { return {data.version}; } return null; } type VersionQueryKey = ['version']; const queryFn = async (context: QueryFunctionContext) => { return await ky.get(`version`, { baseUrl: baseUrl }).json() as {version: string}; }