diff options
author | fragosti <francesco.agosti93@gmail.com> | 2018-11-30 07:57:35 +0800 |
---|---|---|
committer | Fred Carlsen <fred@sjelfull.no> | 2018-12-06 18:56:11 +0800 |
commit | 9ebb0960254f1dcfb9513cbc6203840a87ee60e4 (patch) | |
tree | 222218f42cdf3cf964725cec8a8c0752f4035a3d /packages/website/ts/pages/instant/config_generator.tsx | |
parent | f8b925c9adcc9fecf237d29e002fe993ca4f41a8 (diff) | |
download | dexon-sol-tools-9ebb0960254f1dcfb9513cbc6203840a87ee60e4.tar dexon-sol-tools-9ebb0960254f1dcfb9513cbc6203840a87ee60e4.tar.gz dexon-sol-tools-9ebb0960254f1dcfb9513cbc6203840a87ee60e4.tar.bz2 dexon-sol-tools-9ebb0960254f1dcfb9513cbc6203840a87ee60e4.tar.lz dexon-sol-tools-9ebb0960254f1dcfb9513cbc6203840a87ee60e4.tar.xz dexon-sol-tools-9ebb0960254f1dcfb9513cbc6203840a87ee60e4.tar.zst dexon-sol-tools-9ebb0960254f1dcfb9513cbc6203840a87ee60e4.zip |
feat: add Select component and use for configurator
Diffstat (limited to 'packages/website/ts/pages/instant/config_generator.tsx')
-rw-r--r-- | packages/website/ts/pages/instant/config_generator.tsx | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/website/ts/pages/instant/config_generator.tsx b/packages/website/ts/pages/instant/config_generator.tsx new file mode 100644 index 000000000..d63975e31 --- /dev/null +++ b/packages/website/ts/pages/instant/config_generator.tsx @@ -0,0 +1,38 @@ +import * as _ from 'lodash'; +import * as React from 'react'; + +import { Container } from 'ts/components/ui/container'; +import { Select, SelectItemConfig } from 'ts/components/ui/select'; + +import { ZeroExInstantBaseConfig } from '../../../../instant/src/types'; + +export interface ConfigGeneratorProps { + value: ZeroExInstantBaseConfig; + onConfigChange: (config: ZeroExInstantBaseConfig) => void; +} + +const SRA_ENDPOINTS = ['https://api.radarrelay.com/0x/v2/', 'https://api.openrelay.xyz/v2/']; + +export class ConfigGenerator extends React.Component<ConfigGeneratorProps> { + public render(): React.ReactNode { + const { value } = this.props; + return ( + <Container> + <Select value={value.orderSource as string} items={this._generateItems()} /> + </Container> + ); + } + private readonly _generateItems = (): SelectItemConfig[] => { + return _.map(SRA_ENDPOINTS, endpoint => ({ + text: endpoint, + onClick: this._handleSRASelection.bind(this, endpoint), + })); + }; + private readonly _handleSRASelection = (sraEndpoint: string) => { + const newConfig = { + ...this.props.value, + orderSource: sraEndpoint, + }; + this.props.onConfigChange(newConfig); + }; +} |