Fix show's 404 page

This commit is contained in:
Zoe Roux 2023-09-11 11:48:16 +02:00
parent 69ba636d74
commit 4b8528af65
2 changed files with 13 additions and 8 deletions

View File

@ -129,7 +129,7 @@ export const queryFn = async <Data,>(
if (!type) return data; if (!type) return data;
const parsed = await type.safeParseAsync(data); const parsed = await type.safeParseAsync(data);
if (!parsed.success) { if (!parsed.success) {
console.log("Parse error: ", parsed.error); console.log("Path: ", path, " Response: ", resp.status, " Parse error: ", parsed.error);
throw { throw {
errors: [ errors: [
"Invalid response from kyoo. Possible version mismatch between the server and the application.", "Invalid response from kyoo. Possible version mismatch between the server and the application.",

View File

@ -108,7 +108,7 @@ const InfiniteScroll = <Props,>({
); );
}; };
export const InfiniteFetch = <Data, _>({ export const InfiniteFetch = <Data, _, HeaderProps>({
query, query,
incremental = false, incremental = false,
placeholderCount = 15, placeholderCount = 15,
@ -118,6 +118,7 @@ export const InfiniteFetch = <Data, _>({
empty, empty,
divider: Divider = false, divider: Divider = false,
Header, Header,
headerProps,
getItemType, getItemType,
...props ...props
}: { }: {
@ -132,7 +133,8 @@ export const InfiniteFetch = <Data, _>({
) => ReactElement | null; ) => ReactElement | null;
empty?: string | JSX.Element; empty?: string | JSX.Element;
divider?: boolean | ComponentType; divider?: boolean | ComponentType;
Header?: ComponentType<{ children: JSX.Element }> | ReactElement; Header?: ComponentType<{ children: JSX.Element } & HeaderProps> | ReactElement;
headerProps: HeaderProps,
getItemType?: (item: Data, index: number) => string | number; getItemType?: (item: Data, index: number) => string | number;
}): JSX.Element | null => { }): JSX.Element | null => {
if (!query.infinite) console.warn("A non infinite query was passed to an InfiniteFetch."); if (!query.infinite) console.warn("A non infinite query was passed to an InfiniteFetch.");
@ -145,7 +147,7 @@ export const InfiniteFetch = <Data, _>({
if (incremental && items) oldItems.current = items; if (incremental && items) oldItems.current = items;
if (error) return addHeader(Header, <ErrorView error={error} />); if (error) return addHeader(Header, <ErrorView error={error} />, headerProps);
if (empty && items && items.length === 0) { if (empty && items && items.length === 0) {
if (typeof empty !== "string") return empty; if (typeof empty !== "string") return empty;
return <EmptyView message={empty} />; return <EmptyView message={empty} />;
@ -164,6 +166,7 @@ export const InfiniteFetch = <Data, _>({
</Fragment> </Fragment>
))} ))}
Header={Header} Header={Header}
headerProps={headerProps}
{...props} {...props}
> >
{(items ?? oldItems.current)?.map((item, i) => ( {(items ?? oldItems.current)?.map((item, i) => (
@ -176,13 +179,15 @@ export const InfiniteFetch = <Data, _>({
); );
}; };
const addHeader = ( const addHeader = <Props,>(
Header: ComponentType<{ children: JSX.Element }> | ReactElement | undefined, Header: ComponentType<{ children: JSX.Element } & Props> | ReactElement | undefined,
children: ReactElement, children: ReactElement,
headerProps?: Props
) => { ) => {
if (!Header) return children; if (!Header) return children;
return typeof Header === "function" ? ( return !isValidElement(Header) ? (
<Header>{children}</Header> // @ts-ignore
<Header {...(headerProps ?? {})}>{children}</Header>
) : ( ) : (
<> <>
{Header} {Header}