Skip to content

Commit

Permalink
refactor: make stonks order resolver form available for everyone
Browse files Browse the repository at this point in the history
  • Loading branch information
katamarinaki committed Apr 10, 2024
1 parent 0d735e8 commit ad37fc8
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 54 deletions.
File renamed without changes.
File renamed without changes.
36 changes: 36 additions & 0 deletions modules/stonks/ui/StonksGridWrapper/StonksGridWrapper.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import { Button } from '@lidofinance/lido-ui'
import { useWeb3 } from 'modules/blockChain/hooks/useWeb3'
import { useConnectWalletModal } from 'modules/wallet/ui/ConnectWalletModal'
import { useStonksData } from 'modules/stonks/hooks/useStonksData'
import { PageLoader } from 'modules/shared/ui/Common/PageLoader'
import { MessageBox } from 'modules/stonks/ui/StonksOrderForm'
import { StonksGrid } from 'modules/stonks/ui/StonksGridWrapper/StonksGrid'

export function StonksGridWrapper() {
const { isWalletConnected } = useWeb3()
const openConnectWalletModal = useConnectWalletModal()
const { stonksData, isStonksDataLoading } = useStonksData()

if (!isWalletConnected) {
return (
<Button
type="submit"
fullwidth
children="Connect wallet to proceed"
onClick={openConnectWalletModal}
/>
)
}

if (isStonksDataLoading) {
return <PageLoader />
}

if (!stonksData) {
return (
<MessageBox>Only Stonks Managers can create Stonks Orders</MessageBox>
)
}

return <StonksGrid stonksData={stonksData} />
}
1 change: 1 addition & 0 deletions modules/stonks/ui/StonksGridWrapper/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { StonksGridWrapper } from './StonksGridWrapper'
61 changes: 7 additions & 54 deletions pages/stonks/index.tsx
Original file line number Diff line number Diff line change
@@ -1,68 +1,21 @@
import { Button } from '@lidofinance/lido-ui'
import { useWeb3 } from 'modules/blockChain/hooks/useWeb3'
import { useConnectWalletModal } from 'modules/wallet/ui/ConnectWalletModal'
import { StonksPageContainer } from 'modules/stonks/ui/StonksPageContainer'
import { useStonksData } from 'modules/stonks/hooks/useStonksData'
import { PageLoader } from 'modules/shared/ui/Common/PageLoader'
import { MessageBox, Subtitle } from 'modules/stonks/ui/StonksOrderForm'
import { Subtitle } from 'modules/stonks/ui/StonksOrderForm'
import { Title } from 'modules/shared/ui/Common/Title'
import { StonksOrderResolverForm } from 'modules/stonks/ui/StonksOrderResolverForm'
import { StonksGrid } from 'modules/stonks/ui/StonksGrid'
import { StonksGridWrapper } from 'modules/stonks/ui/StonksGridWrapper'
import { StonksPageContainer } from 'modules/stonks/ui/StonksPageContainer'

export default function StonksCreateOrderPage() {
const { isWalletConnected } = useWeb3()
const openConnectWalletModal = useConnectWalletModal()
const { stonksData, isStonksDataLoading } = useStonksData()

if (!isWalletConnected) {
return (
<StonksPageContainer>
<Title title="Do stonks" />
<MessageBox>Connect your wallet first</MessageBox>
<br />
<Button
type="submit"
fullwidth
children="Connect wallet"
onClick={openConnectWalletModal}
/>
</StonksPageContainer>
)
}

if (isStonksDataLoading) {
return (
<StonksPageContainer>
<Title title="Do stonks" />
<PageLoader />
</StonksPageContainer>
)
}

if (!stonksData) {
return (
<StonksPageContainer>
<Title title="Do stonks" />
<MessageBox>Only Stonks Managers have access to Stonks</MessageBox>
</StonksPageContainer>
)
}

return (
<StonksPageContainer>
<Title title="Do stonks" />
<Subtitle size={20} weight={800} isCentered>
Manage existing order
</Subtitle>
<StonksOrderResolverForm />
{stonksData.length ? (
<>
<Subtitle size={20} weight={800} isCentered>
Create on-chain order
</Subtitle>
<StonksGrid stonksData={stonksData} />
</>
) : null}
<Subtitle size={20} weight={800} isCentered>
Create on-chain order
</Subtitle>
<StonksGridWrapper />
</StonksPageContainer>
)
}

0 comments on commit ad37fc8

Please sign in to comment.