import { ChangeOpacity } from "util/color-opacity"; import { EventInput } from "@fullcalendar/core"; import dayGridPlugin from "@fullcalendar/daygrid"; // a plugin! import FullCalendar from "@fullcalendar/react"; // must go before plugins import QuickTooltip from "components/layout/misc/QuickTooltip"; import ApiError from "components/util/ApiError"; import Divider from "components/util/Divider"; import LinkButton from "components/util/LinkButton"; import Loading from "components/util/Loading"; import Muted from "components/util/Muted"; import useApiQuery from "components/util/query/useApiQuery"; import React from "react"; import { Row } from "react-bootstrap"; import { Link } from "react-router-dom"; import { COLOUR_SET, SessionDocument } from "tachi-common"; import { SessionReturns } from "types/api-returns"; import { UGPT } from "types/react"; import SessionRaiseBreakdown from "./SessionRaiseBreakdown"; type MinSession = Pick< SessionDocument, "sessionID" | "name" | "desc" | "highlight" | "timeStarted" | "timeEnded" >; export default function SessionCalendar({ game, playtype, reqUser }: UGPT) { const { data, error } = useApiQuery>( `/users/${reqUser.id}/games/${game}/${playtype}/sessions/calendar` ); if (error) { return ; } if (!data) { return ; } return ( ( } style={{ width: "800px", }} >
{e.event.title} {e.event.extendedProps.desc && ( <>
{e.event.extendedProps.desc} )}
)} /> ); } function SessionTooltip({ sessionID, game, playtype, reqUser }: { sessionID: string } & UGPT) { const { data, error } = useApiQuery(`/sessions/${sessionID}`); if (error) { return ; } if (!data) { return ; } return (

{data.session.name}

{data.session.desc && {data.session.desc}}
View Session
); } function convertSession(min: MinSession): EventInput { return { start: min.timeStarted, end: min.timeEnded, title: min.name, extendedProps: { desc: min.desc, highlight: min.highlight, sessionID: min.sessionID, }, }; } // { // "event": { // "title": "The Return.", // "start": "2021-12-14T15:46:09.086Z", // "end": "2021-12-14T17:54:02.697Z" // }, // "view": { // "type": "dayGridMonth", // "dateEnv": { // "timeZone": "local", // "canComputeOffset": true, // "calendarSystem": {}, // "locale": { // "codeArg": "en", // "codes": [ // "en" // ], // "week": { // "dow": 0, // "doy": 4 // }, // "simpleNumberFormat": {}, // "options": { // "direction": "ltr", // "buttonText": { // "prev": "prev", // "next": "next", // "prevYear": "prev year", // "nextYear": "next year", // "year": "year", // "today": "today", // "month": "month", // "week": "week", // "day": "day", // "list": "list" // }, // "weekText": "W", // "weekTextLong": "Week", // "closeHint": "Close", // "timeHint": "Time", // "eventHint": "Event", // "allDayText": "all-day", // "moreLinkText": "more", // "noEventsText": "No events to display", // "buttonHints": { // "prev": "Previous $0", // "next": "Next $0" // }, // "viewHint": "$0 view", // "navLinkHint": "Go to $0" // } // }, // "weekDow": 0, // "weekDoy": 4, // "weekText": "W", // "weekTextLong": "Week", // "cmdFormatter": null, // "defaultSeparator": " - " // } // }, // "timeText": "3:46p", // "textColor": "", // "backgroundColor": "", // "borderColor": "", // "isDraggable": false, // "isStartResizable": false, // "isEndResizable": false, // "isMirror": false, // "isStart": true, // "isEnd": true, // "isPast": true, // "isFuture": false, // "isToday": false, // "isSelected": false, // "isDragging": false, // "isResizing": false // }