aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/pages/instant/config_generator.tsx
diff options
context:
space:
mode:
authorfragosti <francesco.agosti93@gmail.com>2018-11-30 07:57:35 +0800
committerfragosti <francesco.agosti93@gmail.com>2018-11-30 07:57:35 +0800
commitf80768cae0c2fdb71237bbdddecc67aec1c1f67f (patch)
treed3c310e026c37889e1c0f7c4d709107e16a858fc /packages/website/ts/pages/instant/config_generator.tsx
parent0af07bcf49f62aeeed4aa5ae7bf0e4d5835836e9 (diff)
downloaddexon-sol-tools-f80768cae0c2fdb71237bbdddecc67aec1c1f67f.tar
dexon-sol-tools-f80768cae0c2fdb71237bbdddecc67aec1c1f67f.tar.gz
dexon-sol-tools-f80768cae0c2fdb71237bbdddecc67aec1c1f67f.tar.bz2
dexon-sol-tools-f80768cae0c2fdb71237bbdddecc67aec1c1f67f.tar.lz
dexon-sol-tools-f80768cae0c2fdb71237bbdddecc67aec1c1f67f.tar.xz
dexon-sol-tools-f80768cae0c2fdb71237bbdddecc67aec1c1f67f.tar.zst
dexon-sol-tools-f80768cae0c2fdb71237bbdddecc67aec1c1f67f.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.tsx38
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);
+ };
+}