(props: {
tileset: Accessor<Tileset | undefined>;
setTileset: Setter<Tileset | undefined>;
children: JSX.Element;
page: string;
pmtilesOnly?: boolean;
iframe?: boolean;
})
| 126 | } |
| 127 | |
| 128 | export function Frame(props: { |
| 129 | tileset: Accessor<Tileset | undefined>; |
| 130 | setTileset: Setter<Tileset | undefined>; |
| 131 | children: JSX.Element; |
| 132 | page: string; |
| 133 | pmtilesOnly?: boolean; |
| 134 | iframe?: boolean; |
| 135 | }) { |
| 136 | const [errorMessage, setErrorMessage] = createSignal<string | undefined>(); |
| 137 | const [activeDrag, setActiveDrag] = createSignal<boolean>(false); |
| 138 | |
| 139 | const setTilesetHandlingErrors = (url: string) => { |
| 140 | try { |
| 141 | props.setTileset(tilesetFromString(url)); |
| 142 | } catch (e) { |
| 143 | if (e instanceof Error) { |
| 144 | setErrorMessage(e.message); |
| 145 | } |
| 146 | } |
| 147 | }; |
| 148 | |
| 149 | const loadTileset: JSX.EventHandler<HTMLFormElement, Event> = (event) => { |
| 150 | setErrorMessage(undefined); |
| 151 | event.preventDefault(); |
| 152 | const formData = new FormData(event.target as HTMLFormElement); |
| 153 | const urlValue = formData.get("url"); |
| 154 | if (typeof urlValue === "string" && urlValue.length > 0) { |
| 155 | setTilesetHandlingErrors(urlValue); |
| 156 | } |
| 157 | }; |
| 158 | |
| 159 | createEffect(async () => { |
| 160 | const t = props.tileset(); |
| 161 | if (t) { |
| 162 | try { |
| 163 | await t.test(); |
| 164 | } catch (e) { |
| 165 | if (e instanceof Error) { |
| 166 | setErrorMessage(e.message); |
| 167 | } |
| 168 | } |
| 169 | } |
| 170 | }); |
| 171 | |
| 172 | const drop: JSX.EventHandler<HTMLDivElement, DragEvent> = (event) => { |
| 173 | event.preventDefault(); |
| 174 | setActiveDrag(false); |
| 175 | if (event.dataTransfer) { |
| 176 | props.setTileset(tilesetFromFile(event.dataTransfer.files[0])); |
| 177 | } |
| 178 | }; |
| 179 | |
| 180 | const dragover: JSX.EventHandler<HTMLDivElement, Event> = (event) => { |
| 181 | event.preventDefault(); |
| 182 | setActiveDrag(true); |
| 183 | return false; |
| 184 | }; |
| 185 |
nothing calls this directly
no test coverage detected
searching dependent graphs…