import React from 'react' import {View} from 'react-native' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {AppBskyModerationDefs} from '@atproto/api' import {Link as InternalLink, LinkProps} from '#/components/Link' import {Text} from '#/components/Typography' import {useModServiceInfoQuery} from '#/state/queries/modservice' export * as Card from '#/components/ModerationServiceCard/Card' type ModerationServiceProps = { modservice: AppBskyModerationDefs.ModServiceViewDetailed } export function Link({ children, modservice, }: ModerationServiceProps & Pick) { const {_} = useLingui() return ( {children} ) } export function ModerationServiceCardSkeleton() { return ( Loading ) } export function Loader({ did, loading: LoadingComponent = ModerationServiceCardSkeleton, error: ErrorComponent, component: Component, }: { did: string loading?: React.ComponentType<{}> error?: React.ComponentType<{error: string}> component: React.ComponentType<{ modservice: AppBskyModerationDefs.ModServiceViewDetailed }> }) { const {isLoading, data, error} = useModServiceInfoQuery({did}) return isLoading ? ( LoadingComponent ? ( ) : null ) : error || !data ? ( ErrorComponent ? ( ) : null ) : ( ) }