Fix on window resize
parent
149ce2ad12
commit
b48d00e93e
|
@ -26,3 +26,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@include icon-black-white('yourmemories', 'memories', 1);
|
@include icon-black-white('yourmemories', 'memories', 1);
|
||||||
|
|
||||||
|
body {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -198,6 +198,14 @@ export default class Timeline extends Mixins(GlobalMixin) {
|
||||||
this.resetState();
|
this.resetState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
created() {
|
||||||
|
window.addEventListener("resize", this.handleResizeWithDelay);
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyed() {
|
||||||
|
window.removeEventListener("resize", this.handleResizeWithDelay);
|
||||||
|
}
|
||||||
|
|
||||||
/** Create new state */
|
/** Create new state */
|
||||||
async createState() {
|
async createState() {
|
||||||
// Wait for one tick before doing anything
|
// Wait for one tick before doing anything
|
||||||
|
@ -270,7 +278,7 @@ export default class Timeline extends Mixins(GlobalMixin) {
|
||||||
this.list.filter(r => !r.head).forEach(row => {
|
this.list.filter(r => !r.head).forEach(row => {
|
||||||
row.size = this.rowHeight;
|
row.size = this.rowHeight;
|
||||||
});
|
});
|
||||||
this.reflowTimeline();
|
this.reflowTimeline(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -529,56 +537,21 @@ export default class Timeline extends Mixins(GlobalMixin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Re-create timeline tick data in the next frame */
|
/** Re-create timeline tick data in the next frame */
|
||||||
async reflowTimeline() {
|
async reflowTimeline(orderOnly = false) {
|
||||||
if (this.reflowTimelineReq) {
|
if (this.reflowTimelineReq) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.reflowTimelineReq = true;
|
this.reflowTimelineReq = true;
|
||||||
await this.$nextTick();
|
await this.$nextTick();
|
||||||
this.reflowTimelineNow();
|
this.reflowTimelineNow(orderOnly);
|
||||||
this.reflowTimelineReq = false;
|
this.reflowTimelineReq = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Re-create timeline tick data */
|
/** Re-create timeline tick data */
|
||||||
reflowTimelineNow() {
|
reflowTimelineNow(orderOnly = false) {
|
||||||
// Clear timeline
|
if (!orderOnly) {
|
||||||
this.timelineTicks = [];
|
this.recreateTimeline();
|
||||||
|
|
||||||
// Ticks
|
|
||||||
let currTopRow = 0;
|
|
||||||
let currTopStatic = 0;
|
|
||||||
let prevYear = 9999;
|
|
||||||
let prevMonth = 0;
|
|
||||||
const thisYear = new Date().getFullYear();
|
|
||||||
|
|
||||||
// Itearte over days
|
|
||||||
for (const day of this.days) {
|
|
||||||
if (day.count === 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make date string
|
|
||||||
const dateTaken = utils.dayIdToDate(day.dayid);
|
|
||||||
|
|
||||||
// Create tick if month changed
|
|
||||||
const dtYear = dateTaken.getUTCFullYear();
|
|
||||||
const dtMonth = dateTaken.getUTCMonth()
|
|
||||||
if (Number.isInteger(day.dayid) && (dtMonth !== prevMonth || dtYear !== prevYear)) {
|
|
||||||
// Create tick
|
|
||||||
this.timelineTicks.push({
|
|
||||||
dayId: day.dayid,
|
|
||||||
top: currTopRow,
|
|
||||||
topS: currTopStatic,
|
|
||||||
topC: 0,
|
|
||||||
text: (dtYear === prevYear || dtYear === thisYear) ? undefined : dtYear,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
prevMonth = dtMonth;
|
|
||||||
prevYear = dtYear;
|
|
||||||
|
|
||||||
currTopStatic += this.heads[day.dayid].size;
|
|
||||||
currTopRow += day.rows.size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const recycler: any = this.$refs.recycler;
|
const recycler: any = this.$refs.recycler;
|
||||||
|
@ -640,6 +613,50 @@ export default class Timeline extends Mixins(GlobalMixin) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Recreate the timeline from scratch
|
||||||
|
*/
|
||||||
|
recreateTimeline() {
|
||||||
|
// Clear timeline
|
||||||
|
this.timelineTicks = [];
|
||||||
|
|
||||||
|
// Ticks
|
||||||
|
let currTopRow = 0;
|
||||||
|
let currTopStatic = 0;
|
||||||
|
let prevYear = 9999;
|
||||||
|
let prevMonth = 0;
|
||||||
|
const thisYear = new Date().getFullYear();
|
||||||
|
|
||||||
|
// Itearte over days
|
||||||
|
for (const day of this.days) {
|
||||||
|
if (day.count === 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make date string
|
||||||
|
const dateTaken = utils.dayIdToDate(day.dayid);
|
||||||
|
|
||||||
|
// Create tick if month changed
|
||||||
|
const dtYear = dateTaken.getUTCFullYear();
|
||||||
|
const dtMonth = dateTaken.getUTCMonth()
|
||||||
|
if (Number.isInteger(day.dayid) && (dtMonth !== prevMonth || dtYear !== prevYear)) {
|
||||||
|
// Create tick
|
||||||
|
this.timelineTicks.push({
|
||||||
|
dayId: day.dayid,
|
||||||
|
top: currTopRow,
|
||||||
|
topS: currTopStatic,
|
||||||
|
topC: 0,
|
||||||
|
text: (dtYear === prevYear || dtYear === thisYear) ? undefined : dtYear,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
prevMonth = dtMonth;
|
||||||
|
prevYear = dtYear;
|
||||||
|
|
||||||
|
currTopStatic += this.heads[day.dayid].size;
|
||||||
|
currTopRow += day.rows.size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process items from day response.
|
* Process items from day response.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue