MCPcopy
hub / github.com/protomaps/PMTiles / Frame

Function Frame

app/src/Frame.tsx:128–297  ·  view source on GitHub ↗
(props: {
  tileset: Accessor<Tileset | undefined>;
  setTileset: Setter<Tileset | undefined>;
  children: JSX.Element;
  page: string;
  pmtilesOnly?: boolean;
  iframe?: boolean;
})

Source from the content-addressed store, hash-verified

126}
127
128export 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

Callers

nothing calls this directly

Calls 3

testMethod · 0.65
getStateUrlMethod · 0.65
getLocalFileNameMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…