ProposalFromId.tsx 901 B

12345678910111213141516171819202122232425262728
  1. import React from 'react';
  2. import { RouteComponentProps } from 'react-router-dom';
  3. import ProposalDetails from './ProposalDetails';
  4. import { useProposalSubscription } from '@polkadot/joy-utils/react/hooks';
  5. import PromiseComponent from '@polkadot/joy-utils/react/components/PromiseComponent';
  6. import { useApi } from '@polkadot/react-hooks';
  7. type RouteParams = { id?: string | undefined };
  8. export default function ProposalFromId (props: RouteComponentProps<RouteParams>) {
  9. const {
  10. match: {
  11. params: { id }
  12. }
  13. } = props;
  14. const { api } = useApi();
  15. const proposalState = useProposalSubscription(api.createType('ProposalId', id));
  16. return (
  17. <PromiseComponent
  18. error={proposalState.error}
  19. loading={proposalState.loading}
  20. message={'Fetching proposal...'}>
  21. <ProposalDetails proposal={ proposalState.data } proposalId={ id }/>
  22. </PromiseComponent>
  23. );
  24. }