bug fix
This commit is contained in:
+35
-26
@@ -1,6 +1,6 @@
|
||||
'use client';
|
||||
import { useCalendarApp, ScheduleXCalendar } from '@schedule-x/react';
|
||||
import { CalendarEventExternal, createViewWeek } from '@schedule-x/calendar';
|
||||
import { createViewWeek } from '@schedule-x/calendar';
|
||||
|
||||
import { createEventsServicePlugin } from '@schedule-x/events-service';
|
||||
import { createDragAndDropPlugin } from '@schedule-x/drag-and-drop';
|
||||
@@ -59,41 +59,50 @@ function CalendarApp() {
|
||||
const target = event.target as HTMLElement;
|
||||
|
||||
if (target.className === 'sx__time-grid-event-time') {
|
||||
setSelected(
|
||||
const id =
|
||||
target.parentElement?.parentElement?.getAttribute(
|
||||
'data-event-id'
|
||||
);
|
||||
setSelected(id);
|
||||
|
||||
setDate(
|
||||
parse(
|
||||
calendar.events.get(parseInt(id || ''))?.start || '',
|
||||
'y-MM-dd hh:mm',
|
||||
new Date()
|
||||
)
|
||||
);
|
||||
return;
|
||||
} else {
|
||||
setSelected(null);
|
||||
}
|
||||
|
||||
try {
|
||||
const dayElement = target.closest('.sx__time-grid-day');
|
||||
try {
|
||||
const dayElement = target.closest('.sx__time-grid-day');
|
||||
|
||||
const dayText = dayElement
|
||||
? dayElement.getAttribute('aria-label')
|
||||
: null;
|
||||
const dayText = dayElement
|
||||
? dayElement.getAttribute('aria-label')
|
||||
: null;
|
||||
|
||||
const hourElement = closestChild(
|
||||
target.parentElement?.children[0].children || [],
|
||||
event.clientX,
|
||||
event.clientY
|
||||
);
|
||||
|
||||
if (!dayText || !hourElement) {
|
||||
event.preventDefault();
|
||||
} else {
|
||||
const toDate = parse(
|
||||
(dayText || '') + ' ' + (hourElement?.textContent || ''),
|
||||
'MMMM dd, yyyy h a',
|
||||
new Date()
|
||||
const hourElement = closestChild(
|
||||
target.parentElement?.children[0].children || [],
|
||||
event.clientX,
|
||||
event.clientY
|
||||
);
|
||||
if (toDate instanceof Date && !isNaN(toDate.getTime()))
|
||||
setDate(toDate);
|
||||
}
|
||||
} catch {}
|
||||
|
||||
if (!dayText || !hourElement) {
|
||||
event.preventDefault();
|
||||
} else {
|
||||
const toDate = parse(
|
||||
(dayText || '') +
|
||||
' ' +
|
||||
(hourElement?.textContent || ''),
|
||||
'MMMM dd, yyyy h a',
|
||||
new Date()
|
||||
);
|
||||
if (toDate instanceof Date && !isNaN(toDate.getTime()))
|
||||
setDate(toDate);
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
|
||||
@@ -45,7 +45,9 @@ export default function PostDialog({
|
||||
<DialogContent>
|
||||
<DialogHeader>
|
||||
<DialogTitle>New post</DialogTitle>
|
||||
<DialogDescription>Schedule posts on multiple accounts</DialogDescription>
|
||||
<DialogDescription>
|
||||
Schedule posts on multiple accounts
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div className="flex flex-row gap-4">
|
||||
<Popover>
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
import {
|
||||
Popover,
|
||||
PopoverContent,
|
||||
PopoverTrigger,
|
||||
} from '@/components/ui/popover';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import {
|
||||
Select,
|
||||
SelectContent,
|
||||
@@ -24,7 +18,12 @@ const TimeSelect: React.FC<TimeSelectProps> = ({
|
||||
className,
|
||||
}) => {
|
||||
const times = Array.from({ length: 24 }, (_, h) =>
|
||||
[0, 15, 30, 45].map((m) => `${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}`)
|
||||
[0, 15, 30, 45].map(
|
||||
(m) =>
|
||||
`${(h+1).toString().padStart(2, '0')}:${m
|
||||
.toString()
|
||||
.padStart(2, '0')}`
|
||||
)
|
||||
).flat();
|
||||
|
||||
const currentHour = date.getHours().toString().padStart(2, '0');
|
||||
@@ -34,7 +33,9 @@ const TimeSelect: React.FC<TimeSelectProps> = ({
|
||||
? curr
|
||||
: prev
|
||||
);
|
||||
const selectedTime = `${currentHour}:${nearestMinute.toString().padStart(2, '0')}`;
|
||||
const selectedTime = `${currentHour}:${nearestMinute
|
||||
.toString()
|
||||
.padStart(2, '0')}`;
|
||||
|
||||
const handleTimeChange = (newTime: string) => {
|
||||
const [hour, minute] = newTime.split(':').map(Number);
|
||||
@@ -64,4 +65,4 @@ const TimeSelect: React.FC<TimeSelectProps> = ({
|
||||
);
|
||||
};
|
||||
|
||||
export default TimeSelect;
|
||||
export default TimeSelect;
|
||||
|
||||
Reference in New Issue
Block a user