import { Component } from 'inferno'; import { GetSiteResponse } from 'lemmy-js-client'; import { setIsoData } from '../utils'; import { i18n } from '../i18next'; import { HtmlTags } from './html-tags'; interface InstancesState { siteRes: GetSiteResponse; } export class Instances extends Component { private isoData = setIsoData(this.context); private emptyState: InstancesState = { siteRes: this.isoData.site_res, }; constructor(props: any, context: any) { super(props, context); this.state = this.emptyState; } get documentTitle(): string { return `${i18n.t('instances')} - ${this.state.siteRes.site_view.site.name}`; } render() { let federated_instances = this.state.siteRes?.federated_instances; return ( federated_instances && (
{i18n.t('linked_instances')}
{this.itemList(federated_instances.linked)}
{federated_instances.allowed.length > 0 && (
{i18n.t('allowed_instances')}
{this.itemList(federated_instances.allowed)}
)} {federated_instances.blocked.length > 0 && (
{i18n.t('blocked_instances')}
{this.itemList(federated_instances.blocked)}
)}
) ); } itemList(items: string[]) { return items.length > 0 ? ( ) : (
{i18n.t('none_found')}
); } }