You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
753 B
29 lines
753 B
import { getProviderMetadata, MWPortableMedia } from "providers"; |
|
import { ReactElement } from "react"; |
|
import { NotFoundMedia, NotFoundProvider } from "./NotFoundView"; |
|
|
|
export interface NotFoundChecksProps { |
|
portable: MWPortableMedia | undefined; |
|
children?: ReactElement; |
|
} |
|
|
|
/* |
|
** Component that only renders children if the passed-in portable is fully correct |
|
*/ |
|
export function NotFoundChecks( |
|
props: NotFoundChecksProps |
|
): ReactElement | null { |
|
const providerMeta = props.portable |
|
? getProviderMetadata(props.portable.providerId) |
|
: undefined; |
|
|
|
if (!providerMeta || !providerMeta.exists) { |
|
return <NotFoundMedia />; |
|
} |
|
|
|
if (!providerMeta.enabled) { |
|
return <NotFoundProvider />; |
|
} |
|
|
|
return props.children || null; |
|
}
|
|
|