1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/ui/ducks/alerts/invalid-custom-network.js

49 lines
1.0 KiB
JavaScript

import { createSlice } from '@reduxjs/toolkit';
import { AlertTypes } from '../../../shared/constants/alerts';
import { ALERT_STATE } from './enums';
// Constants
const name = AlertTypes.invalidCustomNetwork;
const initialState = {
state: ALERT_STATE.CLOSED,
networkName: '',
};
// Slice (reducer plus auto-generated actions and action creators)
const slice = createSlice({
name,
initialState,
reducers: {
openAlert: (state, action) => {
state.state = ALERT_STATE.OPEN;
state.networkName = action.payload;
},
dismissAlert: (state) => {
state.state = ALERT_STATE.CLOSED;
state.networkName = '';
},
},
});
const { actions, reducer } = slice;
export default reducer;
// Selectors
export const getAlertState = (state) => state[name].state;
export const getNetworkName = (state) => state[name].networkName;
export const alertIsOpen = (state) => state[name].state !== ALERT_STATE.CLOSED;
// Actions / action-creators
const { openAlert, dismissAlert } = actions;
export { openAlert, dismissAlert };