03a4410272
主要工作是共享同一套“画布内核与通用 UI 源码”,网站和 Tauri 只分别实现宿主适配层。 --------- Co-authored-by: 段舒康 <kdletters@qq.com> Co-authored-by: kdletters <kdletters@qq.com> Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/136 Co-authored-by: menghao <mh18530625731@163.com> Co-committed-by: menghao <mh18530625731@163.com>
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import type { StageMinimapModel } from '@genarrative/image-canvas-core';
|
|
import type { PointerEventHandler, Ref } from 'react';
|
|
|
|
export function Minimap({
|
|
className = '',
|
|
layerClassName = '',
|
|
minimapRef,
|
|
model,
|
|
onPointerDown,
|
|
stageClassName = '',
|
|
viewportClassName = '',
|
|
}: {
|
|
className?: string;
|
|
layerClassName?: string;
|
|
minimapRef?: Ref<HTMLButtonElement>;
|
|
model: StageMinimapModel;
|
|
onPointerDown: PointerEventHandler<HTMLButtonElement>;
|
|
stageClassName?: string;
|
|
viewportClassName?: string;
|
|
}) {
|
|
return (
|
|
<button
|
|
ref={minimapRef}
|
|
type="button"
|
|
className={`genarrative-image-canvas__minimap ${className}`.trim()}
|
|
aria-label="画布小地图"
|
|
title="拖拽移动视图"
|
|
onPointerDown={onPointerDown}
|
|
>
|
|
<span
|
|
className={`genarrative-image-canvas__minimap-stage ${stageClassName}`.trim()}
|
|
>
|
|
{model.layers.map((layer) => (
|
|
<span
|
|
key={layer.id}
|
|
className={`genarrative-image-canvas__minimap-layer ${layerClassName}`.trim()}
|
|
title={layer.title}
|
|
style={layer.rect}
|
|
/>
|
|
))}
|
|
<span
|
|
className={`genarrative-image-canvas__minimap-viewport ${viewportClassName}`.trim()}
|
|
style={model.viewport}
|
|
/>
|
|
</span>
|
|
</button>
|
|
);
|
|
}
|