Skip to content

Commit

Permalink
fix issue with start time widget not registering tmr
Browse files Browse the repository at this point in the history
  • Loading branch information
vuvincent committed Oct 3, 2023
1 parent acbc321 commit 94c457b
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 24 deletions.
27 changes: 3 additions & 24 deletions apps/desktop-v2/components/start-time-widget.tsx
Original file line number Diff line number Diff line change
@@ -1,31 +1,10 @@
import moment from "moment";
import { ClockCyanIcon } from "./icons";
import { getEnglishDay, getUsefulDateBooleans } from "@/utils/date";

export const StartTimeWidget = (props: { startTime: Date }) => {
// get the start time date
console.log(props.startTime);
const dateDiffFromToday = moment(props.startTime).diff(moment(), "days");
const isOverdue = dateDiffFromToday < 0;
const isToday = dateDiffFromToday === 0;
const lastDayOfWeek = moment().endOf("isoWeek");
const lastDayOfNextWeek = moment().add(1, "week").endOf("isoWeek");
const isThisWeek = moment(props.startTime).isBefore(lastDayOfWeek);
const isNextWeek =
moment(props.startTime).isAfter(lastDayOfWeek) &&
moment(props.startTime).isBefore(lastDayOfNextWeek);
const isTmrw = dateDiffFromToday === 1;
console.log("datediff:" + dateDiffFromToday);
const dateSection = isToday
? ""
: isOverdue
? moment(props.startTime).fromNow()
: isTmrw
? "Tomorrow"
: isThisWeek
? moment(props.startTime).format("dddd")
: isNextWeek
? "Next " + moment(props.startTime).format("dddd")
: moment(props.startTime).format("MMM D");
const { isOverdue } = getUsefulDateBooleans(props.startTime);
const dateSection = getEnglishDay(props.startTime);

return (
<div className="px-[5px] rounded-[5px] justify-center items-center gap-1 inline-flex">
Expand Down
47 changes: 47 additions & 0 deletions apps/desktop-v2/utils/date.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import moment from "moment";

/**
* Gets some useful date booleans for a given date
* @param date the date
* @returns some useful date booleans like isTomorrow, isNextWeek, etc.
*/
export function getUsefulDateBooleans(date: Date) {
const isOverdue = moment().isAfter(date);
const isToday = moment(date).isBetween(
moment().startOf("day"),
moment().endOf("day")
);
const lastDayOfWeek = moment().endOf("isoWeek");
const lastDayOfNextWeek = moment().add(1, "week").endOf("isoWeek");
const isThisWeek = moment(date).isBefore(lastDayOfWeek);
const isNextWeek =
moment(date).isAfter(lastDayOfWeek) &&
moment(date).isBefore(lastDayOfNextWeek);
const beginningOfTmr = moment().add(1, "day").startOf("day");
const endOfTmr = moment().add(1, "day").endOf("day");
const isTomorrow = moment(date).isBetween(beginningOfTmr, endOfTmr);
return { isOverdue, isToday, isThisWeek, isNextWeek, isTomorrow };
}

/**
* Our own version of a comprehensive English relative time formatter. Commonly used in the start time widget.
* @param date start time / date
* @returns string of the relative time
*/
export function getEnglishDay(date: Date): string {
const { isThisWeek, isToday, isOverdue, isTomorrow, isNextWeek } =
getUsefulDateBooleans(date);

const dateSection = isToday
? "Today"
: isOverdue
? moment(date).fromNow()
: isTomorrow
? "Tomorrow"
: isThisWeek
? moment(date).format("dddd")
: isNextWeek
? "Next " + moment(date).format("dddd")
: moment(date).format("MMM D");
return dateSection;
}

1 comment on commit 94c457b

@vercel
Copy link

@vercel vercel bot commented on 94c457b Oct 3, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.