Grabbed dndbeyond's source code
``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
import * as actionTypes from "../actions/toastMessage/actionTypes";
|
||||
import { ToastMessageAction } from "../actions/toastMessage/typings";
|
||||
import {
|
||||
MessageState,
|
||||
ToastMessageMetaState,
|
||||
ToastMessageState,
|
||||
ToastState,
|
||||
} from "../stores/typings";
|
||||
|
||||
const initialMessagePayloadState: ToastState = {
|
||||
title: "",
|
||||
message: "",
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param state
|
||||
* @param action
|
||||
*/
|
||||
function messagePayload(
|
||||
state: ToastState = initialMessagePayloadState,
|
||||
action: ToastMessageAction
|
||||
): ToastState {
|
||||
switch (action.type) {
|
||||
case actionTypes.ADD_MESSAGE:
|
||||
return {
|
||||
...state,
|
||||
...action.payload.toast,
|
||||
};
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
const initialMessageMetaState: ToastMessageMetaState = {
|
||||
level: "info",
|
||||
autoDismiss: 5,
|
||||
dismissible: true,
|
||||
position: "bc",
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param state
|
||||
* @param action
|
||||
*/
|
||||
function messageMeta(
|
||||
state: ToastMessageMetaState = initialMessageMetaState,
|
||||
action: ToastMessageAction
|
||||
): ToastMessageMetaState {
|
||||
switch (action.type) {
|
||||
case actionTypes.ADD_MESSAGE:
|
||||
return {
|
||||
...state,
|
||||
...action.payload.meta,
|
||||
};
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
const initialMessageState: MessageState = {
|
||||
payload: initialMessagePayloadState,
|
||||
meta: {},
|
||||
};
|
||||
function message(
|
||||
state: MessageState = initialMessageState,
|
||||
action: ToastMessageAction
|
||||
): MessageState {
|
||||
switch (action.type) {
|
||||
case actionTypes.ADD_MESSAGE:
|
||||
return {
|
||||
...state,
|
||||
payload: messagePayload(undefined, action),
|
||||
meta: messageMeta(undefined, action),
|
||||
};
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
let messageId: number = 0;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param state
|
||||
* @param action
|
||||
*/
|
||||
function toastMessage(
|
||||
state: ToastMessageState = {},
|
||||
action: ToastMessageAction
|
||||
): ToastMessageState {
|
||||
switch (action.type) {
|
||||
case actionTypes.ADD_MESSAGE:
|
||||
messageId++;
|
||||
return {
|
||||
[messageId]: message(undefined, action),
|
||||
};
|
||||
|
||||
case actionTypes.REMOVE_MESSAGE:
|
||||
let newState: ToastMessageState = {};
|
||||
Object.keys(state).forEach((messageId) => {
|
||||
if (messageId !== action.payload.id) {
|
||||
newState[messageId] = state[messageId];
|
||||
}
|
||||
});
|
||||
return newState;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
export default toastMessage;
|
||||
Reference in New Issue
Block a user