Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions src/app/balance/balance.component.scss
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,6 @@
.send-receive-indicator {
min-width: 50px;
text-align: center;

.receive {
color: green;
}

.send {
color: red;
}
}

.mat-accordion .mat-expansion-panel:first-of-type {
Expand Down
22 changes: 0 additions & 22 deletions src/app/core/transfer-status/transfer-status.component.scss
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
@import "../../../vars.scss";

:host {
display: inline-flex;
align-items: center;
Expand All @@ -22,23 +20,3 @@
}
}

.trx-pending {
color: $trx-pending-color;
}

.transfer-success {
color: $trx-success-color;
}

.transfer-failed {
color: $trx-failure-color;
}

.trx-not-executed {
color: $trx-failure-color;
}

.trx-executed {
color: $trx-success-color;
}

107 changes: 55 additions & 52 deletions src/app/ipo/ipo.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,83 +26,86 @@ <h2>{{ p.name }}</h2>
<button [routerLink]="['/ipo/participate/', p.index]" mat-raised-button color="primary">
<mat-icon>payments</mat-icon> {{ t("ipoComponent.buttons.place-bid") }}
</button>
<button mat-raised-button (click)="init()">
<mat-icon>refresh</mat-icon> {{ t("ipoComponent.buttons.refresh") }}
<button mat-raised-button class="refresh-btn" (click)="init()" [disabled]="refreshing">
<mat-spinner *ngIf="refreshing" class="refresh-spinner" diameter="20"></mat-spinner>
<span class="refresh-content" [class.hidden]="refreshing">
<mat-icon>refresh</mat-icon>
<span>{{ t("ipoComponent.buttons.refresh") }}</span>
</span>
</button>
<button mat-raised-button (click)="openStats(p.index)">
<mat-icon>query_stats</mat-icon> {{ t("ipoComponent.livPanelHint") }}
</button>
<div *ngIf="ipoContracts">
<h3>{{ t("ipoComponent.yourShares") }}</h3>
{{ t("ipoComponent.statusValid", {tick: getBidOverview(p.index).tick | number: '1.0-0'}) }}
<div *ngFor="let bid of getMyShares(p.index)" class="transaction-list">
<strong>{{ bid.bids.length }} ({{ getTotalPrice(bid.bids) | number: '1.0-0'}} {{
t("general.currency") }})</strong> {{ t("ipoComponent.sharesFor") }}
<div [class]="{copy: true, ownId: isOwnId(bid.computorId)}">
<span matTooltip="{{ t('general.copy.tooltip') }}"
[cdkCopyToClipboard]="bid.computorId">{{ bid.computorId }} {{
getSeedName(bid.computorId) }}</span>
<div class="status-valid">({{ t("ipoComponent.statusValid", {tick: getBidOverview(p.index).tick | number: '1.0-0'}) }})</div>
<ng-container *ngIf="getMyShares(p.index) as shares">
<div *ngIf="shares.length === 0" class="empty-state">
{{ t("ipoComponent.noShares") }}
</div>
</div>
<div *ngFor="let bid of shares" class="transaction-list">
<strong>{{ bid.bids.length }} ({{ getTotalPrice(bid.bids) | number: '1.0-0'}} {{
t("general.currency") }})</strong> {{ t("ipoComponent.sharesFor") }}
<div [class]="{copy: true, ownId: isOwnId(bid.computorId)}">
<span matTooltip="{{ t('general.copy.tooltip') }}"
[cdkCopyToClipboard]="bid.computorId">{{ bid.computorId }} {{
getSeedName(bid.computorId) }}</span>
</div>
</div>
</ng-container>
</div>
<div>
<h3>{{ t("ipoComponent.yourBids") }}</h3>

<ng-container *ngIf="getContractBids(p.index) as bids">
<div *ngIf="bids.length === 0">
<div *ngIf="bids.length === 0" class="empty-state">
{{ t("ipoComponent.noBids") }}
</div>

<div *ngFor="let transaction of bids" class="transaction-list">
<tx-status [transaction]="transaction"></tx-status>
<span class="status-icon">
<mat-icon *ngIf="transaction.status == 'Success'" class="trx-executed"
matTooltip="{{ t('balanceComponent.transactions.status.executed.tooltip') }}">check_circle_outline</mat-icon>
<mat-icon *ngIf="transaction.status == 'Failed'" class="transfer-failed"
matTooltip="{{ t('balanceComponent.transactions.status.failure.tooltip') }}">highlight_off</mat-icon>
<mat-icon *ngIf="transaction.status != 'Success' && transaction.status != 'Failed'" class="trx-pending"
matTooltip="{{ t('balanceComponent.transactions.status.pending.tooltip') }}">schedule</mat-icon>
</span>
<div class="center">
<div class="trans-amount currency-value">{{ transaction.price | number: '1.0-0' }}
{{
t("general.currency") }} / {{ transaction.quantity | number: '1.0-0' }} {{
t("ipoComponent.bidStatus.pcs") }} </div>
<div class="trans-date"> Tick: {{ transaction.targetTick | number: '1.0-0' }} </div>
</div>
<div class="send-receive-indicator">
<button
*ngIf="isOwnId(transaction.sourceId) && currentTick > transaction.targetTick && transaction.status !== 'Pending'"
mat-icon-button matTooltip="{{ t('balanceComponent.repeatTransaction') }}"
(click)="repeat(transaction)"><mat-icon>repeat</mat-icon></button>
<mat-icon class="send"
matTooltip="{{ t('balanceComponent.transactions.send.tooltip') }}"
*ngIf="isOwnId(transaction.sourceId)">arrow_downward</mat-icon>
<mat-icon class="send"
matTooltip="{{ t('balanceComponent.transactions.send.tooltip') }}"
*ngIf="!isOwnId(transaction.sourceId)">empty</mat-icon>
<mat-icon class="receive"
matTooltip="{{ t('balanceComponent.transactions.receive.tooltip') }}"
*ngIf="isOwnId(transaction.destId)">arrow_upward</mat-icon>
<mat-icon class="receive"
matTooltip="{{ t('balanceComponent.transactions.receive.tooltip') }}"
*ngIf="!isOwnId(transaction.destId)">empty</mat-icon>
</div>
<div>
<div [class]="{copy: true, ownId: isOwnId(transaction.sourceId)}">
From: <span matTooltip="{{ t('general.copy.tooltip') }}"
[cdkCopyToClipboard]="transaction.sourceId">{{ transaction.sourceId }} {{
getSeedName(transaction.sourceId) }}</span>
<div class="address-group">
<div class="send-receive-indicator">
<button
*ngIf="isOwnId(transaction.sourceId) && currentTick > transaction.targetTick && transaction.status !== 'Pending'"
mat-icon-button matTooltip="{{ t('balanceComponent.repeatTransaction') }}"
(click)="repeat(transaction)"><mat-icon>repeat</mat-icon></button>
<mat-icon class="send"
matTooltip="{{ t('balanceComponent.transactions.send.tooltip') }}"
*ngIf="isOwnId(transaction.sourceId)">arrow_downward</mat-icon>
<mat-icon class="receive"
matTooltip="{{ t('balanceComponent.transactions.receive.tooltip') }}"
*ngIf="isOwnId(transaction.destId)">arrow_upward</mat-icon>
</div>
<div>
<div [class]="{copy: true, ownId: isOwnId(transaction.sourceId)}">
From: <span matTooltip="{{ t('general.copy.tooltip') }}"
[cdkCopyToClipboard]="transaction.sourceId">{{
getAddressDisplayName(transaction.sourceId) }}</span>
</div>
<div [class]="{copy: true, ownId: isOwnId(transaction.destId)}">
To: <span matTooltip="{{ t('general.copy.tooltip') }}"
[cdkCopyToClipboard]="transaction.destId">{{
getAddressDisplayName(transaction.destId) }}</span>
</div>
</div>
<div [class]="{copy: true, ownId: isOwnId(transaction.destId)}">To: <span
matTooltip="{{ t('general.copy.tooltip') }}"
[cdkCopyToClipboard]="transaction.destId">{{ transaction.destId }} {{
getSeedName(transaction.destId) }}</span></div>
</div>
<div>
<span *ngIf="transaction.created">Created: {{ transaction.created | date:'short'
}}<br></span>
<span *ngIf="transaction.broadcasted && !transaction.stored">Broadcasted: {{
transaction.broadcasted | date:'short' }}<br></span>
<span *ngIf="transaction.stored">Stored: {{ transaction.stored | date:'short'
}}<br></span>
<span *ngIf="transaction.staged">Staged: {{ transaction.staged | date:'short'
}}<br></span>
<span *ngIf="transaction.confirmed">Confirmed: {{ transaction.confirmed |
date:'short'
}}</span>
<div class="trans-dates">
<span *ngIf="transaction.created">{{ transaction.created | dateTime }}</span>
</div>
</div>
</ng-container>
Expand Down
87 changes: 71 additions & 16 deletions src/app/ipo/ipo.component.scss
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
.mostVotes{
font-weight: bold;
.status-icon {
display: inline-flex;
align-items: center;
justify-content: center;
padding-right: 6px;

mat-icon {
font-size: 20px;
width: 20px;
height: 20px;
line-height: 1;
}
}

.empty-state {
color: gray;
padding: 10px 0;
}

.status-valid {
font-size: 0.85em;
color: gray;
margin-top: -15px;
margin-bottom: 16px;
}

.proposal-card {
margin-bottom: 10px;
min-width: 120px;
Expand All @@ -17,25 +40,30 @@
flex-wrap: wrap;
align-items: center;
padding: 5px;
column-gap: 10px;
gap: 5px;
margin: 10px;

.send-receive-indicator {
min-width: 98px;
text-align: right;
}

.receive {
color: green;

.address-group {
display: flex;
align-items: center;
gap: 5px;
}

.send {
color: red;

.send-receive-indicator {
display: flex;
align-items: center;
}

.trans-date {
font-size: 0.9em;
}

.trans-dates {
margin-left: auto;
text-align: right;
font-size: 0.9em;
align-self: flex-start;
}

.trans-amount {
padding: 5px;
Expand All @@ -60,7 +88,34 @@
padding-bottom: 20px;
}

.loading {
.refresh-btn {
position: relative;

.refresh-spinner {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}

.refresh-content {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 4px;
vertical-align: middle;

mat-icon {
vertical-align: middle;
}

&.hidden {
visibility: hidden;
}
}
}

.loading {
display: flex;
justify-content: center;
align-items: center;
Expand Down
Loading