Skip to content

Conversation

@findolor
Copy link
Collaborator

@findolor findolor commented Jan 26, 2026

Motivation

The list and detail tables in the UI had several layout issues:

  • Columns would jump around when data loaded due to variable content widths
  • Too many columns made tables feel cluttered and hard to scan
  • Related information was spread across multiple columns unnecessarily
  • Inconsistent styling between different table components

Solution

Consolidated columns and improved table layouts across all major table components:

OrdersListTable:

  • Combined Order Hash, Owner, Orderbook into single "Addresses" column
  • Combined Network, Active badge, and timestamp into single "Order Info" column
Screenshot 2026-01-26 at 09 24 05 Screenshot 2026-01-26 at 09 24 13

VaultsListTable:

  • Combined Vault ID, Orderbook, Owner into single "Addresses" column
  • Combined Token name and Balance into single "Token" column
  • Added Actions header for consistent column count with table-fixed layout
Screenshot 2026-01-26 at 09 24 25

OrderTradesListTable:

  • Combined Sender and Transaction Hash into single "Transaction" column
  • Input/Output columns now show token symbol with truncated amount and tooltip on hover
Screenshot 2026-01-26 at 09 25 34

VaultBalanceChangesTable:

  • New "Info" column with colored type badge (green=deposit, yellow=withdrawal, blue=trade, purple=bounty) and date
  • Formats camelCase types to readable labels (e.g., "tradeVaultBalanceChange" → "Trade Vault Balance Change")
  • Combined Sender/Tx into "Transaction" column
Screenshot 2026-01-26 at 09 24 47 Screenshot 2026-01-26 at 09 24 36 Screenshot 2026-01-26 at 09 25 19

TanstackAppTable:

  • Added table-fixed class with explicit percentage-based column widths to prevent column jumping

Updated tests to cover new column structure and badge formatting.

Checks

By submitting this for review, I'm confirming I've done the following:

  • made this PR as small as possible
  • unit-tested any new functionality
  • linked any relevant issues or PRs
  • included screenshots (if this involves a front-end change)

Summary by CodeRabbit

Release Notes

  • Tests

    • Expanded test coverage for table components to validate updated UI layouts and data rendering.
  • UI Improvements

    • Reorganized table layouts for better information grouping (e.g., transaction details, addresses consolidated into single cells).
    • Added visual enhancements: badges, tooltips, and improved data display for transaction and balance information.
    • Implemented fixed column widths for consistent table appearance across all data tables.

✏️ Tip: You can customize this high-level summary in your review settings.

Combine Order, Owner, Orderbook columns into single Addresses column
with stacked layout to reduce horizontal space usage.

Update tests to assert on new combined Addresses cells.
Reduces OrdersListTable from 7 to 5 columns by consolidating metadata
into a compact stacked layout with network name and status badge inline.
Apply table-fixed layout to TanstackAppTable and define explicit
column widths for Orders and Vaults tables to prevent layout shift.
Combine Token name and Balance into a single column in Vaults table.
Combine Sender and Transaction Hash into single Transaction column.
Show Input/Output with token symbol and truncated amounts with tooltips.
Update tests to cover new column structure.
Combine Type and Date into Info column with colored badge.
Add badge colors: green (deposit), yellow (withdrawal), blue (trade), purple (bounty).
Format camelCase types to readable labels.
Combine Sender and Tx into Transaction column.
Update tests to cover badge formatting and new column structure.
Add empty Actions header for consistent column count with table-fixed layout.
Move action cell outside conditional to always render.
Update test to verify Token column contains both name and balance.
@findolor findolor self-assigned this Jan 26, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 26, 2026

Walkthrough

This PR restructures multiple table components (OrderTrades, Orders, VaultBalances, Vaults) to consolidate related information into combined cells with improved visual organization. Updates include: unified Transaction/Addresses cells with labels, compact Input/Output blocks with tooltips, Badge components for type categorization, and explicit column width allocations. Tests are updated to validate the new UI structure.

Changes

Cohort / File(s) Summary
Order Trades List Table
packages/ui-components/src/__tests__/OrderTradesListTable.test.ts, packages/ui-components/src/lib/components/tables/OrderTradesListTable.svelte
Updated mock trade data with unique transaction IDs and token metadata. Consolidated Sender and Tx into single stacked cell. Transformed Input/Output cells to display symbol + amount in compact blocks with tooltips. Reworked IO-ratio with secondary ratio and tooltip. Added Actions column and test-id attributes.
Orders List Table
packages/ui-components/src/__tests__/OrdersListTable.test.ts, packages/ui-components/src/lib/components/tables/OrdersListTable.svelte
Refactored test expectations to validate consolidated Order Info cell (network + status badge + timestamp) instead of separate cells. Added Addresses cell validation (Order, Owner, Orderbook labels). Restructured component layout with explicit width classes and combined address/info cells.
Vault Balance Changes Table
packages/ui-components/src/__tests__/VaultBalanceChangesTable.test.ts, packages/ui-components/src/lib/components/tables/VaultBalanceChangesTable.svelte
Introduced mock factory (createMockVaultBalanceChange) and type/color mapping helpers. Added Badge components for transaction types with formatted labels. Consolidated Info column with badge + timestamp + tooltip. Reworked Transaction, Balance Change, and New Balance columns with symbol/amount and tooltips. Expanded test coverage for type formatting and color-label validation.
Vaults List Table
packages/ui-components/src/__tests__/VaultsListTable.test.ts, packages/ui-components/src/lib/components/tables/VaultsListTable.svelte
Updated tests to verify new Addresses cell containing Vault, Orderbook, and Owner. Combined Token and Balance columns into single cell. Restructured layout with explicit widths and consolidated address rendering. Moved deposit/withdraw actions to Actions column.
Base Table Component & Tests
packages/ui-components/src/lib/components/TanstackAppTable.svelte, packages/ui-components/src/__tests__/TanstackAppTable.test.ts
Added table-fixed and w-full classes to Table component for consistent column widths. Added test case validating layout class application.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

ui/ux, test, webapp

Suggested reviewers

  • hardyjosh
  • 0xgleb
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Improve table layouts with consolidated columns and fixed widths' accurately and concisely summarizes the main objectives of the PR, which involves consolidating related columns across multiple tables (OrdersListTable, VaultsListTable, OrderTradesListTable, VaultBalanceChangesTable) and adding fixed-width table layout via the table-fixed class.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@findolor findolor requested review from 0xgleb and hardyjosh January 26, 2026 06:41
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Fix all issues with AI agents
In `@packages/ui-components/src/__tests__/TanstackAppTable.test.ts`:
- Around line 234-243: The test "applies table-fixed layout for consistent
column widths" should not assert Tailwind class names; update the test (the case
using renderTable(mockQuery) and helpers createPages/createMockQuery) to assert
behavior instead—for example, verify consistent column widths by comparing
getBoundingClientRect widths of header cells and body cells, assert that long
cell content is truncated/ellipsis or that there is no horizontal overflow, or
move the class-presence check into a visual/regression test; remove
expect(table).toHaveClass('table-fixed') and expect(table).toHaveClass('w-full')
and replace them with one of these functional assertions.

In `@packages/ui-components/src/lib/components/tables/OrdersListTable.svelte`:
- Around line 131-145: The table head currently defines five TableHeadCell
headers (Order Info, Addresses, Input Token(s), Output Token(s), Trades) but the
row rendering (where the owner action cell is conditionally rendered) can add an
extra actions cell causing misalignment under table-fixed; update
OrdersListTable.svelte so the head always includes an Actions header (visually
hidden with sr-only) by adding a sixth TableHeadCell (label “Actions” or
sr-only) to match the conditional action cell, and ensure that row rendering for
non-owner rows emits an empty cell (<td> equivalent) where the action cell would
be so column counts remain consistent; identify TableHeadCell usage in the
header block and the conditional action button render in the row template to
implement this.

In
`@packages/ui-components/src/lib/components/tables/OrderTradesListTable.svelte`:
- Around line 103-154: The tooltip anchor IDs currently use item.transaction.id
which can collide across trades; update all ID and Tooltip triggeredBy usages in
OrderTradesListTable.svelte (the span ids and the div id for io-ratio, and their
corresponding Tooltip triggeredBy props) to use a unique trade identifier such
as item.id (or append the row index) instead of item.transaction.id so each
Tooltip binds to the correct row; ensure you change every occurrence: input-...,
output-..., io-ratio-... and their Tooltip triggeredBy values to the new unique
ID.

In
`@packages/ui-components/src/lib/components/tables/VaultBalanceChangesTable.svelte`:
- Around line 91-114: The Tooltip children currently render
{item.formattedAmount}{item.token.symbol} and
{item.formattedNewBalance}{item.token.symbol} which concatenates values (e.g.,
"0.1TKN1"); update both Tooltip usages in VaultBalanceChangesTable.svelte (the
Tooltip triggeredBy for `#change-${item.transaction.id}` and
`#balance-${item.transaction.id}`) to insert a separator (e.g., a space or
non‑breaking space or " ") between item.formattedAmount and item.token.symbol
and likewise between item.formattedNewBalance and item.token.symbol so the
tooltip displays like "0.1 TKN1".

Comment on lines +234 to +243
test('applies table-fixed layout for consistent column widths', async () => {
const pages = createPages();
const mockQuery = createMockQuery(pages);
renderTable(mockQuery);

await waitFor(() => {
const table = document.querySelector('table');
expect(table).toHaveClass('table-fixed');
expect(table).toHaveClass('w-full');
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Avoid asserting Tailwind class names in unit tests.

Line 240-242 checks table-fixed/w-full, which couples tests to styling. Prefer functional assertions or move this to visual/regression testing. Based on learnings, focus UI unit tests on behavior rather than CSS class presence.

🤖 Prompt for AI Agents
In `@packages/ui-components/src/__tests__/TanstackAppTable.test.ts` around lines
234 - 243, The test "applies table-fixed layout for consistent column widths"
should not assert Tailwind class names; update the test (the case using
renderTable(mockQuery) and helpers createPages/createMockQuery) to assert
behavior instead—for example, verify consistent column widths by comparing
getBoundingClientRect widths of header cells and body cells, assert that long
cell content is truncated/ellipsis or that there is no horizontal overflow, or
move the class-presence check into a visual/regression test; remove
expect(table).toHaveClass('table-fixed') and expect(table).toHaveClass('w-full')
and replace them with one of these functional assertions.

Comment on lines +131 to +145
<TableHeadCell data-testid="orderListHeadingOrderInfo" padding="p-4" class="w-[15%]"
>Order Info</TableHeadCell
>
<TableHeadCell data-testid="orderListHeadingAddresses" padding="p-4" class="w-[20%]"
>Addresses</TableHeadCell
>
<TableHeadCell data-testid="orderListHeadingInputs" padding="px-2 py-4" class="w-[27.5%]"
>Input Token(s)</TableHeadCell
>
<TableHeadCell data-testid="orderListHeadingOutputs" padding="px-2 py-4"
<TableHeadCell data-testid="orderListHeadingOutputs" padding="px-2 py-4" class="w-[27.5%]"
>Output Token(s)</TableHeadCell
>
<TableHeadCell data-testid="orderListHeadingTrades" padding="px-2 py-4">Trades</TableHeadCell>
<TableHeadCell data-testid="orderListHeadingTrades" padding="px-2 py-4" class="w-[10%]"
>Trades</TableHeadCell
>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Add an Actions header to keep table-fixed columns aligned.

Line 131-145 defines 5 headers, but Line 210 can render an extra action cell for owner rows. With table-fixed, mixed column counts can misalign columns. Consider adding an Actions header (sr-only) and rendering an empty Actions cell when actions aren’t available, or move the action button into an existing column.

🤖 Prompt for AI Agents
In `@packages/ui-components/src/lib/components/tables/OrdersListTable.svelte`
around lines 131 - 145, The table head currently defines five TableHeadCell
headers (Order Info, Addresses, Input Token(s), Output Token(s), Trades) but the
row rendering (where the owner action cell is conditionally rendered) can add an
extra actions cell causing misalignment under table-fixed; update
OrdersListTable.svelte so the head always includes an Actions header (visually
hidden with sr-only) by adding a sixth TableHeadCell (label “Actions” or
sr-only) to match the conditional action cell, and ensure that row rendering for
non-owner rows emits an empty cell (<td> equivalent) where the action cell would
be so column counts remain consistent; identify TableHeadCell usage in the
header block and the conditional action button render in the row template to
implement this.

Comment on lines +103 to 154
<TableBodyCell tdClass="p-2" data-testid="input">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.inputVaultBalanceChange.token.symbol}</span>
<span
id={`input-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400"
>{item.inputVaultBalanceChange.formattedAmount}</span
>
<Tooltip triggeredBy={`#input-${item.transaction.id}`}>
{item.inputVaultBalanceChange.formattedAmount}
{item.inputVaultBalanceChange.token.symbol}
</Tooltip>
</div>
</TableBodyCell>
<TableBodyCell tdClass="break-all py-2">
{item.outputVaultBalanceChange.formattedAmount}
{item.outputVaultBalanceChange.token.symbol}
<TableBodyCell tdClass="p-2" data-testid="output">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.outputVaultBalanceChange.token.symbol}</span>
<span
id={`output-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400"
>{item.outputVaultBalanceChange.formattedAmount}</span
>
<Tooltip triggeredBy={`#output-${item.transaction.id}`}>
{item.outputVaultBalanceChange.formattedAmount}
{item.outputVaultBalanceChange.token.symbol}
</Tooltip>
</div>
</TableBodyCell>
<TableBodyCell tdClass="break-all py-2" data-testid="io-ratio">
{Math.abs(
Number(item.inputVaultBalanceChange.formattedAmount) /
Number(item.outputVaultBalanceChange.formattedAmount)
)}
<span class="text-gray-400">
<TableBodyCell tdClass="p-2" data-testid="io-ratio">
<div id={`io-ratio-${item.transaction.id}`} class="truncate">
{Math.abs(
Number(item.inputVaultBalanceChange.formattedAmount) /
Number(item.outputVaultBalanceChange.formattedAmount)
)}
<span class="text-gray-400">
({Math.abs(
Number(item.outputVaultBalanceChange.formattedAmount) /
Number(item.inputVaultBalanceChange.formattedAmount)
)})
</span>
</div>
<Tooltip triggeredBy={`#io-ratio-${item.transaction.id}`}>
{Math.abs(
Number(item.inputVaultBalanceChange.formattedAmount) /
Number(item.outputVaultBalanceChange.formattedAmount)
)}
({Math.abs(
Number(item.outputVaultBalanceChange.formattedAmount) /
Number(item.inputVaultBalanceChange.formattedAmount)
)})
</span>
</Tooltip>
</TableBodyCell>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Ensure tooltip anchor IDs are unique per trade.

Line 107/121/132 derive element IDs from item.transaction.id; if multiple trades share a transaction hash, IDs collide and tooltips bind to the first row only. Use item.id (or include row index) to keep anchors unique.

🔧 Proposed fix (use trade id for unique anchors)
-				<span
-					id={`input-${item.transaction.id}`}
+				<span
+					id={`input-${item.id}`}
 					class="truncate text-sm text-gray-500 dark:text-gray-400"
 					>{item.inputVaultBalanceChange.formattedAmount}</span
 				>
-				<Tooltip triggeredBy={`#input-${item.transaction.id}`}>
+				<Tooltip triggeredBy={`#input-${item.id}`}>
 					{item.inputVaultBalanceChange.formattedAmount}
 					{item.inputVaultBalanceChange.token.symbol}
 				</Tooltip>
 			</div>
@@
-				<span
-					id={`output-${item.transaction.id}`}
+				<span
+					id={`output-${item.id}`}
 					class="truncate text-sm text-gray-500 dark:text-gray-400"
 					>{item.outputVaultBalanceChange.formattedAmount}</span
 				>
-				<Tooltip triggeredBy={`#output-${item.transaction.id}`}>
+				<Tooltip triggeredBy={`#output-${item.id}`}>
 					{item.outputVaultBalanceChange.formattedAmount}
 					{item.outputVaultBalanceChange.token.symbol}
 				</Tooltip>
 			</div>
@@
-			<div id={`io-ratio-${item.transaction.id}`} class="truncate">
+			<div id={`io-ratio-${item.id}`} class="truncate">
 				{Math.abs(
 					Number(item.inputVaultBalanceChange.formattedAmount) /
 						Number(item.outputVaultBalanceChange.formattedAmount)
 				)}
 				<span class="text-gray-400">
 					({Math.abs(
 						Number(item.outputVaultBalanceChange.formattedAmount) /
 							Number(item.inputVaultBalanceChange.formattedAmount)
 					)})
 				</span>
 			</div>
-			<Tooltip triggeredBy={`#io-ratio-${item.transaction.id}`}>
+			<Tooltip triggeredBy={`#io-ratio-${item.id}`}>
 				{Math.abs(
 					Number(item.inputVaultBalanceChange.formattedAmount) /
 						Number(item.outputVaultBalanceChange.formattedAmount)
 				)}
 				({Math.abs(
 					Number(item.outputVaultBalanceChange.formattedAmount) /
 						Number(item.inputVaultBalanceChange.formattedAmount)
 				)})
 			</Tooltip>
🤖 Prompt for AI Agents
In `@packages/ui-components/src/lib/components/tables/OrderTradesListTable.svelte`
around lines 103 - 154, The tooltip anchor IDs currently use item.transaction.id
which can collide across trades; update all ID and Tooltip triggeredBy usages in
OrderTradesListTable.svelte (the span ids and the div id for io-ratio, and their
corresponding Tooltip triggeredBy props) to use a unique trade identifier such
as item.id (or append the row index) instead of item.transaction.id so each
Tooltip binds to the correct row; ensure you change every occurrence: input-...,
output-..., io-ratio-... and their Tooltip triggeredBy values to the new unique
ID.

Comment on lines +91 to +114
<TableBodyCell tdClass="p-2" data-testid="vaultBalanceChangesTableBalanceChange">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.token.symbol}</span>
<span
id={`change-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400">{item.formattedAmount}</span
>
<Tooltip triggeredBy={`#change-${item.transaction.id}`}>
{item.formattedAmount}
{item.token.symbol}
</Tooltip>
</div>
</TableBodyCell>
<TableBodyCell tdClass="break-word p-0 text-left" data-testid="vaultBalanceChangesTableType">
{item.type}
<TableBodyCell tdClass="p-2" data-testid="vaultBalanceChangesTableBalance">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.token.symbol}</span>
<span
id={`balance-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400">{item.formattedNewBalance}</span
>
<Tooltip triggeredBy={`#balance-${item.transaction.id}`}>
{item.formattedNewBalance}
{item.token.symbol}
</Tooltip>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Tooltip text concatenates amount and symbol. Add a separator to avoid “0.1TKN1”-style output.

💡 Suggested fix
-				<Tooltip triggeredBy={`#change-${item.transaction.id}`}>
-					{item.formattedAmount}
-					{item.token.symbol}
-				</Tooltip>
+				<Tooltip triggeredBy={`#change-${item.transaction.id}`}>
+					{item.formattedAmount} {item.token.symbol}
+				</Tooltip>
...
-				<Tooltip triggeredBy={`#balance-${item.transaction.id}`}>
-					{item.formattedNewBalance}
-					{item.token.symbol}
-				</Tooltip>
+				<Tooltip triggeredBy={`#balance-${item.transaction.id}`}>
+					{item.formattedNewBalance} {item.token.symbol}
+				</Tooltip>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<TableBodyCell tdClass="p-2" data-testid="vaultBalanceChangesTableBalanceChange">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.token.symbol}</span>
<span
id={`change-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400">{item.formattedAmount}</span
>
<Tooltip triggeredBy={`#change-${item.transaction.id}`}>
{item.formattedAmount}
{item.token.symbol}
</Tooltip>
</div>
</TableBodyCell>
<TableBodyCell tdClass="break-word p-0 text-left" data-testid="vaultBalanceChangesTableType">
{item.type}
<TableBodyCell tdClass="p-2" data-testid="vaultBalanceChangesTableBalance">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.token.symbol}</span>
<span
id={`balance-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400">{item.formattedNewBalance}</span
>
<Tooltip triggeredBy={`#balance-${item.transaction.id}`}>
{item.formattedNewBalance}
{item.token.symbol}
</Tooltip>
<TableBodyCell tdClass="p-2" data-testid="vaultBalanceChangesTableBalanceChange">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.token.symbol}</span>
<span
id={`change-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400">{item.formattedAmount}</span
>
<Tooltip triggeredBy={`#change-${item.transaction.id}`}>
{item.formattedAmount} {item.token.symbol}
</Tooltip>
</div>
</TableBodyCell>
<TableBodyCell tdClass="p-2" data-testid="vaultBalanceChangesTableBalance">
<div class="flex flex-col overflow-hidden">
<span class="truncate font-medium">{item.token.symbol}</span>
<span
id={`balance-${item.transaction.id}`}
class="truncate text-sm text-gray-500 dark:text-gray-400">{item.formattedNewBalance}</span
>
<Tooltip triggeredBy={`#balance-${item.transaction.id}`}>
{item.formattedNewBalance} {item.token.symbol}
</Tooltip>
🤖 Prompt for AI Agents
In
`@packages/ui-components/src/lib/components/tables/VaultBalanceChangesTable.svelte`
around lines 91 - 114, The Tooltip children currently render
{item.formattedAmount}{item.token.symbol} and
{item.formattedNewBalance}{item.token.symbol} which concatenates values (e.g.,
"0.1TKN1"); update both Tooltip usages in VaultBalanceChangesTable.svelte (the
Tooltip triggeredBy for `#change-${item.transaction.id}` and
`#balance-${item.transaction.id}`) to insert a separator (e.g., a space or
non‑breaking space or " ") between item.formattedAmount and item.token.symbol
and likewise between item.formattedNewBalance and item.token.symbol so the
tooltip displays like "0.1 TKN1".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants