mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-30 19:54:16 -04:00
Add react query devtools
This commit is contained in:
parent
0ac4a1daa0
commit
275a892ee1
@ -20,6 +20,7 @@
|
|||||||
"@material-symbols/svg-400": "^0.14.1",
|
"@material-symbols/svg-400": "^0.14.1",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
||||||
"@tanstack/react-query": "^5.12.1",
|
"@tanstack/react-query": "^5.12.1",
|
||||||
|
"@tanstack/react-query-devtools": "^5.12.2",
|
||||||
"array-shuffle": "^3.0.0",
|
"array-shuffle": "^3.0.0",
|
||||||
"expo-linear-gradient": "^12.5.0",
|
"expo-linear-gradient": "^12.5.0",
|
||||||
"expo-modules-core": "^1.5.12",
|
"expo-modules-core": "^1.5.12",
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
import "../polyfill";
|
import "../polyfill";
|
||||||
|
|
||||||
import { HydrationBoundary, QueryClientProvider } from "@tanstack/react-query";
|
import { HydrationBoundary, QueryClientProvider } from "@tanstack/react-query";
|
||||||
|
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
|
||||||
import { HiddenIfNoJs, SkeletonCss, ThemeSelector } from "@kyoo/primitives";
|
import { HiddenIfNoJs, SkeletonCss, ThemeSelector } from "@kyoo/primitives";
|
||||||
import { WebTooltip } from "@kyoo/primitives/src/tooltip.web";
|
import { WebTooltip } from "@kyoo/primitives/src/tooltip.web";
|
||||||
import {
|
import {
|
||||||
@ -153,6 +154,7 @@ const App = ({ Component, pageProps }: AppProps) => {
|
|||||||
</ThemeSelector>
|
</ThemeSelector>
|
||||||
</HydrationBoundary>
|
</HydrationBoundary>
|
||||||
</AccountProvider>
|
</AccountProvider>
|
||||||
|
<ReactQueryDevtools initialIsOpen={false} />
|
||||||
</QueryClientProvider>
|
</QueryClientProvider>
|
||||||
</>
|
</>
|
||||||
</YoshikiDebug>
|
</YoshikiDebug>
|
||||||
|
@ -23,7 +23,6 @@ import {
|
|||||||
dehydrate,
|
dehydrate,
|
||||||
QueryClient,
|
QueryClient,
|
||||||
QueryFunctionContext,
|
QueryFunctionContext,
|
||||||
QueryOptions,
|
|
||||||
useInfiniteQuery,
|
useInfiniteQuery,
|
||||||
useQuery,
|
useQuery,
|
||||||
} from "@tanstack/react-query";
|
} from "@tanstack/react-query";
|
||||||
@ -37,8 +36,8 @@ const kyooUrl =
|
|||||||
Platform.OS !== "web"
|
Platform.OS !== "web"
|
||||||
? process.env.PUBLIC_BACK_URL
|
? process.env.PUBLIC_BACK_URL
|
||||||
: typeof window === "undefined"
|
: typeof window === "undefined"
|
||||||
? process.env.KYOO_URL ?? "http://localhost:5000"
|
? process.env.KYOO_URL ?? "http://localhost:5000"
|
||||||
: "/api";
|
: "/api";
|
||||||
|
|
||||||
export let kyooApiUrl: string | null = kyooUrl || null;
|
export let kyooApiUrl: string | null = kyooUrl || null;
|
||||||
|
|
||||||
@ -72,8 +71,8 @@ export const queryFn = async <Data,>(
|
|||||||
"path" in context
|
"path" in context
|
||||||
? (context.path.filter((x) => x) as string[])
|
? (context.path.filter((x) => x) as string[])
|
||||||
: "pageParam" in context && context.pageParam
|
: "pageParam" in context && context.pageParam
|
||||||
? [context.pageParam as string]
|
? [context.pageParam as string]
|
||||||
: (context.queryKey.filter((x, i) => x && i) as string[]),
|
: (context.queryKey.filter((x) => x) as string[]),
|
||||||
)
|
)
|
||||||
.join("/")
|
.join("/")
|
||||||
.replace("/?", "?");
|
.replace("/?", "?");
|
||||||
@ -180,11 +179,8 @@ export type QueryPage<Props = {}, Items = unknown> = ComponentType<
|
|||||||
};
|
};
|
||||||
|
|
||||||
const toQueryKey = <Data, Ret>(query: QueryIdentifier<Data, Ret>) => {
|
const toQueryKey = <Data, Ret>(query: QueryIdentifier<Data, Ret>) => {
|
||||||
const prefix = Platform.OS !== "web" ? [kyooApiUrl] : [""];
|
|
||||||
|
|
||||||
if (query.params) {
|
if (query.params) {
|
||||||
return [
|
return [
|
||||||
...prefix,
|
|
||||||
...query.path,
|
...query.path,
|
||||||
"?" +
|
"?" +
|
||||||
Object.entries(query.params)
|
Object.entries(query.params)
|
||||||
@ -193,7 +189,7 @@ const toQueryKey = <Data, Ret>(query: QueryIdentifier<Data, Ret>) => {
|
|||||||
.join("&"),
|
.join("&"),
|
||||||
];
|
];
|
||||||
} else {
|
} else {
|
||||||
return [...prefix, ...query.path];
|
return query.path;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
* along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
* along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Icon, IconButton, tooltip } from "@kyoo/primitives";
|
import { IconButton, tooltip } from "@kyoo/primitives";
|
||||||
import { ComponentProps } from "react";
|
import { ComponentProps } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import BookmarkAdd from "@material-symbols/svg-400/rounded/bookmark_add.svg";
|
import BookmarkAdd from "@material-symbols/svg-400/rounded/bookmark_add.svg";
|
||||||
|
@ -27,9 +27,9 @@ import { DetailsCollections } from "./collection";
|
|||||||
|
|
||||||
const query = (slug: string): QueryIdentifier<Movie> => ({
|
const query = (slug: string): QueryIdentifier<Movie> => ({
|
||||||
parser: MovieP,
|
parser: MovieP,
|
||||||
path: ["movies", slug],
|
path: ["movie", slug],
|
||||||
params: {
|
params: {
|
||||||
fields: ["studio"],
|
fields: ["studio", "watchStatus"],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ export const SeasonHeader = ({
|
|||||||
|
|
||||||
SeasonHeader.query = (slug: string): QueryIdentifier<Season, SeasonProcessed> => ({
|
SeasonHeader.query = (slug: string): QueryIdentifier<Season, SeasonProcessed> => ({
|
||||||
parser: SeasonP,
|
parser: SeasonP,
|
||||||
path: ["shows", slug, "seasons"],
|
path: ["show", slug, "seasons"],
|
||||||
params: {
|
params: {
|
||||||
// Fetch all seasons at one, there won't be hundred of thems anyways.
|
// Fetch all seasons at one, there won't be hundred of thems anyways.
|
||||||
limit: 0,
|
limit: 0,
|
||||||
@ -159,7 +159,7 @@ EpisodeList.query = (
|
|||||||
season: string | number,
|
season: string | number,
|
||||||
): QueryIdentifier<Episode, Episode & { firstOfSeason?: boolean }> => ({
|
): QueryIdentifier<Episode, Episode & { firstOfSeason?: boolean }> => ({
|
||||||
parser: EpisodeP,
|
parser: EpisodeP,
|
||||||
path: ["shows", slug, "episode"],
|
path: ["show", slug, "episode"],
|
||||||
params: {
|
params: {
|
||||||
seasonNumber: season ? `gte:${season}` : undefined,
|
seasonNumber: season ? `gte:${season}` : undefined,
|
||||||
},
|
},
|
||||||
|
@ -81,9 +81,9 @@ const ShowHeader = forwardRef<View, ViewProps & { slug: string }>(function ShowH
|
|||||||
|
|
||||||
const query = (slug: string): QueryIdentifier<Show> => ({
|
const query = (slug: string): QueryIdentifier<Show> => ({
|
||||||
parser: ShowP,
|
parser: ShowP,
|
||||||
path: ["shows", slug],
|
path: ["show", slug],
|
||||||
params: {
|
params: {
|
||||||
fields: ["studio", "firstEpisode"],
|
fields: ["studio", "firstEpisode", "watchStatus"],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -50,6 +50,6 @@
|
|||||||
//
|
//
|
||||||
// Staff.query = (slug: string): QueryIdentifier<Person> => ({
|
// Staff.query = (slug: string): QueryIdentifier<Person> => ({
|
||||||
// parser: PersonP,
|
// parser: PersonP,
|
||||||
// path: ["shows", slug, "people"],
|
// path: ["show", slug, "people"],
|
||||||
// infinite: true,
|
// infinite: true,
|
||||||
// });
|
// });
|
||||||
|
@ -4541,6 +4541,25 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@tanstack/query-devtools@npm:5.12.1":
|
||||||
|
version: 5.12.1
|
||||||
|
resolution: "@tanstack/query-devtools@npm:5.12.1"
|
||||||
|
checksum: 1956ef3edb9f54bae2c80a0a6ffbdcfe9167078f187d05db42a507675e6099857f41f1a5523eeed27dd3e1d2f878c6cf14c5912313823ed49532e210eaf3492a
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@tanstack/react-query-devtools@npm:^5.12.2":
|
||||||
|
version: 5.12.2
|
||||||
|
resolution: "@tanstack/react-query-devtools@npm:5.12.2"
|
||||||
|
dependencies:
|
||||||
|
"@tanstack/query-devtools": 5.12.1
|
||||||
|
peerDependencies:
|
||||||
|
"@tanstack/react-query": ^5.12.2
|
||||||
|
react: ^18.0.0
|
||||||
|
checksum: b08093902d3ae000d4a9d90d249dc9bad9be56d1a84dc0c1ae2784a054c61582a66a8b26db2cb15cd2c160950027ffea253113869ac2fb74f7c82619960d6bdb
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@tanstack/react-query@npm:^5.12.1":
|
"@tanstack/react-query@npm:^5.12.1":
|
||||||
version: 5.12.1
|
version: 5.12.1
|
||||||
resolution: "@tanstack/react-query@npm:5.12.1"
|
resolution: "@tanstack/react-query@npm:5.12.1"
|
||||||
@ -15153,6 +15172,7 @@ __metadata:
|
|||||||
"@radix-ui/react-dropdown-menu": ^2.0.6
|
"@radix-ui/react-dropdown-menu": ^2.0.6
|
||||||
"@svgr/webpack": ^8.1.0
|
"@svgr/webpack": ^8.1.0
|
||||||
"@tanstack/react-query": ^5.12.1
|
"@tanstack/react-query": ^5.12.1
|
||||||
|
"@tanstack/react-query-devtools": ^5.12.2
|
||||||
"@types/node": 20.10.1
|
"@types/node": 20.10.1
|
||||||
"@types/react": 18.2.39
|
"@types/react": 18.2.39
|
||||||
"@types/react-dom": 18.2.17
|
"@types/react-dom": 18.2.17
|
||||||
|
Loading…
x
Reference in New Issue
Block a user