1 import { Component } from 'inferno';
2 import { GetSiteResponse } from 'lemmy-js-client';
3 import { setIsoData } from '../utils';
4 import { i18n } from '../i18next';
5 import { HtmlTags } from './html-tags';
7 interface InstancesState {
8 siteRes: GetSiteResponse;
11 export class Instances extends Component<any, InstancesState> {
12 private isoData = setIsoData(this.context);
13 private emptyState: InstancesState = {
14 siteRes: this.isoData.site_res,
17 constructor(props: any, context: any) {
18 super(props, context);
19 this.state = this.emptyState;
22 get documentTitle(): string {
23 return `${i18n.t('instances')} - ${this.state.siteRes.site_view.site.name}`;
28 <div class="container">
30 title={this.documentTitle}
31 path={this.context.router.route.match.url}
34 <h5>{i18n.t('linked_instances')}</h5>
35 {this.state.siteRes &&
36 this.state.siteRes.federated_instances.length ? (
38 {this.state.siteRes.federated_instances.map(i => (
40 <a href={`https://${i}`} target="_blank" rel="noopener">
47 <div>{i18n.t('none_found')}</div>