chore: make footer lower buttons floating over table rows

This commit is contained in:
maciek
2023-03-02 17:32:30 +01:00
parent 9c9948e4c1
commit 33252f6c23
10 changed files with 32 additions and 19 deletions
@@ -33,8 +33,9 @@ export const DepositsContainer = () => {
</div>
</div>
{!isReadOnly && (
<div className="w-full dark:bg-black bg-white absolute bottom-0 h-auto flex justify-end px-[11px] py-2">
<div className="h-auto flex justify-end px-[11px] py-2 bottom-0 right-1 absolute dark:bg-black/75 bg-white/75 rounded">
<Button
variant="primary"
size="sm"
onClick={() => openDepositDialog()}
data-testid="deposit-button"
@@ -20,7 +20,7 @@ export const WithdrawalsContainer = () => {
return (
<VegaWalletContainer>
<div className="h-full relative grid grid-rows-[1fr,min-content]">
<div className="h-full relative grid grid-rows-[1fr]">
<div className="h-full relative">
<WithdrawalsTable
data-testid="withdrawals-history"
@@ -39,8 +39,9 @@ export const WithdrawalsContainer = () => {
</div>
</div>
{!isReadOnly && (
<div className="w-full dark:bg-black bg-white absolute bottom-0 h-auto flex justify-end px-[11px] py-2">
<div className="h-auto flex justify-end px-[11px] py-2 bottom-0 right-1 absolute dark:bg-black/75 bg-white/75 rounded">
<Button
variant="primary"
size="sm"
onClick={() => openWithdrawDialog()}
data-testid="withdraw-dialog-button"
@@ -36,7 +36,7 @@ export const AccountsContainer = ({
}
return (
<div className="h-full relative grid grid-rows-[1fr,min-content]">
<div className="h-full relative grid grid-rows-[1fr]">
<div>
<AccountManager
partyId={pubKey}
@@ -48,15 +48,20 @@ export const AccountsContainer = ({
/>
</div>
{!isReadOnly && (
<div className="flex gap-2 justify-end p-2 px-[11px]">
<div className="flex gap-2 justify-end p-2 px-[11px] fixed bottom-0 right-1 dark:bg-black/75 bg-white/75 rounded">
<Button
variant="primary"
size="sm"
data-testid="open-transfer-dialog"
onClick={() => openTransferDialog()}
>
{t('Transfer')}
</Button>
<Button size="sm" onClick={() => openDepositDialog()}>
<Button
variant="primary"
size="sm"
onClick={() => openDepositDialog()}
>
{t('Deposit')}
</Button>
</div>
+1 -1
View File
@@ -14,7 +14,7 @@ export const Footer = () => {
const { blockDiff, datanodeBlockHeight } = useNodeHealth();
return (
<footer className="px-4 py-1 text-xs border-t border-default text-vega-light-300 dark:text-vega-dark-300">
<footer className="px-4 py-1 text-xs border-t border-default text-vega-light-300 dark:text-vega-dark-300 fixed bottom-0 left-0 border-r bg-white dark:bg-black">
{/* Pull left to align with top nav, due to button padding */}
<div className="-ml-2">
{VEGA_URL && (
+1 -1
View File
@@ -72,7 +72,7 @@ function AppBody({ Component }: AppProps) {
const gridClasses = classNames(
'h-full relative z-0 grid',
'grid-rows-[repeat(3,min-content),1fr,min-content]'
'grid-rows-[repeat(3,min-content),1fr]'
);
return (
+9 -1
View File
@@ -1,8 +1,9 @@
import { useRef, useMemo, memo, useCallback, useState, useEffect } from 'react';
import { t } from '@vegaprotocol/i18n';
import { useDataProvider } from '@vegaprotocol/react-helpers';
import { AsyncRenderer } from '@vegaprotocol/ui-toolkit';
import type { GridReadyEvent } from 'ag-grid-community';
import type { AgGridReact } from 'ag-grid-react';
import { useRef, useMemo, memo } from 'react';
import type { AccountFields } from './accounts-data-provider';
import { aggregatedAccountsDataProvider } from './accounts-data-provider';
import type { PinnedAsset } from './accounts-table';
@@ -35,6 +36,12 @@ export const AccountManager = ({
dataProvider: aggregatedAccountsDataProvider,
variables,
});
const onGridReady = useCallback((params: GridReadyEvent) => {
gridRef.current?.api.sizeColumnsToFit();
}, []);
useEffect(() => {
gridRef.current?.api?.sizeColumnsToFit();
}, [data]);
return (
<div className="relative h-full">
<AccountTable
@@ -46,6 +53,7 @@ export const AccountManager = ({
isReadOnly={isReadOnly}
noRowsOverlayComponent={() => null}
pinnedAsset={pinnedAsset}
onGridReady={onGridReady}
/>
<div className="pointer-events-none absolute inset-0">
<AsyncRenderer
@@ -133,8 +133,8 @@ export const OrderListManager = ({
return (
<>
<div className="h-full relative grid grid-rows-[1fr,min-content]">
<div className="relative">
<div className="h-full relative grid grid-rows-[1fr]">
<div className="h-full relative">
<OrderListTable
ref={gridRef}
rowModelType="infinite"
@@ -155,7 +155,6 @@ export const OrderListManager = ({
setEditOrder={setEditOrder}
onMarketClick={onMarketClick}
isReadOnly={isReadOnly}
hasActiveOrder={hasActiveOrder}
blockLoadDebounceMillis={100}
suppressLoadingOverlay
suppressNoRowsOverlay
@@ -172,8 +171,9 @@ export const OrderListManager = ({
</div>
</div>
{!isReadOnly && hasActiveOrder && (
<div className="w-full dark:bg-black bg-white absolute bottom-0 h-auto flex justify-end px-[11px] py-2">
<div className="dark:bg-black/75 bg-white/75 h-auto flex justify-end px-[11px] py-2 absolute bottom-0 right-1 rounded">
<Button
variant="primary"
size="sm"
onClick={() => {
create({
@@ -31,11 +31,10 @@ export type OrderListTableProps = OrderListProps & {
setEditOrder: (order: Order) => void;
onMarketClick?: (marketId: string) => void;
isReadOnly: boolean;
hasActiveOrder?: boolean;
};
export const OrderListTable = forwardRef<AgGridReact, OrderListTableProps>(
({ cancel, setEditOrder, onMarketClick, hasActiveOrder, ...props }, ref) => {
({ cancel, setEditOrder, onMarketClick, ...props }, ref) => {
return (
<AgGrid
ref={ref}
@@ -47,7 +46,7 @@ export const OrderListTable = forwardRef<AgGridReact, OrderListTableProps>(
}}
style={{
width: '100%',
height: hasActiveOrder ? 'calc(100% - 46px)' : '100%',
height: '100%',
}}
getRowId={({ data }) => data.id}
{...props}
+1 -1
View File
@@ -1,4 +1,4 @@
import { useThemeSwitcher } from '@vegaprotocol/utils';
import { useThemeSwitcher } from '@vegaprotocol/react-helpers';
import classNames from 'classnames';
import { useEffect } from 'react';
import '../src/styles.css';
+1 -2
View File
@@ -45,8 +45,7 @@ export const WithdrawalsTable = (
EtherscanLinkCell,
CompleteCell,
}}
suppressCellFocus={true}
domLayout="autoHeight"
suppressCellFocus
{...props}
>
<AgGridColumn headerName="Asset" field="asset.symbol" />