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
committerFred Carlsen <fred@sjelfull.no>2018-12-06 18:56:11 +0800
commit9ebb0960254f1dcfb9513cbc6203840a87ee60e4 (patch)
tree222218f42cdf3cf964725cec8a8c0752f4035a3d /packages/website/ts/pages/instant/config_generator.tsx
parentf8b925c9adcc9fecf237d29e002fe993ca4f41a8 (diff)
downloaddexon-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.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);
+ };
+}