aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/pages/instant/action_link.tsx
diff options
context:
space:
mode:
authorfragosti <francesco.agosti93@gmail.com>2018-11-30 05:45:29 +0800
committerfragosti <francesco.agosti93@gmail.com>2018-11-30 05:45:29 +0800
commit09e2157639ad2d986b80f5480a1e9188a56ff3f9 (patch)
tree0432edffb6bc929d18fb3919f6fb34d57c459123 /packages/website/ts/pages/instant/action_link.tsx
parent6f394128d46420b336fb50a07f638b12bbb55eec (diff)
downloaddexon-0x-contracts-09e2157639ad2d986b80f5480a1e9188a56ff3f9.tar
dexon-0x-contracts-09e2157639ad2d986b80f5480a1e9188a56ff3f9.tar.gz
dexon-0x-contracts-09e2157639ad2d986b80f5480a1e9188a56ff3f9.tar.bz2
dexon-0x-contracts-09e2157639ad2d986b80f5480a1e9188a56ff3f9.tar.lz
dexon-0x-contracts-09e2157639ad2d986b80f5480a1e9188a56ff3f9.tar.xz
dexon-0x-contracts-09e2157639ad2d986b80f5480a1e9188a56ff3f9.tar.zst
dexon-0x-contracts-09e2157639ad2d986b80f5480a1e9188a56ff3f9.zip
feat: factor out ActionLink component from features
Diffstat (limited to 'packages/website/ts/pages/instant/action_link.tsx')
-rw-r--r--packages/website/ts/pages/instant/action_link.tsx51
1 files changed, 51 insertions, 0 deletions
diff --git a/packages/website/ts/pages/instant/action_link.tsx b/packages/website/ts/pages/instant/action_link.tsx
new file mode 100644
index 000000000..8a0bf24ff
--- /dev/null
+++ b/packages/website/ts/pages/instant/action_link.tsx
@@ -0,0 +1,51 @@
+import * as _ from 'lodash';
+import * as React from 'react';
+
+import { Container } from 'ts/components/ui/container';
+import { Text } from 'ts/components/ui/text';
+import { colors } from 'ts/style/colors';
+import { utils } from 'ts/utils/utils';
+
+export interface ActionLinkProps {
+ displayText: string;
+ linkSrc?: string;
+ onClick?: () => void;
+ fontSize?: number;
+ color?: string;
+ className?: string;
+}
+
+export class ActionLink extends React.Component<ActionLinkProps> {
+ public static defaultProps = {
+ fontSize: 16,
+ color: colors.white,
+ };
+ public render(): React.ReactNode {
+ const { displayText, fontSize, color, className } = this.props;
+ return (
+ <Container
+ className={`flex items-center ${className}`}
+ marginRight="32px"
+ onClick={this._handleClick}
+ cursor="pointer"
+ >
+ <Container>
+ <Text fontSize="16px" fontColor={color}>
+ {displayText}
+ </Text>
+ </Container>
+ <Container paddingTop="1px" paddingLeft="6px">
+ <i className="zmdi zmdi-chevron-right bold" style={{ fontSize, color }} />
+ </Container>
+ </Container>
+ );
+ }
+
+ private _handleClick = (event: React.MouseEvent<HTMLElement>) => {
+ if (!_.isUndefined(this.props.onClick)) {
+ this.props.onClick();
+ } else if (!_.isUndefined(this.props.linkSrc)) {
+ utils.openUrl(this.props.linkSrc);
+ }
+ };
+}