Add useNotices hook
[MAILPOET-2390]
This commit is contained in:
committed by
Jack Kitterhing
parent
07fc94f046
commit
3660271fad
@@ -2,6 +2,7 @@ import React from 'react';
|
||||
import getFeaturesContext from './getFeaturesContext.jsx';
|
||||
import getSegmentsContext from './getSegmentsContext.jsx';
|
||||
import getUsersContext from './getUsersContext.jsx';
|
||||
import useNotices from './useNotices.jsx';
|
||||
|
||||
/**
|
||||
* Builds the value of the global context.
|
||||
@@ -12,7 +13,10 @@ export function useGlobalContextValue(data) {
|
||||
const features = getFeaturesContext(data);
|
||||
const segments = getSegmentsContext(data);
|
||||
const users = getUsersContext(data);
|
||||
return { features, segments, users };
|
||||
const notices = useNotices();
|
||||
return {
|
||||
features, segments, users, notices,
|
||||
};
|
||||
}
|
||||
|
||||
export const GlobalContext = React.createContext({});
|
||||
|
29
assets/js/src/context/useNotices.jsx
Normal file
29
assets/js/src/context/useNotices.jsx
Normal file
@@ -0,0 +1,29 @@
|
||||
import React from 'react';
|
||||
|
||||
export default () => {
|
||||
const [items, setItems] = React.useState([]);
|
||||
const [nextId, setNextId] = React.useState(1);
|
||||
|
||||
const getNextId = () => {
|
||||
setNextId((x) => x + 1);
|
||||
return nextId;
|
||||
};
|
||||
|
||||
const add = (item) => {
|
||||
setItems((xs) => [...xs, { ...item, id: item.id || getNextId() }]);
|
||||
};
|
||||
|
||||
const remove = (id) => {
|
||||
setItems((xs) => xs.filter((x) => x.id !== id));
|
||||
};
|
||||
|
||||
const success = (content, props = {}) => add({ ...props, type: 'success', children: content });
|
||||
const info = (content, props = {}) => add({ ...props, type: 'info', children: content });
|
||||
const warning = (content, props = {}) => add({ ...props, type: 'warning', children: content });
|
||||
const error = (content, props = {}) => add({ ...props, type: 'error', children: content });
|
||||
|
||||
return {
|
||||
items, success, info, warning, error, remove,
|
||||
};
|
||||
};
|
||||
|
Reference in New Issue
Block a user