fix: logins now refresh on plugins load
feat: Added tar archive support fix: Downloaded games and emulator execute permission now updated fix: Fixed rclone for linux fix: on screen keyaboard only now shows up when using a gamepad or touch
This commit is contained in:
parent
6aacec2c0d
commit
7bd0ebdcca
39 changed files with 523 additions and 275 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import { DefaultRommStaleTime, GameListFilterType, RommLoginDataSchema } from "@/shared/constants";
|
||||
import { rommApi, settingsApi } from "../clientApi";
|
||||
import { InvalidateQueryFilters, mutationOptions, QueryFilters, queryOptions, useMutation } from "@tanstack/react-query";
|
||||
import { InvalidateQueryFilters, mutationOptions, QueryClient, QueryFilters, queryOptions, useMutation } from "@tanstack/react-query";
|
||||
import z from "zod";
|
||||
import { statsApiStatsGetOptions } from "@/clients/romm/@tanstack/react-query.gen";
|
||||
|
||||
|
|
@ -23,6 +23,20 @@ export const gameQuery = (source: string, id: string) => queryOptions({
|
|||
},
|
||||
});
|
||||
export const rommLogoutMutation = mutationOptions({ mutationKey: ["romm", "auth", "logout"], mutationFn: () => rommApi.api.romm.logout.romm.post() });
|
||||
export const invalidateLogin = (client: QueryClient) =>
|
||||
{
|
||||
return client.invalidateQueries({
|
||||
predicate (query)
|
||||
{
|
||||
return query.queryKey.includes('auth')
|
||||
|| query.queryKey.includes('games')
|
||||
|| query.queryKey.includes('game')
|
||||
|| query.queryKey.includes('platform')
|
||||
|| query.queryKey.includes('platforms')
|
||||
|| query.queryKey.includes('collections');
|
||||
},
|
||||
});
|
||||
};
|
||||
export const rommQrLoginMutation = mutationOptions({
|
||||
mutationKey: ['login', 'qr', 'cancel'],
|
||||
mutationFn: async () =>
|
||||
|
|
@ -30,7 +44,11 @@ export const rommQrLoginMutation = mutationOptions({
|
|||
const { data, error } = await rommApi.api.romm.login.romm.qr.post();
|
||||
if (error) throw error;
|
||||
return data;
|
||||
}
|
||||
},
|
||||
onSuccess: (d, v, r, c) =>
|
||||
{
|
||||
invalidateLogin(c.client);
|
||||
},
|
||||
});
|
||||
export const rommLoginMutation = mutationOptions({
|
||||
mutationKey: ["romm", "login"],
|
||||
|
|
@ -41,7 +59,7 @@ export const rommLoginMutation = mutationOptions({
|
|||
},
|
||||
onSuccess: (d, v, r, c) =>
|
||||
{
|
||||
c.client.invalidateQueries({ queryKey: ['romm', 'auth'] });
|
||||
invalidateLogin(c.client);
|
||||
},
|
||||
onError: (e) =>
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import { mutationOptions, queryOptions } from "@tanstack/react-query";
|
|||
import { getErrorMessage } from "react-error-boundary";
|
||||
import toast from "react-hot-toast";
|
||||
import { rommApi, settingsApi } from "../clientApi";
|
||||
import { invalidateLogin } from "./romm";
|
||||
|
||||
export const changeDownloadsMutation = mutationOptions({
|
||||
mutationKey: ["setting", "downloads"],
|
||||
|
|
@ -29,21 +30,25 @@ export const autoEmulatorsQuery = queryOptions({
|
|||
}
|
||||
});
|
||||
export const twitchLogoutMutation = mutationOptions({
|
||||
mutationKey: ['twitch', 'logout'],
|
||||
mutationKey: ['twitch', 'auth', 'logout'],
|
||||
mutationFn: () =>
|
||||
{
|
||||
return rommApi.api.romm.logout.twitch.post();
|
||||
}
|
||||
});
|
||||
export const twitchLoginMutation = mutationOptions({
|
||||
mutationKey: ['twitch', 'login'],
|
||||
mutationKey: ['twitch', 'auth', 'login'],
|
||||
mutationFn: (openInBrowser: boolean) =>
|
||||
{
|
||||
return rommApi.api.romm.login.twitch.post({ openInBrowser });
|
||||
}
|
||||
},
|
||||
onSuccess (data, variables, onMutateResult, context)
|
||||
{
|
||||
invalidateLogin(context.client);
|
||||
},
|
||||
});
|
||||
export const twitchLoginVerificationQuery = queryOptions({
|
||||
queryKey: ['twitch', 'login', 'status'],
|
||||
queryKey: ['twitch', 'login', 'status', 'auth'],
|
||||
retry (failureCount, error)
|
||||
{
|
||||
if ((error as any).status === 404)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue