Fixed collision padding for calendar events
This commit is contained in:
@@ -14,6 +14,7 @@ import {
|
|||||||
PhDotsThreeOutlineVertical,
|
PhDotsThreeOutlineVertical,
|
||||||
PhEye
|
PhEye
|
||||||
} from "@phosphor-icons/vue"
|
} from "@phosphor-icons/vue"
|
||||||
|
import type { CollisionPadding } from "~/models/Popover"
|
||||||
|
|
||||||
const { defaultDate, getFormattedDateTitle, jumpToDate, getRelativeString, revealEditEventModal, revealDeleteEventModal } = useCalendar()
|
const { defaultDate, getFormattedDateTitle, jumpToDate, getRelativeString, revealEditEventModal, revealDeleteEventModal } = useCalendar()
|
||||||
const { lastActiveEvent, isReadOnly } = storeToRefs(useCalendar())
|
const { lastActiveEvent, isReadOnly } = storeToRefs(useCalendar())
|
||||||
@@ -28,6 +29,18 @@ const props = defineProps<{
|
|||||||
const breakpoints = useBreakpoints(
|
const breakpoints = useBreakpoints(
|
||||||
breakpointsTailwind
|
breakpointsTailwind
|
||||||
)
|
)
|
||||||
|
const collisionPadLg: CollisionPadding = {
|
||||||
|
top: 50,
|
||||||
|
bottom: 50,
|
||||||
|
left: 50,
|
||||||
|
right: 50,
|
||||||
|
}
|
||||||
|
const collisionPad: CollisionPadding = {
|
||||||
|
top: 80,
|
||||||
|
bottom: 80,
|
||||||
|
left: 12.5,
|
||||||
|
right: 12.5,
|
||||||
|
}
|
||||||
|
|
||||||
// Ref for the popover
|
// Ref for the popover
|
||||||
const eventDetails = ref<HTMLElement>()
|
const eventDetails = ref<HTMLElement>()
|
||||||
@@ -67,12 +80,12 @@ function deployDeleteModal() {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<UiPopoverContent
|
<UiPopoverContent
|
||||||
class="w-96 event-popover"
|
class="max-w-full w-96 event-popover"
|
||||||
:align="'center'"
|
:align="'center'"
|
||||||
:align-offset="breakpoints.lg.value ? 50 : 25"
|
:align-offset="breakpoints.lg.value ? 50 : 25"
|
||||||
|
:side-offset="8"
|
||||||
:side="breakpoints.lg.value ? 'left' : 'top'"
|
:side="breakpoints.lg.value ? 'left' : 'top'"
|
||||||
:collision-padding="breakpoints.lg.value ? 50 : 25"
|
:collision-padding="breakpoints.lg.value ? collisionPadLg : collisionPad"
|
||||||
:hide-when-detached="true"
|
|
||||||
:class="cn(
|
:class="cn(
|
||||||
event.category ? `element-${event.category.color}` : '',
|
event.category ? `element-${event.category.color}` : '',
|
||||||
)"
|
)"
|
||||||
|
|||||||
1
models/Popover.ts
Normal file
1
models/Popover.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export type CollisionPadding = Partial<Record<"top" | "right" | "bottom" | "left", number>>
|
||||||
Reference in New Issue
Block a user