Added toasts redux for alerts

• Added:
- toasts redux for alerts
This commit is contained in:
mgabdev 2020-08-05 23:24:20 -05:00
parent c0f7e3adbf
commit 12ca5db281
3 changed files with 65 additions and 0 deletions

View File

@ -0,0 +1,38 @@
import {
TOAST_TYPE_ERROR,
TOAST_TYPE_SUCCESS,
} from '../constants'
export const TOAST_SHOW = 'TOAST_SHOW'
export const TOAST_DISMISS = 'TOAST_DISMISS'
export const TOAST_CLEAR = 'TOAST_CLEAR'
export function dismissToast(alert) {
return {
type: TOAST_DISMISS,
alert,
}
}
export function clearToast() {
return {
type: TOAST_CLEAR,
}
}
function showToast(type, message) {
return {
type: TOAST_SHOW,
toastType: type,
message,
}
}
export const showToastError = (message) => {
return showToast(TOAST_TYPE_ERROR, message)
}
export const showToastSucess = (message) => {
console.log("showToastSucess:", message)
return showToast(TOAST_TYPE_SUCCESS, message)
}

View File

@ -39,6 +39,7 @@ import status_revisions from './status_revisions'
import suggestions from './suggestions'
import tenor from './tenor'
import timelines from './timelines'
import toasts from './toasts'
import user from './user'
import user_lists from './user_lists'
@ -83,6 +84,7 @@ const reducers = {
suggestions,
tenor,
timelines,
toasts,
user,
user_lists,
}

View File

@ -0,0 +1,25 @@
import {
TOAST_SHOW,
TOAST_DISMISS,
TOAST_CLEAR,
} from '../actions/toasts'
import { Map as ImmutableMap, List as ImmutableList } from 'immutable'
const initialState = ImmutableList([])
export default function toasts(state = initialState, action) {
switch(action.type) {
case TOAST_SHOW:
return state.push(ImmutableMap({
key: state.size > 0 ? state.last().get('key') + 1 : 0,
message: action.message,
type: action.toastType,
}))
case TOAST_DISMISS:
return state.filterNot(item => item.get('key') === action.toast.key)
case TOAST_CLEAR:
return state.clear()
default:
return state
}
}