vega-frontend-monorepo/apps/trading/pages/index.page.tsx
m.ray 64817aa43e
fix: market ordering (#1171)
* fix: order by trading mode not by  open timestamp

* fix: add fixed vh on landing content

* fix: order by trading mode

* fix: useMarketList added to data provider

* fix: fix network-parameters.spec.tsx

* fix: network switcher font color & height of table rows

* chore: add market page mock to hook

* fix: remove redundant class

* fix: formatting and height of landing modal

* fix: break-word on ids in market info

* fix: linting issue remove import

* fix: remove markets landing mock as it is similar with market list

* Update apps/trading-e2e/src/integration/home.cy.ts

Co-authored-by: Joe <joe@vega.xyz>
2022-08-31 20:06:34 +01:00

43 lines
1.2 KiB
TypeScript

import { useMarketList } from '@vegaprotocol/market-list';
import { AsyncRenderer } from '@vegaprotocol/ui-toolkit';
import { useRouter } from 'next/router';
import { useEffect } from 'react';
import { useGlobalStore } from '../stores';
export function Index() {
const { replace } = useRouter();
// The default market selected in the platform behind the overlay
// should be the oldest market that is currently trading in continuous mode(i.e. not in auction).
const { data, error, loading } = useMarketList();
const setLandingDialog = useGlobalStore((state) => state.setLandingDialog);
useEffect(() => {
if (data) {
const marketId = data[0]?.id;
// If a default market is found, go to it with the landing dialog open
if (marketId) {
setLandingDialog(true);
replace(`/markets/${marketId}`);
}
// Fallback to the markets list page
else {
replace('/markets');
}
}
}, [data, replace, setLandingDialog]);
return (
<AsyncRenderer data={data} loading={loading} error={error}>
{/* Render a loading and error state but we will redirect if markets are found */}
{null}
</AsyncRenderer>
);
}
Index.getInitialProps = () => ({
page: 'home',
});
export default Index;