index.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // Copyright 2017-2018 Jaco Greeff
  2. // This software may be modified and distributed under the terms
  3. // of the ISC license. See the LICENSE file for details.
  4. // @flow
  5. import type { BaseProps } from '@polkadot/portal/types';
  6. import './Body.css';
  7. import React from 'react';
  8. // import { Observable } from 'rxjs/Observable';
  9. // import { from as fromObservable } from 'rxjs/observable/from';
  10. import Input from 'semantic-ui-react/dist/es/elements/Input';
  11. import Label from 'semantic-ui-react/dist/es/elements/Label';
  12. import Balance from '@polkadot/rx-react/Balance';
  13. import BlockNumber from '@polkadot/rx-react/BlockNumber';
  14. import ContextProvider from '@polkadot/rx-react/ContextProvider';
  15. import withObservableParams from '@polkadot/rx-react/with/observableParams';
  16. import InputAddress from '../InputAddress';
  17. import addrRecipient from '../subject/addrRecipient';
  18. import addrSender from '../subject/addrSender';
  19. type Props = BaseProps & {};
  20. function publicMap (pair: KeyringPair): Uint8Array {
  21. return pair.publicKey();
  22. }
  23. const RecipientBalance = withObservableParams(Balance, addrRecipient, publicMap);
  24. const SenderBalance = withObservableParams(Balance, addrSender, publicMap);
  25. export default function Body ({ className, style }: Props) {
  26. return (
  27. <ContextProvider>
  28. <div
  29. className={['testing--Body', className].join(' ')}
  30. style={style}
  31. >
  32. <BlockNumber
  33. className='testing--Body-BlockNumber'
  34. label='best block #'
  35. />
  36. <div>
  37. <Label>using the selected account</Label>
  38. <InputAddress
  39. placeholder='0x...'
  40. subject={addrSender}
  41. />
  42. </div>
  43. <div>
  44. <Label>with an available balance of</Label>
  45. <SenderBalance className='ui disabled dropdown selection' />
  46. </div>
  47. <div>
  48. <Label>send an amount of</Label>
  49. <Input />
  50. </div>
  51. <div>
  52. <Label>to the recipient</Label>
  53. <InputAddress
  54. placeholder='0x...'
  55. subject={addrRecipient}
  56. />
  57. </div>
  58. <div>
  59. <Label>with an available balance of</Label>
  60. <RecipientBalance className='ui disabled dropdown selection' />
  61. </div>
  62. </div>
  63. </ContextProvider>
  64. );
  65. }