pl-fe: migrate /api/v*/instance to tanstack query

Signed-off-by: mkljczk <git@mkljczk.pl>
This commit is contained in:
mkljczk
2024-12-03 15:03:17 +01:00
parent 2086e027ad
commit 1f8b79f309
79 changed files with 240 additions and 337 deletions

View File

@ -0,0 +1,23 @@
import { useQuery } from '@tanstack/react-query';
import { instanceSchema } from 'pl-api';
import * as v from 'valibot';
import { useClient } from 'pl-fe/hooks/use-client';
import { initialState } from 'pl-fe/initial-state';
const placeholderData = v.parse(instanceSchema, {});
const initialData = initialState['/api/v1/instance'] ? v.parse(instanceSchema, initialState['/api/v1/instance']) : undefined;
const useInstance = () => {
const client = useClient();
const query = useQuery({
queryKey: ['instance', 'instanceInformation', client.baseURL],
queryFn: client.instance.getInstance,
initialData: client.baseURL === '' ? initialData : undefined,
});
return { ...query, data: query.data || placeholderData };
};
export { useInstance };

View File

@ -1,15 +1,15 @@
import { useQuery } from '@tanstack/react-query';
import { useInstance } from 'pl-fe/api/hooks/instance/use-instance';
import { useClient } from 'pl-fe/hooks/use-client';
import { useFeatures } from 'pl-fe/hooks/use-features';
import { useInstance } from 'pl-fe/hooks/use-instance';
import { useLoggedIn } from 'pl-fe/hooks/use-logged-in';
const useTranslationLanguages = () => {
const client = useClient();
const { isLoggedIn } = useLoggedIn();
const features = useFeatures();
const instance = useInstance();
const { data: instance } = useInstance();
const getTranslationLanguages = async () => {
const metadata = instance.pleroma.metadata;

View File

@ -1,8 +1,8 @@
import { useEffect, useRef } from 'react';
import { useInstance } from 'pl-fe/api/hooks/instance/use-instance';
import { useAppSelector } from 'pl-fe/hooks/use-app-selector';
import { useClient } from 'pl-fe/hooks/use-client';
import { useInstance } from 'pl-fe/hooks/use-instance';
import { getAccessToken } from 'pl-fe/utils/auth';
import type { StreamingEvent } from 'pl-api';
@ -12,7 +12,7 @@ const useTimelineStream = (stream: string, params: { list?: string; tag?: string
const client = useClient();
const instance = useInstance();
const { data: instance } = useInstance();
const socket = useRef<({
listen: (listener: any, stream?: string) => number;
unlisten: (listener: any) => void;