import {Panner} from "../Panner/Panner"; import {createEffect, createSignal, ParentProps, Show} from "solid-js"; import { createElementSize } from "@solid-primitives/resize-observer"; export interface MapContainerProps { contentSize: { width: number; height: number; }; onScale?: (scale: number) => any; } export const MapContainer = (props: ParentProps) => { const [container, setContainer] = createSignal(); const size = createElementSize(container); const scale = () => { if (size.width && size.height) { return Math.min(size.width / props.contentSize.width, size.height / props.contentSize.height); } else { return 1; } } createEffect(() => { const s = scale(); if (isFinite(s)) { props.onScale && props.onScale(s); } }); return (
{props.children}
) }