feature/IO-2979-DST - Finish DST Stuff

Signed-off-by: Dave Richer <dave@imexsystems.ca>
This commit is contained in:
Dave Richer
2024-10-28 14:04:14 -07:00
parent e605433379
commit 971a81fc27
3 changed files with 28 additions and 21 deletions

View File

@@ -4,19 +4,37 @@ import React, { useCallback, useState } from "react";
import { useTranslation } from "react-i18next";
import dayjs from "../../utils/day";
import { fuzzyMatchDate } from "./formats.js";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors.js";
import { connect } from "react-redux";
const DateTimePicker = ({ value, onChange, onBlur, id, onlyFuture, onlyToday, isDateOnly = false, ...restProps }) => {
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
});
const DateTimePicker = ({
value,
onChange,
onBlur,
id,
onlyFuture,
onlyToday,
isDateOnly = false,
bodyshop,
...restProps
}) => {
const [isManualInput, setIsManualInput] = useState(false);
const { t } = useTranslation();
const handleChange = useCallback(
(newDate) => {
if (!newDate) return;
if (onChange) {
onChange(newDate || null);
onChange(bodyshop?.timezone ? dayjs(newDate).tz(bodyshop.timezone, true) : newDate);
}
setIsManualInput(false);
},
[onChange]
[onChange, bodyshop?.timezone]
);
const handleBlur = useCallback(
@@ -102,4 +120,4 @@ DateTimePicker.propTypes = {
isDateOnly: PropTypes.bool
};
export default React.memo(DateTimePicker);
export default connect(mapStateToProps, null)(DateTimePicker);

View File

@@ -119,19 +119,7 @@ var formats = {
agendaTimeRangeFormat: timeRangeFormat
};
const localizer = (dayjsLib, timezone) => {
// load dayjs plugins
dayjsLib.extend(isBetween);
dayjsLib.extend(isSameOrAfter);
dayjsLib.extend(isSameOrBefore);
dayjsLib.extend(localeData);
dayjsLib.extend(localizedFormat);
dayjsLib.extend(minMax);
dayjsLib.extend(utc);
dayjsLib.locale("en");
dayjsLib.tz.setDefault(timezone);
const localizer = (dayjsLib) => {
var locale = function locale(dj, c) {
return c ? dj.locale(c) : dj;
};
@@ -140,9 +128,9 @@ const localizer = (dayjsLib, timezone) => {
// then use the timezone aware version
//TODO This was the issue entirely...
var dayjs = dayjsLib.tz ? dayjsLib.tz : dayjsLib;
// var dayjs = dayjsLib.tz ? dayjsLib.tz : dayjsLib;
// var dayjs = dayjsLib;
var dayjs = dayjsLib;
function getTimezoneOffset(date) {
// ensures this gets cast to timezone

View File

@@ -1,7 +1,7 @@
import dayjs from "../../utils/day";
import queryString from "query-string";
import React from "react";
import { Calendar, dayjsLocalizer } from "react-big-calendar";
import { Calendar } from "react-big-calendar";
import { connect } from "react-redux";
import { Link, useLocation, useNavigate } from "react-router-dom";
import { createStructuredSelector } from "reselect";
@@ -14,13 +14,14 @@ import { selectProblemJobs } from "../../redux/application/application.selectors
import { Alert, Collapse, Space } from "antd";
import { Trans, useTranslation } from "react-i18next";
import InstanceRenderManager from "../../utils/instanceRenderMgr";
import local from "./localizer";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
problemJobs: selectProblemJobs
});
const localizer = dayjsLocalizer(dayjs);
const localizer = local(dayjs);
export function ScheduleCalendarWrapperComponent({
bodyshop,