From b5988277087f0ee39109972d73ca94368d6dd4b9 Mon Sep 17 00:00:00 2001 From: fragosti Date: Fri, 9 Nov 2018 14:57:29 -0800 Subject: feat: implement basic StandardModalContent with accompanying InstallWalletPanelContent --- .../components/install_wallet_panel_content.tsx | 22 ++++++++ packages/instant/src/components/payment_method.tsx | 2 +- .../src/components/standard_panel_content.tsx | 61 ++++++++++++++++++++++ .../src/components/standard_sliding_panel.tsx | 5 +- packages/instant/src/components/ui/button.tsx | 1 - packages/instant/src/types.ts | 2 +- 6 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 packages/instant/src/components/install_wallet_panel_content.tsx create mode 100644 packages/instant/src/components/standard_panel_content.tsx (limited to 'packages') diff --git a/packages/instant/src/components/install_wallet_panel_content.tsx b/packages/instant/src/components/install_wallet_panel_content.tsx new file mode 100644 index 000000000..41b8ec74b --- /dev/null +++ b/packages/instant/src/components/install_wallet_panel_content.tsx @@ -0,0 +1,22 @@ +import * as React from 'react'; + +import { ColorOption } from '../style/theme'; + +import { MetaMaskLogo } from './meta_mask_logo'; +import { StandardPanelContent } from './standard_panel_content'; +import { Button } from './ui/button'; + +export interface InstallWalletPanelContentProps {} + +export const InstallWalletPanelContent: React.StatelessComponent = () => ( + } + title="Install MetaMask" + description="Please install the MetaMask wallet extension from the Chrome Store." + action={ + + } + /> +); diff --git a/packages/instant/src/components/payment_method.tsx b/packages/instant/src/components/payment_method.tsx index 1d8661921..9bd1f8104 100644 --- a/packages/instant/src/components/payment_method.tsx +++ b/packages/instant/src/components/payment_method.tsx @@ -93,7 +93,7 @@ export class PaymentMethod extends React.Component { } }; private readonly _openInstallWalletPanel = () => { - this.props.openStandardSlidingPanel(StandardSlidingPanelContent.InstallMetaMask); + this.props.openStandardSlidingPanel(StandardSlidingPanelContent.InstallWallet); }; } diff --git a/packages/instant/src/components/standard_panel_content.tsx b/packages/instant/src/components/standard_panel_content.tsx new file mode 100644 index 000000000..da851b232 --- /dev/null +++ b/packages/instant/src/components/standard_panel_content.tsx @@ -0,0 +1,61 @@ +import * as React from 'react'; + +import { ColorOption } from '../style/theme'; + +import { Container } from './ui/container'; +import { Flex } from './ui/flex'; +import { Text } from './ui/text'; + +export interface MoreInfoSettings { + text: string; + href: string; +} + +export interface StandardPanelContentProps { + image: React.ReactNode; + title: string; + description: string; + moreInfoSettings?: MoreInfoSettings; + action: React.ReactNode; +} + +const spacingBetweenPx = '20px'; + +export const StandardPanelContent: React.StatelessComponent = ({ + image, + title, + description, + moreInfoSettings, + action, +}) => ( + + + {image} + + + {title} + + + + + {description} + + + + {moreInfoSettings && ( + + + {moreInfoSettings.text}> + + + )} + + + {action} + +); diff --git a/packages/instant/src/components/standard_sliding_panel.tsx b/packages/instant/src/components/standard_sliding_panel.tsx index 6d31f3e3a..9409d9664 100644 --- a/packages/instant/src/components/standard_sliding_panel.tsx +++ b/packages/instant/src/components/standard_sliding_panel.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import { SlideAnimationState, StandardSlidingPanelContent, StandardSlidingPanelSettings } from '../types'; +import { InstallWalletPanelContent } from './install_wallet_panel_content'; import { SlidingPanel } from './sliding_panel'; export interface StandardSlidingPanelProps extends StandardSlidingPanelSettings { @@ -19,8 +20,8 @@ export class StandardSlidingPanel extends React.Component { switch (content) { - case StandardSlidingPanelContent.InstallMetaMask: - return 'Install MetaMask'; + case StandardSlidingPanelContent.InstallWallet: + return ; default: return null; } diff --git a/packages/instant/src/components/ui/button.tsx b/packages/instant/src/components/ui/button.tsx index b90221bf4..d0b1bb508 100644 --- a/packages/instant/src/components/ui/button.tsx +++ b/packages/instant/src/components/ui/button.tsx @@ -64,7 +64,6 @@ export const Button = styled(PlainButton)` Button.defaultProps = { backgroundColor: ColorOption.primaryColor, - borderColor: ColorOption.primaryColor, width: 'auto', isDisabled: false, padding: '.6em 1.2em', diff --git a/packages/instant/src/types.ts b/packages/instant/src/types.ts index 6438aba01..c45286640 100644 --- a/packages/instant/src/types.ts +++ b/packages/instant/src/types.ts @@ -130,7 +130,7 @@ export type SlideAnimationState = 'slidIn' | 'slidOut' | 'none'; export enum StandardSlidingPanelContent { None = 'NONE', - InstallMetaMask = 'INSTALL_META_MASK', + InstallWallet = 'INSTALL_WALLET', } export interface StandardSlidingPanelSettings { -- cgit v1.2.3