1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 18:00:18 +01:00

Storybook: add SignatureRequestOriginal (#14707)

* SB: add SignatureRequestOriginal

* SB:SignatureRequestOriginal: add reusable Template

* SB:SignatureRequestOriginal: add args
missing isRequired args

* SB:SignatureRequestOriginal: add eth_signTypedData

* SB:SignatureRequestOriginal: update README.mdx

* SB:README: update description

* SignatureRequestOriginal: destruct mock value
This commit is contained in:
Ariella Vu 2022-05-16 17:28:20 -05:00 committed by GitHub
parent 1464ab724f
commit 7cfa454570
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 147 additions and 0 deletions

View File

@ -0,0 +1,15 @@
import { Story, Canvas, ArgsTable } from '@storybook/addon-docs';
import SignatureRequestOriginal from '.';
# Signature Request
dApp requesting a signature from the user. This component appears for eth_signTypedData signatures are not v3 or v4. For other signatures, please see SignatureRequest.
<Canvas>
<Story id="ui-components-app-signature-request-signature-request-original-stories-js--default-story" />
</Canvas>
## Component API
<ArgsTable of={SignatureRequestOriginal} />

View File

@ -0,0 +1,132 @@
import React from 'react';
import { action } from '@storybook/addon-actions';
import { MESSAGE_TYPE } from '../../../../shared/constants/app';
import testData from '../../../../.storybook/test-data';
import README from './README.mdx';
import SignatureRequestOriginal from './signature-request-original.component';
const [MOCK_PRIMARY_IDENTITY] = Object.values(testData.metamask.identities);
const MOCK_SIGN_DATA = JSON.stringify({
domain: {
name: 'happydapp.website',
},
message: {
string: 'haay wuurl',
number: 42,
},
primaryType: 'Mail',
types: {
EIP712Domain: [
{ name: 'name', type: 'string' },
{ name: 'version', type: 'string' },
{ name: 'chainId', type: 'uint256' },
{ name: 'verifyingContract', type: 'address' },
],
Group: [
{ name: 'name', type: 'string' },
{ name: 'members', type: 'Person[]' },
],
Mail: [
{ name: 'from', type: 'Person' },
{ name: 'to', type: 'Person[]' },
{ name: 'contents', type: 'string' },
],
Person: [
{ name: 'name', type: 'string' },
{ name: 'wallets', type: 'address[]' },
],
},
});
export default {
title: 'Components/App/SignatureRequestOriginal',
id: __filename,
component: SignatureRequestOriginal,
parameters: {
docs: {
page: README,
},
},
argTypes: {
fromAccount: {
table: {
address: { control: 'text' },
balance: { control: 'text' },
name: { control: 'text' },
},
},
hardwareWalletRequiresConnection: { control: 'boolean' },
isLedgerWallet: { control: 'boolean' },
nativeCurrency: { control: 'text' },
txData: { control: 'object' },
clearConfirmTransaction: { action: 'Clean Confirm' },
cancel: { action: 'Cancel' },
sign: { action: 'Sign' },
},
args: {
fromAccount: MOCK_PRIMARY_IDENTITY,
history: {
push: action('history.push()'),
},
mostRecentOverviewPage: '/',
nativeCurrency: 'ETH',
},
};
const Template = (args) => {
return <SignatureRequestOriginal {...args} />;
};
export const DefaultStory = Template.bind({});
DefaultStory.storyName = 'personal_sign Type';
DefaultStory.args = {
txData: {
msgParams: {
data: MOCK_SIGN_DATA,
origin: 'https://happydapp.website/governance?futarchy=true',
},
type: MESSAGE_TYPE.PERSONAL_SIGN,
},
};
export const ETHSignStory = Template.bind({});
ETHSignStory.storyName = 'eth_sign Type';
ETHSignStory.args = {
txData: {
msgParams: {
data: MOCK_SIGN_DATA,
origin: 'https://happydapp.website/governance?futarchy=true',
},
type: MESSAGE_TYPE.ETH_SIGN,
},
};
export const ETHSignTypedStory = Template.bind({});
ETHSignTypedStory.storyName = 'eth_signTypedData Type';
ETHSignTypedStory.args = {
txData: {
msgParams: {
data: [
{
type: 'string',
name: 'Message',
value: 'Hi, Alice!',
},
{
type: 'uint32',
name: 'A number',
value: '1337',
},
],
origin: 'https://happydapp.website/governance?futarchy=true',
},
type: MESSAGE_TYPE.ETH_SIGN_TYPED_DATA,
},
};