Test
{
await say("Test");
}}
/>
{
const name = prompt("Name?");
if (!name) return;
const url = prompt("URL?");
if (!url) return;
await downloadPMTiles(url, name);
}}
/>
Open
{
setOnboardingState("start");
}}
/>
{
location.reload();
}}
/>
Stores
{
syncStores();
}}
/>
{
const name = prompt("Store Name?");
if (!name) return;
const type = prompt("Store Type? (route, location, vehicle)");
if (type !== "route" && type !== "location" && type !== "vehicle") {
alert("Invalid type");
return;
}
const data = prompt("Data? (JSON)");
if (!data) return;
await updateStore({ name, type }, JSON.parse(data));
}}
/>
{
const name = prompt("Store Name?");
if (!name) return;
const type = prompt("Store Type? (route, location, vehicle)");
if (type !== "route" && type !== "location" && type !== "vehicle") {
alert("Invalid type");
return;
}
await updateStore({ name, type }, null);
}}
/>
{
if (!confirm("Are you sure?")) return;
const db = await getDB();
const tx = db.transaction(["stores", "changes"], "readwrite");
await tx.objectStore("stores").clear();
await tx.objectStore("changes").clear();
await tx.done;
alert("Nuked all stores");
}}
/>
LOCATION STORES: {JSON.stringify(locationStores.current)}
Other
{
dev.current = "false";
view.back();
}}
/>