31 lines
1,002 B
React
31 lines
1,002 B
React
|
const HanyuuOAuth2AppInfoLink = function(info) {
|
||
|
const element = <a href={info.uri} target="_blank" rel="noopener noreferrer" class="oauth2-appinfo-link" title={info.title}>
|
||
|
<div class="oauth2-appinfo-link-icon oauth2-appinfo-link-icon-globe"></div>
|
||
|
<div class="oauth2-appinfo-link-text">{info.display}</div>
|
||
|
</a>;
|
||
|
|
||
|
return {
|
||
|
get element() { return element; },
|
||
|
};
|
||
|
};
|
||
|
|
||
|
const HanyuuOAuth2AppInfo = function(info) {
|
||
|
const linksElem = <div class="oauth2-appinfo-links"/>;
|
||
|
if(Array.isArray(info.links))
|
||
|
for(const link of info.links)
|
||
|
linksElem.appendChild((new HanyuuOAuth2AppInfoLink(link)).element);
|
||
|
|
||
|
// TODO: author should be listed
|
||
|
const element = <div class="oauth2-appinfo">
|
||
|
<div class="oauth2-appinfo-name">{info.name}</div>
|
||
|
{linksElem}
|
||
|
<div class="oauth2-appinfo-summary">
|
||
|
<p>{info.summary}</p>
|
||
|
</div>
|
||
|
</div>;
|
||
|
|
||
|
return {
|
||
|
get element() { return element; },
|
||
|
};
|
||
|
};
|