Back
Version 40
8/24/2024
/**
* This enhanced DNDoodle app now includes a feature for the poll creator to set the end date of the poll,
* and a checkbox for users to indicate if they are the DM. The DM's availability is treated as special
* and is displayed differently in the results view.
* The app uses React for the frontend and SQLite for data persistence.
* It features improved styling, interactive elements, and email functionality.
*/
/** @jsxImportSource https://esm.sh/react */
import { addDays, format, parse } from "https://esm.sh/date-fns";
import React, { useEffect, useState } from "https://esm.sh/react";
import { createRoot } from "https://esm.sh/react-dom/client";
function App() {
const [name, setName] = useState("");
const [email, setEmail] = useState("");
const [groupCode, setGroupCode] = useState("");
const [groupName, setGroupName] = useState("");
const [availability, setAvailability] = useState({});
const [groupAvailability, setGroupAvailability] = useState({});
const [bestDate, setBestDate] = useState("");
const [isCreatingGroup, setIsCreatingGroup] = useState(false);
const [createdGroupCode, setCreatedGroupCode] = useState("");
const [createdGroupName, setCreatedGroupName] = useState("");
const [isLoading, setIsLoading] = useState(false);
const [message, setMessage] = useState("");
const [editToken, setEditToken] = useState("");
const [editLink, setEditLink] = useState("");
const [groupShareLink, setGroupShareLink] = useState("");
const [confirmNoEmail, setConfirmNoEmail] = useState(false);
const [allRespondents, setAllRespondents] = useState([]);
const [totalResponses, setTotalResponses] = useState(0);
const [sessionJoined, setSessionJoined] = useState(false);
const [pollDuration, setPollDuration] = useState(2); // Default to 2 weeks
const [pollEndDate, setPollEndDate] = useState("");
const [isDM, setIsDM] = useState(false);
csl_-dndoodle.web.val.run
Updated: August 26, 2024