forked from mystiq/hydrogen-web
implement logic when date separator should be shown
This commit is contained in:
parent
6697bb8ddf
commit
49752a0e7c
1 changed files with 25 additions and 3 deletions
|
@ -23,6 +23,7 @@ export class SimpleTile extends ViewModel {
|
||||||
super(options);
|
super(options);
|
||||||
this._entry = entry;
|
this._entry = entry;
|
||||||
this._date = this._entry.timestamp ? new Date(this._entry.timestamp) : null;
|
this._date = this._entry.timestamp ? new Date(this._entry.timestamp) : null;
|
||||||
|
this._hasDateSeparator = false;
|
||||||
this._emitUpdate = undefined;
|
this._emitUpdate = undefined;
|
||||||
}
|
}
|
||||||
// view model props for all subclasses
|
// view model props for all subclasses
|
||||||
|
@ -39,7 +40,25 @@ export class SimpleTile extends ViewModel {
|
||||||
}
|
}
|
||||||
|
|
||||||
get hasDateSeparator() {
|
get hasDateSeparator() {
|
||||||
return false;
|
return this._hasDateSeparator;
|
||||||
|
}
|
||||||
|
|
||||||
|
_updateDateSeparator(prev) {
|
||||||
|
let hasDateSeparator;
|
||||||
|
if (prev instanceof SimpleTile) {
|
||||||
|
if (prev && prev._date) {
|
||||||
|
hasDateSeparator = prev._date.getFullYear() !== this._date.getFullYear() ||
|
||||||
|
prev._date.getMonth() !== this._date.getMonth() ||
|
||||||
|
prev._date.getDate() !== this._date.getDate();
|
||||||
|
} else {
|
||||||
|
hasDateSeparator = !!this._date;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
hasDateSeparator = true;
|
||||||
|
}
|
||||||
|
const changed = hasDateSeparator !== this._hasDateSeparator;
|
||||||
|
this._hasDateSeparator = hasDateSeparator;
|
||||||
|
return changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
get id() {
|
get id() {
|
||||||
|
@ -127,9 +146,12 @@ export class SimpleTile extends ViewModel {
|
||||||
tryIncludeEntry() {
|
tryIncludeEntry() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// let item know it has a new sibling
|
|
||||||
updatePreviousSibling(/*prev*/) {
|
|
||||||
|
|
||||||
|
// let item know it has a new sibling
|
||||||
|
updatePreviousSibling(prev) {
|
||||||
|
if (this._updateDateSeparator(prev)) {
|
||||||
|
this.emitChange();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// let item know it has a new sibling
|
// let item know it has a new sibling
|
||||||
|
|
Loading…
Reference in a new issue