Skip to content

Commit 1d31f9e

Browse files
neokreptsisou
authored andcommitted
Dynamical Y in graph projection;Integration brushup;Mockpare better positioning;
1 parent dda2e26 commit 1d31f9e

File tree

4 files changed

+37
-10
lines changed

4 files changed

+37
-10
lines changed

src/components/stake/StakeGraphPage.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ import RewardTooltip from './tooltips/RewardTooltip.vue';
101101
102102
import { i18n } from '../../i18n/i18n-setup';
103103
104-
import { CryptoCurrency, NIM_DECIMALS } from '../../lib/Constants';
104+
import { CryptoCurrency, NIM_DECIMALS, NIM_MAGNITUDE } from '../../lib/Constants';
105105
import { calculateDisplayedDecimals } from '../../lib/NumberFormatting';
106106
107107
export default defineComponent({
@@ -129,13 +129,19 @@ export default defineComponent({
129129
}
130130
};
131131
132+
const mockStakedAlready = () => {
133+
validator.stakeAge = 60 * 60 * 24 * 110;
134+
validator.stakeSessionRewards = 450 * NIM_MAGNITUDE;
135+
};
136+
132137
const performStaking = () => {
133138
validator.stakedAmount = currentStake.amount;
134139
if (currentStake.amount < preStaked.value) {
135140
validator.unstakePending = true;
136141
} else if (currentStake.amount > preStaked.value) {
137142
validator.stakePending = true;
138143
}
144+
mockStakedAlready();
139145
context.emit('next');
140146
};
141147

src/components/stake/graph/plugins/StakingGraphPointsPlugin.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,20 @@ const plugin = {
4141

4242
ctx.strokeStyle = 'rgba(33, 188, 165, 1.0)';
4343

44+
const yRange = args.meta._scaleRanges.ymax - args.meta._scaleRanges.ymin;
45+
4446
for (let i = 0; i < args.meta._dataset.data.length; i++) {
4547
const point = args.meta._dataset.data[i];
4648
if (point) {
47-
const { x, y } = (point.y === 0) ? { x: 0, y: 0 } : points[i - 1];
49+
const y = (152 - 16) - ((point.y - args.meta._scaleRanges.ymin) / yRange) * 152;
50+
const x = (point.y === 0) ? 0 : points[i - 1].x;
4851

4952
const label = args.meta.data[i].$context.element.options.pointStyle;
5053
if (label.length > 0) {
5154
drawRoundedRectBox(ctx, label, x, y);
5255
}
5356
}
5457
}
55-
// ctx.scale(0.5, 0.5);
5658
ctx.restore();
5759
},
5860
};

src/components/widgets/Mockpare.vue

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<span>
3-
<select v-model="screenName">
3+
<select v-model="screenName" @change="screenChange()" >
44
<option v-for="screen in screens" :key="screen">
55
{{ screen }}
66
</option>
@@ -92,26 +92,37 @@ export default defineComponent({
9292
}
9393
};
9494
95+
const fitCenter = (img:HTMLImageElement) => {
96+
offsetX = (window.innerWidth - img.width) / 2.0;
97+
offsetY = (window.innerHeight - img.height) / 2.0;
98+
};
99+
95100
const fitToScreenW = () => {
96101
const el = document.getElementById(mockContainerID) as HTMLImageElement;
97102
if (!el.style.width) {
98103
el.style.width = `${window.innerWidth}px`;
104+
offsetX = 0;
105+
offsetY = 0;
99106
} else {
100107
el.style.width = '';
108+
fitCenter(el);
101109
}
102-
el.style.top = '0';
103-
el.style.left = '0';
110+
el.style.top = `${offsetY}px`;
111+
el.style.left = `${offsetX}px`;
104112
};
105113
106114
const fitToScreenH = () => {
107115
const el = document.getElementById(mockContainerID) as HTMLImageElement;
108116
if (!el.style.height) {
109117
el.style.height = `${window.innerHeight}px`;
118+
offsetX = 0;
119+
offsetY = 0;
110120
} else {
111121
el.style.height = '';
122+
fitCenter(el);
112123
}
113-
el.style.top = '0';
114-
el.style.left = '0';
124+
el.style.top = `${offsetY}px`;
125+
el.style.left = `${offsetX}px`;
115126
};
116127
117128
const adjustOpacity = (adjustment = 0.1) => {
@@ -127,6 +138,10 @@ export default defineComponent({
127138
el.style.left = `${offsetX}px`;
128139
};
129140
141+
const screenChange = () => {
142+
updateSource();
143+
};
144+
130145
const keyboardControl = (e:KeyboardEvent) => {
131146
if (e.key === 'M') {
132147
toggleMock();
@@ -165,8 +180,9 @@ export default defineComponent({
165180
document.body.style.overflow = 'hidden';
166181
const imgNode = document.createElement('IMG') as HTMLImageElement;
167182
imgNode.onload = () => {
168-
imgNode.style.top = `${(window.innerHeight - imgNode.height) / 2.0}px`;
169-
imgNode.style.left = `${(window.innerWidth - imgNode.width) / 2.0}px`;
183+
fitCenter(imgNode);
184+
imgNode.style.top = `${offsetY.toFixed(2)}px`;
185+
imgNode.style.left = `${offsetX.toFixed(2)}px`;
170186
};
171187
imgNode.style.pointerEvents = 'none';
172188
imgNode.style.display = 'none';
@@ -187,6 +203,7 @@ export default defineComponent({
187203
screens,
188204
$screens,
189205
screenName,
206+
screenChange,
190207
toggleMock,
191208
};
192209
},

src/stores/Staking.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ export type ValidatorData = {
1919
dominance: number | 0,
2020
stakedAmount: number | 0,
2121
unclaimedReward: number | 0,
22+
stakeAge: number | 0, // in seconds
23+
stakeSessionRewards: number | 0,
2224
stakePending: boolean | false,
2325
unstakePending: boolean | false,
2426
}

0 commit comments

Comments
 (0)