Skip to content
Snippets Groups Projects
Commit 6f90a190 authored by Giildo's avatar Giildo
Browse files

:construction: Start the end calcul when the timeline is on going

parent 44d51f4c
Branches
Tags
No related merge requests found
......@@ -4,11 +4,13 @@ import type { Observable } from '@/utils_server/Observable'
import { ref } from '@/utils_server/ref'
import { ResetObservable } from '@/utils_server/observables/ResetObservable'
import { I18nObservable } from '@/utils_server/observables/I18nObservable'
import { Day } from '@vue-unistra/limitdayjs'
interface TimelineState {
elementContainer: HTMLElement | null
timeline: Ref<HTMLDivElement>
timelineContainer: Ref<HTMLDivElement>
timelineIsOnGoing: Ref<boolean>
timelineLoadingContainer: Ref<HTMLDivElement>
zoom: Ref<Zoom>
zoomsData: Record<Zoom, ZoomTimelineData>
......@@ -59,6 +61,7 @@ const state: TimelineState = {
elementContainer: null,
timeline: ref(document.createElement('div')),
timelineContainer: ref(document.createElement('div')),
timelineIsOnGoing: ref(false),
timelineLoadingContainer: ref(document.createElement('div')),
zoom: ref<Zoom>('year'),
zoomsData: emptyZoomsData(),
......@@ -90,8 +93,21 @@ export const useTimeline = () => {
for (const zoomName in zooms) {
const { events: _, ...rest } = zooms[zoomName as Zoom]
const divisionWidth = Math.ceil(timelineWidth / rest.screenDivisionNb)
let end = rest.limits.end
if (state.timelineIsOnGoing.value) {
const endIsOnGoing = new Day().add(rest.screenDivisionNb / 2, rest.divisionType)
if (new Day(end).isBefore(new Day().add(rest.screenDivisionNb / 2, rest.divisionType))) {
end = endIsOnGoing.toISOString()
}
}
state.zoomsData[zoomName] = {
...rest,
timelineLimits: {
...rest.timelineLimits,
end,
},
divisionWidth,
timelineWidth: divisionWidth * (rest.divisionNb + rest.screenDivisionNb - 1),
} as ZoomTimelineData
......
......@@ -24,8 +24,9 @@ export class Timeline extends AbstractTimeline implements TimelineInterface {
super(_htmlElement, _options?.language)
if (!_htmlElement) throw new Error(this._t('errors.HTMLContainerNotDefined'))
const { setElementContainer, initZoom, initZoomsData } = useTimeline()
const { setElementContainer, initZoom, initZoomsData, timelineIsOnGoing } = useTimeline()
setElementContainer(_htmlElement)
timelineIsOnGoing.value = _data.isOnGoing
initZoom(_data.initialZoom)
initZoomsData(_data.zooms)
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment