Add DST notice to TZ entry

This commit is contained in:
Ean Milligan (Bastion) 2023-04-11 20:22:18 -04:00
parent a6848eb33a
commit 7c999ed27b
2 changed files with 15 additions and 6 deletions

View File

@ -84,14 +84,20 @@ const parseEventTime = (preParsedEventTime: string): [string, string, string] =>
return [parsedEventTimeHours, parsedEventTimeMinutes, parsedEventTimePeriod];
};
// Check if DST is currently active
export const isDSTActive = (): boolean => {
const today = new Date();
const jan = new Date(today.getFullYear(), 0, 1);
const jul = new Date(today.getFullYear(), 6, 1);
return today.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
};
// Takes user input Time Zone and makes it actually usable
const parseEventTimeZone = (preParsedEventTimeZone: string): [string, string] => {
if (shorthandUSTZ.includes(preParsedEventTimeZone)) {
// Handle shorthand US timezones, adding S for standard time and D for Daylight Savings
const today = new Date();
const jan = new Date(today.getFullYear(), 0, 1);
const jul = new Date(today.getFullYear(), 6, 1);
if (today.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset())) {
if (isDSTActive()) {
preParsedEventTimeZone = `${preParsedEventTimeZone.slice(0, 1)}DT`;
} else {
preParsedEventTimeZone = `${preParsedEventTimeZone.slice(0, 1)}ST`;

View File

@ -7,7 +7,7 @@ import { idSeparator, LfgEmbedIndexes, lfgStartTimeName } from '../eventUtils.ts
import utils from '../../utils.ts';
import { customId as createCustomActivityBtnId } from './step1a-openCustomModal.ts';
import { customId as finalizeEventBtnId } from './step2-finalize.ts';
import { monthsShort } from './dateTimeUtils.ts';
import { isDSTActive, monthsShort } from './dateTimeUtils.ts';
import { dbClient, queries } from '../../db.ts';
export const customId = 'gameSel';
@ -64,6 +64,9 @@ const execute = async (bot: Bot, interaction: Interaction) => {
prefillDescription = interaction.message.embeds[0].fields[LfgEmbedIndexes.Description].value.trim();
}
// DST notice to try to get people to use the right TZ
const dstNotice = isDSTActive() ? '(Note: DST is in effect in NA)' : '';
bot.helpers.sendInteractionResponse(interaction.id, interaction.token, {
type: InteractionResponseTypes.Modal,
data: {
@ -86,7 +89,7 @@ const execute = async (bot: Bot, interaction: Interaction) => {
components: [{
type: MessageComponentTypes.InputText,
customId: eventTimeZoneId,
label: 'Time Zone:',
label: `Time Zone: ${dstNotice}`,
placeholder: 'Enter your time zone abbreviation (UTC±## also works)',
style: TextStyles.Short,
minLength: 2,