Fix activity calendar for desktop widget (#5200)
* Fix activity calendar for desktop widget
* fetch past 21 weeks for activity widgets
* Cleanup
* forEach -> map
* Revert "forEach -> map"
This reverts commit b72e180ee4
.
This commit is contained in:
parent
8a31e5fd0f
commit
eb8ef35122
|
@ -5,7 +5,7 @@
|
||||||
:x="record.x" :y="record.date.weekday"
|
:x="record.x" :y="record.date.weekday"
|
||||||
rx="1" ry="1"
|
rx="1" ry="1"
|
||||||
fill="transparent">
|
fill="transparent">
|
||||||
<title>{{ record.date.year }}/{{ record.date.month }}/{{ record.date.day }}</title>
|
<title>{{ record.date.year }}/{{ record.date.month + 1 }}/{{ record.date.day }}</title>
|
||||||
</rect>
|
</rect>
|
||||||
<rect v-for="record in data" class="day"
|
<rect v-for="record in data" class="day"
|
||||||
:width="record.v" :height="record.v"
|
:width="record.v" :height="record.v"
|
||||||
|
@ -39,17 +39,17 @@ export default Vue.extend({
|
||||||
const month = now.getMonth();
|
const month = now.getMonth();
|
||||||
const day = now.getDate();
|
const day = now.getDate();
|
||||||
|
|
||||||
let x = 0;
|
let x = 20;
|
||||||
this.data.slice().reverse().forEach((d, i) => {
|
this.data.slice().forEach((d, i) => {
|
||||||
d.x = x;
|
d.x = x;
|
||||||
|
|
||||||
const date = new Date(year, month, day - i);
|
const date = new Date(year, month, day - i);
|
||||||
d.date = {
|
d.date = {
|
||||||
year: date.getFullYear(),
|
year: date.getFullYear(),
|
||||||
month: date.getMonth(),
|
month: date.getMonth(),
|
||||||
day: date.getDate()
|
day: date.getDate(),
|
||||||
|
weekday: date.getDay()
|
||||||
};
|
};
|
||||||
d.date.weekday = (new Date(d.date.year, d.date.month - 1, d.date.day)).getDay();
|
|
||||||
|
|
||||||
d.v = peak == 0 ? 0 : d.total / (peak / 2);
|
d.v = peak == 0 ? 0 : d.total / (peak / 2);
|
||||||
if (d.v > 1) d.v = 1;
|
if (d.v > 1) d.v = 1;
|
||||||
|
@ -58,7 +58,7 @@ export default Vue.extend({
|
||||||
const cl = 15 + ((1 - d.v) * 80);
|
const cl = 15 + ((1 - d.v) * 80);
|
||||||
d.color = `hsl(${ch}, ${cs}%, ${cl}%)`;
|
d.color = `hsl(${ch}, ${cs}%, ${cl}%)`;
|
||||||
|
|
||||||
if (d.date.weekday == 6) x++;
|
if (d.date.weekday == 0) x--;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -46,7 +46,7 @@ export default Vue.extend({
|
||||||
props: ['data'],
|
props: ['data'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
viewBoxX: 140,
|
viewBoxX: 147,
|
||||||
viewBoxY: 60,
|
viewBoxY: 60,
|
||||||
zoom: 1,
|
zoom: 1,
|
||||||
pos: 0,
|
pos: 0,
|
||||||
|
|
|
@ -48,7 +48,7 @@ export default Vue.extend({
|
||||||
this.$root.api('charts/user/notes', {
|
this.$root.api('charts/user/notes', {
|
||||||
userId: this.user.id,
|
userId: this.user.id,
|
||||||
span: 'day',
|
span: 'day',
|
||||||
limit: 7 * 20
|
limit: 7 * 21
|
||||||
}).then(activity => {
|
}).then(activity => {
|
||||||
this.activity = activity.diffs.normal.map((_, i) => ({
|
this.activity = activity.diffs.normal.map((_, i) => ({
|
||||||
total: activity.diffs.normal[i] + activity.diffs.reply[i] + activity.diffs.renote[i],
|
total: activity.diffs.normal[i] + activity.diffs.reply[i] + activity.diffs.renote[i],
|
||||||
|
|
Loading…
Reference in a new issue