@@ -42,16 +42,30 @@ const dates = computed(() => {
4242 });
4343});
4444
45- const hoursOnGrid = computed (() => {
46- const start = settings .value .dayViewStartHour ;
47- const end = settings .value .dayViewEndHour ;
45+ const timelineRange = computed (() => {
46+ const defaultStart = settings .value .dayViewStartHour ;
47+ const configuredEnd = settings .value .dayViewEndHour ;
48+ const defaultEnd = configuredEnd > defaultStart ? configuredEnd : configuredEnd + 24 ;
49+
50+ let startHour: number = defaultStart ;
51+ let endHour: number = defaultEnd ;
52+
53+ for (const events of eventsTimeline .value ) {
54+ for (const event of events ) {
55+ startHour = Math .min (startHour , Math .floor (event .from .hour + event .from .minute / 60 ));
56+ endHour = Math .max (endHour , Math .ceil (event .to .hour + event .to .minute / 60 ));
57+ }
58+ }
4859
49- const result: string [] = [];
60+ return { startHour , endHour };
61+ });
5062
51- const totalHours = end > start ? end - start : 24 - start + end ;
63+ const hoursOnGrid = computed (() => {
64+ const { startHour, endHour } = timelineRange .value ;
65+ const result: string [] = [];
5266
53- for (let i = 0 ; i < totalHours ; i ++ ) {
54- const current = (start + i ) % 24 ;
67+ for (let i = 0 ; i < endHour - startHour ; i ++ ) {
68+ const current = (startHour + i ) % 24 ;
5569
5670 // resolve formats manually ig
5771 if (settings .value .timeFormat === ' h12' ) {
@@ -130,7 +144,7 @@ async function updateData() {
130144 </div >
131145
132146 <div id =" content" >
133- <CursorLine />
147+ <CursorLine : start-hour = " timelineRange . startHour " : end-hour = " timelineRange . endHour " />
134148
135149 <div class =" hour-lines" >
136150 <div
@@ -141,7 +155,14 @@ async function updateData() {
141155 ></div >
142156 </div >
143157
144- <DayTimeline v-for =" (d , i ) in dates " :key =" d .toMillis ()" :date =" d " :events =" eventsTimeline [i ]" />
158+ <DayTimeline
159+ v-for =" (d , i ) in dates "
160+ :key =" d .toMillis ()"
161+ :date =" d "
162+ :events =" eventsTimeline [i ]"
163+ :start-hour =" timelineRange .startHour "
164+ :end-hour =" timelineRange .endHour "
165+ />
145166 </div >
146167 </div >
147168</template >
0 commit comments