sqliteExplorerAppREADME.md1 match
33- [x] fix wonky sidebar separator height problem (thanks to @stevekrouse)
34- [x] make result tables scrollable
35- [x] add export to CSV, and JSON (CSV and JSON helper functions written in [this val](https://www.val.town/v/nbbaier/sqliteExportHelpers). Thanks to @pomdtr for merging the initial version!)
36- [x] add listener for cmd+enter to submit query
1import { sqlite } from "https://esm.town/v/stevekrouse/sqlite";
23export default async function server(request: Request): Promise<Response> {
4const SCHEMA_VERSION = 15; // Increment this to create new tables
5const KEY = "scheduler";
304let currentCalendarEndTime = null;
305306function initializeDayDropdowns() {
307const startDaySelect = document.getElementById('startDay');
308const endDaySelect = document.getElementById('endDay');
313}
314315async function loadCalendars() {
316const response = await fetch('/calendars');
317const calendars = await response.json();
333}
334335async function createCalendar() {
336if (!userId) {
337alert('Please enter a name');
355356357async function deleteCalendar(id) {
358await fetch('/calendars', {
359method: 'DELETE',
368}
369
370async function viewCalendar(id) {
371currentCalendarId = id;
372const response = await fetch('/calendars');
387}
388389function createCalendarGrid() {
390const calendar = document.getElementById('calendar');
391calendar.innerHTML = '';
437}
438439async function loadAvailability() {
440userAvailability.clear();
441overallAvailability = {};
460}
461462async function toggleAvailability(day, time) {
463if (!userId || !currentCalendarId) {
464alert('Please enter your name and select a calendar first.');
491}
492493function updateCalendarDisplay() {
494for (let day = 0; day < 7; day++) {
495for (let time = 0; time < 24 * 60; time += 30) {
516}
517518function updateDebugInfo() {
519const debugInfo = document.getElementById('debugInfo');
520debugInfo.innerHTML = '<h3>Debug Info:</h3>';
525}
526527function toggleDebugInfo() {
528const debugInfo = document.getElementById('debugInfo');
529const debugToggle = document.getElementById('debugToggle');
537}
538539function updateDebugInfo() {
540const debugInfo = document.getElementById('debugInfo');
541debugInfo.innerHTML = '<h3>Debug Info:</h3>';
whatsThatAgainInHotDogsmain.tsx3 matches
116</table>
117<script>
118function calculateHotdogs() {
119const playerName = document.getElementById('playerSelect').value;
120fetch('/calculate?player=' + encodeURIComponent(playerName))
136}
137138function highlightRow(row) {
139// Clear previous highlights
140const table = document.getElementById('playerInfo');
174})
175176export default async function handler(request: Request): Promise<Response> {
177return app.fetch(request)
178}
15};
1617function App() {
18const [createdValUrl, setCreatedValUrl] = useState(null);
19const [selectedOptions, setSelectedOptions] = useState([]);
128129const { name } = extractValInfo(import.meta.url);
130export default async function server(request: Request): Promise<Response> {
131const excalidraw = createExcalidraw({
132store: {
232}
233234function client() {
235createRoot(document.getElementById("root")).render(<App />);
236}
240}
241242export default async function server(request: Request): Promise<Response> {
243if (request.method === "POST" && new URL(request.url).pathname === "/create-val") {
244const { code, name } = await request.json();
15};
1617function App() {
18const [createdValUrl, setCreatedValUrl] = useState(null);
19const [selectedOptions, setSelectedOptions] = useState([]);
128129const { name } = extractValInfo(import.meta.url);
130export default async function server(request: Request): Promise<Response> {
131const excalidraw = createExcalidraw({
132store: {
232}
233234function client() {
235createRoot(document.getElementById("root")).render(<App />);
236}
240}
241242export default async function server(request: Request): Promise<Response> {
243if (request.method === "POST" && new URL(request.url).pathname === "/create-val") {
244const { code, name } = await request.json();
2import { easyAQI } from "https://esm.town/v/stevekrouse/easyAQI?v=5";
34export async function aqi(interval: Interval) {
5const location = "downtown brooklyn"; // <-- change to place, city, or zip code
6const data = await easyAQI({ location });
2import { easyAQI } from "https://esm.town/v/stevekrouse/easyAQI?v=5";
34export async function aqi(interval: Interval) {
5const location = "downtown brooklyn"; // <-- change to place, city, or zip code
6const data = await easyAQI({ location });
88<script src="https://cdn.jsdelivr.net/gh/philfung/add-to-homescreen@1.9/dist/add-to-homescreen.min.js"></script>
89<script>
90document.addEventListener('DOMContentLoaded', function () {
91window.AddToHomeScreenInstance = new window.AddToHomeScreen({
92appName: 'ValPush',
8)`);
910export default async function(request: Request) {
11return await serveTools(request, {
12ListTodos: {
33- [x] fix wonky sidebar separator height problem (thanks to @stevekrouse)
34- [x] make result tables scrollable
35- [x] add export to CSV, and JSON (CSV and JSON helper functions written in [this val](https://www.val.town/v/nbbaier/sqliteExportHelpers). Thanks to @pomdtr for merging the initial version!)
36- [x] add listener for cmd+enter to submit query
37