39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { useCallback } from 'react';
|
|
import { AsyncRenderer } from '@vegaprotocol/ui-toolkit';
|
|
import type { Position } from './positions-data-providers';
|
|
import { Positions } from './positions';
|
|
import { useClosePosition, usePositionsAssets } from '../';
|
|
|
|
interface PositionsManagerProps {
|
|
partyId: string;
|
|
}
|
|
|
|
export const PositionsManager = ({ partyId }: PositionsManagerProps) => {
|
|
const { submit, Dialog } = useClosePosition();
|
|
const onClose = useCallback(
|
|
(position: Position) => {
|
|
submit(position);
|
|
},
|
|
[submit]
|
|
);
|
|
|
|
const { data, error, loading, assetSymbols } = usePositionsAssets(partyId);
|
|
return (
|
|
<>
|
|
<AsyncRenderer loading={loading} error={error} data={data}>
|
|
{assetSymbols?.map((assetSymbol) => (
|
|
<Positions
|
|
partyId={partyId}
|
|
assetSymbol={assetSymbol}
|
|
key={assetSymbol}
|
|
onClose={onClose}
|
|
/>
|
|
))}
|
|
</AsyncRenderer>
|
|
<Dialog>
|
|
<p>Your position was not closed! This is still not implemented. </p>
|
|
</Dialog>
|
|
</>
|
|
);
|
|
};
|