import {UIEventSource} from "../UIEventSource"; import {UIElement} from "../UIElement"; import {SimpleImageElement} from "./SimpleImageElement"; import {LicenseInfo, Wikimedia} from "../../Logic/Wikimedia"; export class WikimediaImage extends UIElement { private _imageMeta: UIEventSource; constructor(source: UIEventSource) { super(source) const meta = new UIEventSource(new LicenseInfo()); this.ListenTo(meta); this._imageMeta = meta; this._source.addCallback(() => { Wikimedia.LicenseData(source.data, (info) => { meta.setData(info); }) }); this._source.ping(); } protected InnerRender(): string { let url = Wikimedia.ImageNameToUrl(this._source.data); url = url.replace(/'/g, '%27'); return "
" + "
" + "" + (this._source.data) + "
" + (this._imageMeta.data.artist ?? "Unknown artist") + " " + (this._imageMeta.data.licenseShortName ?? "") + "
" + "
"; } }