1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-02 06:07:06 +01:00
metamask-extension/ui/pages/settings/advanced-tab/advanced-tab.container.js
João Tavares bde74756d3
Add extension desktop UI (#17748)
* feat: add desktop enable button component

This component will be added
to the experimental page. Users
will then be able to initialize
a desktop connection

* feat: add desktop pairing page

* feat: add desktop deep-linking shared lib

* test: add initial entries to render helper

Allow specifying initialEntries for
MemoryRouter. This change will allow
testing pages that use the useParam
hook.

* feat: add desktop error page

Error page for any desktop pairing
related issue

* feat: add desktop routes to route component

* feat: add enable desktop button to experimental tab

* feat: add desktop icon when paired in dev mode

* feat: disable ledger live control when desktop enabled

* feat: register desktop error actions on ui init

* fix: add missing code fencing

* chore: remove enable desktop rpc middleware

Now that we are adding the UI
there's no need for this rpc middleware
(as it was used to test desktop background
code)

* fix: display experimental tab for desktop
2023-02-23 16:39:48 +00:00

100 lines
3.0 KiB
JavaScript

import { compose } from 'redux';
import { connect } from 'react-redux';
import { withRouter } from 'react-router-dom';
import {
displayWarning,
setFeatureFlag,
showModal,
setShowFiatConversionOnTestnetsPreference,
setShowTestNetworks,
setAutoLockTimeLimit,
setUseNonceField,
setLedgerTransportPreference,
setDismissSeedBackUpReminder,
setDisabledRpcMethodPreference,
backupUserData,
restoreUserData,
} from '../../../store/actions';
import { getPreferences } from '../../../selectors';
import { doesUserHaveALedgerAccount } from '../../../ducks/metamask/metamask';
import AdvancedTab from './advanced-tab.component';
export const mapStateToProps = (state) => {
const {
appState: { warning },
metamask,
} = state;
const {
featureFlags: { sendHexData, advancedInlineGas } = {},
disabledRpcMethodPreferences,
useNonceField,
ledgerTransportType,
dismissSeedBackUpReminder,
///: BEGIN:ONLY_INCLUDE_IN(desktop)
desktopEnabled,
///: END:ONLY_INCLUDE_IN
} = metamask;
const {
showFiatInTestnets,
showTestNetworks,
autoLockTimeLimit = 0,
} = getPreferences(state);
const userHasALedgerAccount = doesUserHaveALedgerAccount(state);
return {
warning,
sendHexData,
advancedInlineGas,
showFiatInTestnets,
showTestNetworks,
autoLockTimeLimit,
useNonceField,
ledgerTransportType,
dismissSeedBackUpReminder,
userHasALedgerAccount,
disabledRpcMethodPreferences,
///: BEGIN:ONLY_INCLUDE_IN(desktop)
desktopEnabled,
///: END:ONLY_INCLUDE_IN
};
};
export const mapDispatchToProps = (dispatch) => {
return {
backupUserData: () => backupUserData(),
restoreUserData: (jsonString) => restoreUserData(jsonString),
setHexDataFeatureFlag: (shouldShow) =>
dispatch(setFeatureFlag('sendHexData', shouldShow)),
displayWarning: (warning) => dispatch(displayWarning(warning)),
showResetAccountConfirmationModal: () =>
dispatch(showModal({ name: 'CONFIRM_RESET_ACCOUNT' })),
setAdvancedInlineGasFeatureFlag: (shouldShow) =>
dispatch(setFeatureFlag('advancedInlineGas', shouldShow)),
setUseNonceField: (value) => dispatch(setUseNonceField(value)),
setShowFiatConversionOnTestnetsPreference: (value) => {
return dispatch(setShowFiatConversionOnTestnetsPreference(value));
},
setShowTestNetworks: (value) => {
return dispatch(setShowTestNetworks(value));
},
setAutoLockTimeLimit: (value) => {
return dispatch(setAutoLockTimeLimit(value));
},
setLedgerTransportPreference: (value) => {
return dispatch(setLedgerTransportPreference(value));
},
setDismissSeedBackUpReminder: (value) => {
return dispatch(setDismissSeedBackUpReminder(value));
},
setDisabledRpcMethodPreference: (methodName, isEnabled) => {
return dispatch(setDisabledRpcMethodPreference(methodName, isEnabled));
},
};
};
export default compose(
withRouter,
connect(mapStateToProps, mapDispatchToProps),
)(AdvancedTab);