vega-frontend-monorepo/libs/ledger/src/lib/ledger-manager.tsx

71 lines
2.3 KiB
TypeScript
Raw Normal View History

import { t } from '@vegaprotocol/i18n';
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
import type * as Schema from '@vegaprotocol/types';
2022-11-04 10:47:39 +00:00
import { AsyncRenderer } from '@vegaprotocol/ui-toolkit';
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
import type { FilterChangedEvent } from 'ag-grid-community';
import type { AgGridReact } from 'ag-grid-react';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { subDays, formatRFC3339 } from 'date-fns';
import type { AggregatedLedgerEntriesNode } from './ledger-entries-data-provider';
2022-11-04 10:47:39 +00:00
import { useLedgerEntriesDataProvider } from './ledger-entries-data-provider';
import { LedgerTable } from './ledger-table';
import type * as Types from '@vegaprotocol/types';
2022-11-04 10:47:39 +00:00
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
export interface Filter {
vegaTime?: {
value: Schema.DateRange;
};
fromAccountType?: { value: Types.AccountType[] };
toAccountType?: { value: Types.AccountType[] };
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
}
const defaultFilter = {
vegaTime: {
value: { start: formatRFC3339(subDays(Date.now(), 7)) },
},
};
export const LedgerManager = ({ partyId }: { partyId: string }) => {
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
const gridRef = useRef<AgGridReact | null>(null);
const [filter, setFilter] = useState<Filter>(defaultFilter);
const [dataCount, setDataCount] = useState(0);
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
const { data, error, loading, reload } = useLedgerEntriesDataProvider({
partyId,
filter,
gridRef,
});
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
const onFilterChanged = useCallback((event: FilterChangedEvent) => {
const updatedFilter = { ...defaultFilter, ...event.api.getFilterModel() };
setFilter(updatedFilter);
}, []);
const extractNodesDecorator = useCallback(
(data: AggregatedLedgerEntriesNode[] | null, loading: boolean) =>
data && !loading ? data.map((item) => item.node) : null,
[]
);
const extractedData = extractNodesDecorator(data, loading);
useEffect(() => {
setDataCount(gridRef.current?.api?.getModel().getRowCount() ?? 0);
}, [extractedData]);
2022-11-04 10:47:39 +00:00
return (
<div className="h-full relative">
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
<LedgerTable
ref={gridRef}
rowData={extractedData}
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
onFilterChanged={onFilterChanged}
/>
<div className="pointer-events-none absolute inset-0">
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
<AsyncRenderer
loading={loading}
error={error}
data={data}
noDataMessage={t('No entries')}
noDataCondition={() => !dataCount}
reload={reload}
feat(#1853): ledger entries date filtering (#2267) * chore: update ledger entries columns * fix: yarn generate types against stagnet3 * fix: orderbook decimal places issue (#2235) * fix: positions table fixes notional dp (#2144) * fix: update decimals on position notional size * fix: normalize values * fix: fix positions unit tests * fix: remove liquidation price * fix: positions linting issue * fix: remove liquidation price test * fix: remove total summary row * fix: remove comments * fix: cypress test to not show trailing 0s * fix: add back liq. price est as cell only * fix: remove not used params * chore: merge with release/testnet * fix: orderbook dp * Update libs/positions/src/lib/positions-table.spec.tsx * feat(#1853): use date range filter * feat(#1853): add date range filter to ledger entries on update * chore(#1853): add extra checks * fix: update types on stagnet3 * fix: add checkpoint balance restore * fix(#1853): fix ledger generic make data provider cast in ledger entries * fix(#1853): fix transfer type * fix(#1853): remove TransferTypeMapping cast type * fix(#1853): remove pagination filtering and use formatForInput from date * fix(#1853): call filterChangedCallback in onChange method * fix(#1853): remove subscription from ledger entries table * fix(#1853): filterChangedCallback called in useEffect gets triggered also on reset * fix: use-order-list-data hook order of params for makeInfiniteScrollGetRows * fix(#1853): fix ledger build import all as schema * fix(#1853): fix schema import Co-authored-by: maciek <maciek@vegaprotocol.io> Co-authored-by: Bartłomiej Głownia <bglownia@gmail.com>
2022-12-14 09:43:16 +00:00
/>
</div>
</div>
2022-11-04 10:47:39 +00:00
);
};