hexo-theme-amane/layout/common/donates.jsx

37 lines
1.4 KiB
React
Raw Normal View History

2024-02-03 08:02:38 +00:00
const createLogger = require('hexo-log');
2019-12-23 21:18:59 +00:00
const { Component } = require('inferno');
const view = require('hexo-component-inferno/lib/core/view');
2019-12-23 21:18:59 +00:00
const logger = typeof createLogger === 'function' ? createLogger() : createLogger.default();
2024-02-03 08:02:38 +00:00
2019-12-23 21:18:59 +00:00
module.exports = class extends Component {
render() {
const { config, helper } = this.props;
const { __ } = helper;
const { donates = [] } = config;
if (!Array.isArray(donates) || !donates.length) {
2019-12-23 21:18:59 +00:00
return null;
}
return <div class="card">
<div class="card-content">
<h3 class="menu-label has-text-centered">{__('donate.title')}</h3>
<div class="buttons is-centered">
{donates.map(service => {
2019-12-23 21:18:59 +00:00
const type = service.type;
if (typeof type === 'string') {
try {
let Donate = view.require('donate/' + type);
Donate = Donate.Cacheable ? Donate.Cacheable : Donate;
2019-12-23 21:18:59 +00:00
return <Donate helper={helper} donate={service} />;
} catch (e) {
logger.w(`Icarus cannot load donate button "${type}"`);
2019-12-23 21:18:59 +00:00
}
}
return null;
})}
</div>
</div>
</div>;
}
};