1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-30 16:18:07 +01:00
metamask-extension/ui/pages/send/send-content/send-gas-row/send-gas-row.stories.js
kumavis f472c2615a
CI - add metamaskbot comment "highlights" section for showing relevant storybook changes (#12095)
* ci/announce/highlight - add bot announcement section for "highlights" showing off important diffs + storybook highlights

* ci/announce/highlight - fix announcement message

* Update index.js

* xxx tmp xxx

* ci/announce/highlight - fix dirty file calculation

* ci/announce/highlight - try/catch wrap highlight generation for build stability

* ui - put fox emojis in the mascot component

* ci/announce/highlight - start storybook permalinks

* ci/announce/highlight - fix storybook permalink util

* ci/announce/highlight - fix storybook permalink util

* ci/announce/highlight - small styling fix

* storybook - use any easily predictable story id

* ci/announce/highlight - revert sample commit

* ci/announce/highlight - minimal documentation
2021-09-15 08:55:48 -10:00

78 lines
2.0 KiB
JavaScript

/* eslint-disable react/prop-types */
import React, { useEffect, useState } from 'react';
import { Provider } from 'react-redux';
import { boolean } from '@storybook/addon-knobs';
import testData from '../../../../../.storybook/test-data';
import configureStore from '../../../../store/store';
import { calcGasTotal } from '../../send.utils';
import { updateMetamaskState } from '../../../../store/actions';
import { GAS_INPUT_MODES } from '../../../../ducks/send';
import SendGasRow from './send-gas-row.component';
const store = configureStore(testData);
export default {
title: 'SendGasRow',
id: __filename,
decorators: [(story) => <Provider store={store}>{story()}</Provider>],
};
export const SendGasRowComponent = () => {
const state = store.getState();
const { metamask } = state;
const { send } = metamask;
const [sendState, setSendState] = useState(send);
const insufficientBalance = boolean('Is Insufficient Balance', false);
useEffect(() => {
const newState = Object.assign(metamask, {
send: sendState,
});
store.dispatch(updateMetamaskState(newState));
}, [sendState, metamask]);
const updateGasPrice = ({ gasPrice, gasLimit }) => {
let newGasTotal = send.gasTotal;
if (send.gasLimit) {
newGasTotal = calcGasTotal(gasLimit, gasPrice);
}
const newState = {
...state.metamask.send,
gasPrice,
gasTotal: newGasTotal,
};
setSendState(newState);
};
const updateGasLimit = (limit) => {
let newGasTotal = send.gasTotal;
if (send.gasPrice) {
newGasTotal = calcGasTotal(limit, send.gasPrice);
}
const newState = {
...state.metamask.send,
gasLimit: limit,
gasTotal: newGasTotal,
};
setSendState(newState);
};
return (
<div style={{ width: 500 }}>
<SendGasRow
insufficientBalance={insufficientBalance}
updateGasPrice={updateGasPrice}
updateGasLimit={updateGasLimit}
gasPrice={send.gasPrice}
gasLimit={send.gasLimit}
gasInputMode={GAS_INPUT_MODES.INLINE}
/>
</div>
);
};