mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2025-01-10 02:07:26 +03:00
Refactored shortUrlTags reducer to take advantage of redux-actions
This commit is contained in:
parent
4654bff737
commit
7ff7318089
1 changed files with 10 additions and 29 deletions
|
@ -1,13 +1,14 @@
|
||||||
|
import { createAction, handleActions } from 'redux-actions';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { pick } from 'ramda';
|
import { pick } from 'ramda';
|
||||||
|
|
||||||
/* eslint-disable padding-line-between-statements, newline-after-var */
|
/* eslint-disable padding-line-between-statements */
|
||||||
export const EDIT_SHORT_URL_TAGS_START = 'shlink/shortUrlTags/EDIT_SHORT_URL_TAGS_START';
|
export const EDIT_SHORT_URL_TAGS_START = 'shlink/shortUrlTags/EDIT_SHORT_URL_TAGS_START';
|
||||||
export const EDIT_SHORT_URL_TAGS_ERROR = 'shlink/shortUrlTags/EDIT_SHORT_URL_TAGS_ERROR';
|
export const EDIT_SHORT_URL_TAGS_ERROR = 'shlink/shortUrlTags/EDIT_SHORT_URL_TAGS_ERROR';
|
||||||
export const EDIT_SHORT_URL_TAGS = 'shlink/shortUrlTags/EDIT_SHORT_URL_TAGS';
|
export const EDIT_SHORT_URL_TAGS = 'shlink/shortUrlTags/EDIT_SHORT_URL_TAGS';
|
||||||
export const RESET_EDIT_SHORT_URL_TAGS = 'shlink/shortUrlTags/RESET_EDIT_SHORT_URL_TAGS';
|
export const RESET_EDIT_SHORT_URL_TAGS = 'shlink/shortUrlTags/RESET_EDIT_SHORT_URL_TAGS';
|
||||||
export const SHORT_URL_TAGS_EDITED = 'shlink/shortUrlTags/SHORT_URL_TAGS_EDITED';
|
export const SHORT_URL_TAGS_EDITED = 'shlink/shortUrlTags/SHORT_URL_TAGS_EDITED';
|
||||||
/* eslint-enable padding-line-between-statements, newline-after-var */
|
/* eslint-enable padding-line-between-statements */
|
||||||
|
|
||||||
export const shortUrlTagsType = PropTypes.shape({
|
export const shortUrlTagsType = PropTypes.shape({
|
||||||
shortCode: PropTypes.string,
|
shortCode: PropTypes.string,
|
||||||
|
@ -23,32 +24,12 @@ const defaultState = {
|
||||||
error: false,
|
error: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function reducer(state = defaultState, action) {
|
export default handleActions({
|
||||||
switch (action.type) {
|
[EDIT_SHORT_URL_TAGS_START]: (state) => ({ ...state, saving: true, error: false }),
|
||||||
case EDIT_SHORT_URL_TAGS_START:
|
[EDIT_SHORT_URL_TAGS_ERROR]: (state) => ({ ...state, saving: false, error: true }),
|
||||||
return {
|
[EDIT_SHORT_URL_TAGS]: (state, action) => ({ ...pick([ 'shortCode', 'tags' ], action), saving: false, error: false }),
|
||||||
...state,
|
[RESET_EDIT_SHORT_URL_TAGS]: () => defaultState,
|
||||||
saving: true,
|
}, defaultState);
|
||||||
error: false,
|
|
||||||
};
|
|
||||||
case EDIT_SHORT_URL_TAGS_ERROR:
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
saving: false,
|
|
||||||
error: true,
|
|
||||||
};
|
|
||||||
case EDIT_SHORT_URL_TAGS:
|
|
||||||
return {
|
|
||||||
...pick([ 'shortCode', 'tags' ], action),
|
|
||||||
saving: false,
|
|
||||||
error: false,
|
|
||||||
};
|
|
||||||
case RESET_EDIT_SHORT_URL_TAGS:
|
|
||||||
return defaultState;
|
|
||||||
default:
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export const editShortUrlTags = (buildShlinkApiClient) => (shortCode, tags) => async (dispatch, getState) => {
|
export const editShortUrlTags = (buildShlinkApiClient) => (shortCode, tags) => async (dispatch, getState) => {
|
||||||
dispatch({ type: EDIT_SHORT_URL_TAGS_START });
|
dispatch({ type: EDIT_SHORT_URL_TAGS_START });
|
||||||
|
@ -66,7 +47,7 @@ export const editShortUrlTags = (buildShlinkApiClient) => (shortCode, tags) => a
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const resetShortUrlsTags = () => ({ type: RESET_EDIT_SHORT_URL_TAGS });
|
export const resetShortUrlsTags = createAction(RESET_EDIT_SHORT_URL_TAGS);
|
||||||
|
|
||||||
export const shortUrlTagsEdited = (shortCode, tags) => ({
|
export const shortUrlTagsEdited = (shortCode, tags) => ({
|
||||||
tags,
|
tags,
|
||||||
|
|
Loading…
Reference in a new issue