"eslint": "^7.18.0",
"eslint-plugin-jane": "^9.0.6",
"husky": "^4.3.8",
- "lemmy-js-client": "0.9.1",
+ "lemmy-js-client": "0.9.4-rc.1",
"lint-staged": "^10.5.3",
"mini-css-extract-plugin": "^1.3.4",
"node-fetch": "^2.6.1",
{i18n.t('modlog')}
</Link>
</li>
- <li class="nav-item">
- <Link className="nav-link" to="/instances">
- {i18n.t('instances')}
- </Link>
- </li>
+ {this.props.site.federated_instances && (
+ <li class="nav-item">
+ <Link className="nav-link" to="/instances">
+ {i18n.t('instances')}
+ </Link>
+ </li>
+ )}
<li class="nav-item">
<a className="nav-link" href={docsUrl}>
{i18n.t('docs')}
}
render() {
+ let federated_instances = this.state.siteRes?.federated_instances;
return (
- <div class="container">
- <HtmlTags
- title={this.documentTitle}
- path={this.context.router.route.match.url}
- />
- <div>
- <h5>{i18n.t('linked_instances')}</h5>
- {this.state.siteRes &&
- this.state.siteRes.federated_instances.length ? (
- <ul>
- {this.state.siteRes.federated_instances.map(i => (
- <li>
- <a href={`https://${i}`} target="_blank" rel="noopener">
- {i}
- </a>
- </li>
- ))}
- </ul>
- ) : (
- <div>{i18n.t('none_found')}</div>
- )}
+ federated_instances && (
+ <div class="container">
+ <HtmlTags
+ title={this.documentTitle}
+ path={this.context.router.route.match.url}
+ />
+ <div class="row">
+ <div class="col-md-6">
+ <h5>{i18n.t('linked_instances')}</h5>
+ {this.itemList(federated_instances.linked)}
+ </div>
+ {federated_instances.allowed.length > 0 && (
+ <div class="col-md-6">
+ <h5>{i18n.t('allowed_instances')}</h5>
+ {this.itemList(federated_instances.allowed)}
+ </div>
+ )}
+ {federated_instances.blocked.length > 0 && (
+ <div class="col-md-6">
+ <h5>{i18n.t('blocked_instances')}</h5>
+ {this.itemList(federated_instances.blocked)}
+ </div>
+ )}
+ </div>
</div>
- </div>
+ )
+ );
+ }
+
+ itemList(items: string[]) {
+ return items.length > 0 ? (
+ <ul>
+ {items.map(i => (
+ <li>
+ <a href={`https://${i}`} target="_blank" rel="noopener">
+ {i}
+ </a>
+ </li>
+ ))}
+ </ul>
+ ) : (
+ <div>{i18n.t('none_found')}</div>
);
}
}
dependencies:
invert-kv "^1.0.0"
-lemmy-js-client@0.9.1:
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.9.1.tgz#2f87666eba74e980d05421042661fb57b673e6b6"
- integrity sha512-Oo/sirk3l/JIN0yQVBCRwGhV3LcXk8WGf2g+42VPsatc4P9Ii/Vrgf9/Eo1M3kEV1aqTJXjTq5+ywaKJB5PUJw==
+lemmy-js-client@0.9.4-rc.1:
+ version "0.9.4-rc.1"
+ resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.9.4-rc.1.tgz#3898a61adc72e8741f3db02f8f595e33dcf37b97"
+ integrity sha512-Z3EnaBe6xglv+5l5mjfPoEpd7FpoP67IPLKBOE8nItQ4CKyE20Sc9gjIc2yUjf/zOmf97XnHvTeZo86Jm458Rg==
levn@^0.4.1:
version "0.4.1"