Skip to content

Commit

Permalink
feat: add loaders for loading subnets and tokens (#39)
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastiendan authored Nov 30, 2023
1 parent 3921f18 commit bb9221a
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 18 deletions.
4 changes: 2 additions & 2 deletions packages/frontend/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const App = () => {
const theme = useTheme()
const [errors, setErrors] = useState<Error[]>([])
const [subnets, setSubnets] = useState<SubnetWithId[]>()
const { loading, registeredSubnets } = useRegisteredSubnets()
const { registeredSubnets } = useRegisteredSubnets()

useEffect(
function onRegisteredSubnetsChange() {
Expand Down Expand Up @@ -87,7 +87,7 @@ const App = () => {
<ErrorsContext.Provider value={{ setErrors }}>
<SubnetsContext.Provider
value={{
loading,
loading: !Boolean(subnets),
data: subnets,
}}
>
Expand Down
10 changes: 6 additions & 4 deletions packages/frontend/src/components/MultiStepForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,15 @@ const MultiStepForm = () => {
[registeredSubnets, receivingSubnetId]
)

const { tokens: registeredTokens } = useRegisteredTokens(sendingSubnet)
const { tokens: registeredTokens, loading: registeredTokensLoading } =
useRegisteredTokens(sendingSubnet)

const tokenSymbol =
const tokenAddress =
Form.useWatch('token', form1) || form1.getFieldValue('token')

const token = useMemo(
() => registeredTokens?.find((t) => t.symbol === tokenSymbol),
[registeredTokens, tokenSymbol]
() => registeredTokens?.find((t) => t.addr === tokenAddress),
[registeredTokens, tokenAddress]
)

const recipientAddress =
Expand Down Expand Up @@ -132,6 +133,7 @@ const MultiStepForm = () => {
receivingSubnet,
recipientAddress,
registeredTokens,
registeredTokensLoading,
sendingSubnet,
token,
}}
Expand Down
2 changes: 1 addition & 1 deletion packages/frontend/src/components/steps/Step0.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ const Step0 = ({ onFinish }: StepProps) => {
]}
>
<SubnetSelect
disabled={status !== 'connected'}
disabled={status !== 'connected' || getRegisteredSubnetsLoading}
loading={getRegisteredSubnetsLoading}
size="large"
subnets={registeredSubnets}
Expand Down
17 changes: 8 additions & 9 deletions packages/frontend/src/components/steps/Step1.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@ const TransactionTypeSelector = styled(Segmented)`
margin-bottom: 1rem;
`

const { Option } = Select

const Step1 = ({ onFinish, onPrev }: StepProps) => {
const { data: registeredSubnets } = useContext(SubnetsContext)
const {
Expand All @@ -47,6 +45,7 @@ const Step1 = ({ onFinish, onPrev }: StepProps) => {
receivingSubnet,
recipientAddress,
registeredTokens,
registeredTokensLoading,
sendingSubnet,
token,
} = useContext(MultiStepFormContext)
Expand Down Expand Up @@ -169,6 +168,8 @@ const Step1 = ({ onFinish, onPrev }: StepProps) => {
>
<Select
size="middle"
disabled={registeredTokensLoading}
loading={registeredTokensLoading}
dropdownRender={(menu) => (
<>
{menu}
Expand All @@ -178,13 +179,11 @@ const Step1 = ({ onFinish, onPrev }: StepProps) => {
</Space>
</>
)}
>
{registeredTokens?.map((token) => (
<Option key={token.symbol} value={token.symbol}>
{token.symbol}
</Option>
))}
</Select>
options={registeredTokens?.map(({ addr, symbol }) => ({
label: symbol,
value: addr,
}))}
/>
</Form.Item>
<Form.Item
name="receivingSubnet"
Expand Down
1 change: 1 addition & 0 deletions packages/frontend/src/contexts/multiStepForm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ interface MultiStepFormContext {
receivingSubnet?: SubnetWithId
recipientAddress?: string
registeredTokens?: Token[]
registeredTokensLoading?: boolean
sendingSubnet?: SubnetWithId
token?: Token
}
Expand Down
4 changes: 2 additions & 2 deletions packages/frontend/src/contexts/subnets.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from 'react'
import { createContext } from 'react'

import { FetchData, SubnetWithId } from '../types'

export const SubnetsContext = React.createContext<FetchData<SubnetWithId[]>>({})
export const SubnetsContext = createContext<FetchData<SubnetWithId[]>>({})

0 comments on commit bb9221a

Please sign in to comment.