* #708 apply strictier linting rules and fix simple eslint bugs * #708 fix eslint errors relate to promise * #708 fix eslint import/no-extraneous-dependencies * #708 fix eslint errors of react-hook * #708 enable eslint check for typescript --------- Co-authored-by: lethemanh <lethemanh@lethemanhs-MacBook-Pro.local>
This commit is contained in:
@@ -1,23 +1,23 @@
|
||||
import React from "react";
|
||||
import { combineDateTime } from "../utils/dateTimeHelpers";
|
||||
import React from 'react'
|
||||
import { combineDateTime } from '../utils/dateTimeHelpers'
|
||||
|
||||
/**
|
||||
* Parameters for all-day toggle hook
|
||||
*/
|
||||
export interface AllDayToggleParams {
|
||||
allday: boolean;
|
||||
start: string;
|
||||
end: string;
|
||||
startDate: string;
|
||||
startTime: string;
|
||||
endDate: string;
|
||||
endTime: string;
|
||||
setStartTime: (time: string) => void;
|
||||
setEndTime: (time: string) => void;
|
||||
setStart: (start: string) => void;
|
||||
setEnd: (end: string) => void;
|
||||
setAllDay: (allday: boolean) => void;
|
||||
onAllDayChange?: (allday: boolean, start: string, end: string) => void;
|
||||
allday: boolean
|
||||
start: string
|
||||
end: string
|
||||
startDate: string
|
||||
startTime: string
|
||||
endDate: string
|
||||
endTime: string
|
||||
setStartTime: (time: string) => void
|
||||
setEndTime: (time: string) => void
|
||||
setStart: (start: string) => void
|
||||
setEnd: (end: string) => void
|
||||
setAllDay: (allday: boolean) => void
|
||||
onAllDayChange?: (allday: boolean, start: string, end: string) => void
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -25,12 +25,12 @@ export interface AllDayToggleParams {
|
||||
*/
|
||||
export interface AllDayToggleHandlers {
|
||||
originalTimeRef: React.MutableRefObject<{
|
||||
start: string;
|
||||
end: string;
|
||||
endDate?: string;
|
||||
fromAllDaySlot?: boolean;
|
||||
} | null>;
|
||||
handleAllDayToggle: () => void;
|
||||
start: string
|
||||
end: string
|
||||
endDate?: string
|
||||
fromAllDaySlot?: boolean
|
||||
} | null>
|
||||
handleAllDayToggle: () => void
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,58 +53,58 @@ export function useAllDayToggle(
|
||||
setStart,
|
||||
setEnd,
|
||||
setAllDay,
|
||||
onAllDayChange,
|
||||
} = params;
|
||||
onAllDayChange
|
||||
} = params
|
||||
|
||||
// Store original time before toggling to all-day
|
||||
const originalTimeRef = React.useRef<{
|
||||
start: string;
|
||||
end: string;
|
||||
endDate?: string;
|
||||
fromAllDaySlot?: boolean;
|
||||
} | null>(null);
|
||||
start: string
|
||||
end: string
|
||||
endDate?: string
|
||||
fromAllDaySlot?: boolean
|
||||
} | null>(null)
|
||||
|
||||
const handleAllDayToggle = React.useCallback(() => {
|
||||
const newAllDay = !allday;
|
||||
let newStart = start;
|
||||
let newEnd = end;
|
||||
const newAllDay = !allday
|
||||
let newStart = start
|
||||
let newEnd = end
|
||||
|
||||
if (!newAllDay) {
|
||||
const hasTimeParts = start.includes("T") && end.includes("T");
|
||||
const hasTimeParts = start.includes('T') && end.includes('T')
|
||||
if (!hasTimeParts && !startTime && !endTime) {
|
||||
const now = new Date();
|
||||
now.setSeconds(0);
|
||||
now.setMilliseconds(0);
|
||||
const nextHour = new Date(now);
|
||||
nextHour.setMinutes(0);
|
||||
nextHour.setHours(now.getHours() + 1);
|
||||
const now = new Date()
|
||||
now.setSeconds(0)
|
||||
now.setMilliseconds(0)
|
||||
const nextHour = new Date(now)
|
||||
nextHour.setMinutes(0)
|
||||
nextHour.setHours(now.getHours() + 1)
|
||||
|
||||
const startHours = String(nextHour.getHours()).padStart(2, "0");
|
||||
const startMinutes = String(nextHour.getMinutes()).padStart(2, "0");
|
||||
const startTimeStr = `${startHours}:${startMinutes}`;
|
||||
const startHours = String(nextHour.getHours()).padStart(2, '0')
|
||||
const startMinutes = String(nextHour.getMinutes()).padStart(2, '0')
|
||||
const startTimeStr = `${startHours}:${startMinutes}`
|
||||
|
||||
const endHourDate = new Date(nextHour);
|
||||
endHourDate.setHours(endHourDate.getHours() + 1);
|
||||
const endHours = String(endHourDate.getHours()).padStart(2, "0");
|
||||
const endMinutes = String(endHourDate.getMinutes()).padStart(2, "0");
|
||||
const endTimeStr = `${endHours}:${endMinutes}`;
|
||||
const endHourDate = new Date(nextHour)
|
||||
endHourDate.setHours(endHourDate.getHours() + 1)
|
||||
const endHours = String(endHourDate.getHours()).padStart(2, '0')
|
||||
const endMinutes = String(endHourDate.getMinutes()).padStart(2, '0')
|
||||
const endTimeStr = `${endHours}:${endMinutes}`
|
||||
|
||||
const startDateOnly = start.split("T")[0] || startDate;
|
||||
const endDateOnly = end.split("T")[0] || endDate || startDateOnly;
|
||||
newStart = combineDateTime(startDateOnly, startTimeStr);
|
||||
newEnd = combineDateTime(endDateOnly, endTimeStr);
|
||||
const startDateOnly = start.split('T')[0] || startDate
|
||||
const endDateOnly = end.split('T')[0] || endDate || startDateOnly
|
||||
newStart = combineDateTime(startDateOnly, startTimeStr)
|
||||
newEnd = combineDateTime(endDateOnly, endTimeStr)
|
||||
|
||||
setStartTime(startTimeStr);
|
||||
setEndTime(endTimeStr);
|
||||
setStartTime(startTimeStr)
|
||||
setEndTime(endTimeStr)
|
||||
}
|
||||
}
|
||||
|
||||
if (!onAllDayChange) {
|
||||
setStart(newStart);
|
||||
setEnd(newEnd);
|
||||
setAllDay(newAllDay);
|
||||
setStart(newStart)
|
||||
setEnd(newEnd)
|
||||
setAllDay(newAllDay)
|
||||
} else {
|
||||
onAllDayChange(newAllDay, newStart, newEnd);
|
||||
onAllDayChange(newAllDay, newStart, newEnd)
|
||||
}
|
||||
}, [
|
||||
allday,
|
||||
@@ -119,11 +119,11 @@ export function useAllDayToggle(
|
||||
setStart,
|
||||
setEnd,
|
||||
setAllDay,
|
||||
onAllDayChange,
|
||||
]);
|
||||
onAllDayChange
|
||||
])
|
||||
|
||||
return {
|
||||
originalTimeRef,
|
||||
handleAllDayToggle,
|
||||
};
|
||||
handleAllDayToggle
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user