Phase 6
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import { h } from 'preact';
|
||||
import type { Widget } from '../lib/types';
|
||||
|
||||
interface Props { widget: Widget; onContextMenu?: (e: MouseEvent) => void; }
|
||||
|
||||
export default function ImageWidget({ widget, onContextMenu }: Props) {
|
||||
const url = widget.options['url'] ?? '';
|
||||
const fit = widget.options['fit'] ?? 'contain'; // contain | cover | fill
|
||||
const alt = widget.options['alt'] ?? '';
|
||||
const border = widget.options['border'] !== 'false';
|
||||
|
||||
return (
|
||||
<div
|
||||
class="image-widget"
|
||||
style={`left:${widget.x}px;top:${widget.y}px;width:${widget.w}px;height:${widget.h}px;${border ? '' : 'border:none;'}`}
|
||||
onContextMenu={onContextMenu}
|
||||
>
|
||||
{url
|
||||
? <img src={url} alt={alt} style={`object-fit:${fit};width:100%;height:100%;display:block;`} />
|
||||
: <span class="image-placeholder">No URL</span>
|
||||
}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user