diff --git a/src/app/Livewire/Calendar/Forms/EventForm.php b/src/app/Livewire/Calendar/Forms/EventForm.php index 0012580..d21e042 100644 --- a/src/app/Livewire/Calendar/Forms/EventForm.php +++ b/src/app/Livewire/Calendar/Forms/EventForm.php @@ -167,10 +167,10 @@ class EventForm extends Component { if (empty($this->customReminderTime)) return; - $this->reminders[] = [ - 'type' => $this->customReminderType ?: 'time_of_day', - 'time' => $this->customReminderTime, - ]; + $type = $this->customReminderType ?: 'time_of_day'; + $time = $this->localTimeToUtc($this->customReminderTime); + + $this->reminders[] = ['type' => $type, 'time' => $time]; $this->customReminderTime = ''; $this->customReminderType = 'time_of_day'; @@ -178,6 +178,10 @@ class EventForm extends Component public function addReminder(string $type, ?int $minutes = null, ?string $time = null): void { + if ($time !== null && in_array($type, ['time_of_day', 'day_before'])) { + $time = $this->localTimeToUtc($time); + } + $this->reminders[] = array_filter([ 'type' => $type, 'minutes' => $minutes, @@ -185,6 +189,12 @@ class EventForm extends Component ], fn($v) => $v !== null); } + private function localTimeToUtc(string $localTime): string + { + $tz = auth()->user()->timezone ?? 'UTC'; + return \Carbon\Carbon::createFromFormat('H:i', $localTime, $tz)->utc()->format('H:i'); + } + public function removeReminder(int $i): void { array_splice($this->reminders, $i, 1); diff --git a/src/resources/views/livewire/calendar/forms/event-form.blade.php b/src/resources/views/livewire/calendar/forms/event-form.blade.php index d56708e..5063ff4 100644 --- a/src/resources/views/livewire/calendar/forms/event-form.blade.php +++ b/src/resources/views/livewire/calendar/forms/event-form.blade.php @@ -215,9 +215,9 @@ @else {{ $r['minutes'] ?? 30 }}{{ t('events.reminder_min_before') }} @endif @elseif(($r['type'] ?? '') === 'time_of_day') - {{ t('events.reminder_on_day_prefix') }}{{ $r['time'] ?? '' }}{{ t('events.reminder_clock_suffix') }} + {{ t('events.reminder_on_day_prefix') }}{{ isset($r['time']) ? \Carbon\Carbon::createFromFormat('H:i', $r['time'], 'UTC')->setTimezone(auth()->user()->timezone ?? 'UTC')->format('H:i') : '' }}{{ t('events.reminder_clock_suffix') }} @else - {{ t('events.reminder_prev_day_prefix') }}{{ $r['time'] ?? '' }}{{ t('events.reminder_clock_suffix') }} + {{ t('events.reminder_prev_day_prefix') }}{{ isset($r['time']) ? \Carbon\Carbon::createFromFormat('H:i', $r['time'], 'UTC')->setTimezone(auth()->user()->timezone ?? 'UTC')->format('H:i') : '' }}{{ t('events.reminder_clock_suffix') }} @endif