2019-09-17 19:09:38 +02:00
|
|
|
import {
|
|
|
|
|
COMMENT_REQUEST_SUCCESS,
|
|
|
|
|
} from '../actions/requestComment';
|
2019-09-18 13:40:00 +02:00
|
|
|
|
2019-09-17 19:09:38 +02:00
|
|
|
import {
|
|
|
|
|
TOGGLE_COMMENT_REPLY,
|
|
|
|
|
SET_COMMENT_REPLY_BODY,
|
|
|
|
|
} from '../actions/handleCommentReplies';
|
|
|
|
|
|
2019-09-18 13:40:00 +02:00
|
|
|
import {
|
|
|
|
|
COMMENT_SUBMIT_START,
|
|
|
|
|
COMMENT_SUBMIT_SUCCESS,
|
|
|
|
|
COMMENT_SUBMIT_FAILURE,
|
|
|
|
|
} from '../actions/submitComment';
|
|
|
|
|
|
2019-09-17 19:09:38 +02:00
|
|
|
export interface CommentRepliesState {
|
|
|
|
|
commentId: number;
|
|
|
|
|
isOpen: boolean;
|
|
|
|
|
body: string;
|
2019-09-18 13:40:00 +02:00
|
|
|
isSubmitting: boolean;
|
|
|
|
|
error: string;
|
2019-09-17 19:09:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const initialState: CommentRepliesState = {
|
|
|
|
|
commentId: undefined,
|
|
|
|
|
isOpen: false,
|
|
|
|
|
body: '',
|
2019-09-18 13:40:00 +02:00
|
|
|
isSubmitting: false,
|
|
|
|
|
error: '',
|
2019-09-17 19:09:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const commentRepliesReducer = (
|
|
|
|
|
state = initialState,
|
|
|
|
|
action,
|
|
|
|
|
) => {
|
|
|
|
|
switch (action.type) {
|
|
|
|
|
case COMMENT_REQUEST_SUCCESS:
|
|
|
|
|
return {
|
|
|
|
|
...initialState,
|
|
|
|
|
commentId: action.comment.id,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
case TOGGLE_COMMENT_REPLY:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
isOpen: !state.isOpen,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
case SET_COMMENT_REPLY_BODY:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
body: action.body,
|
|
|
|
|
};
|
|
|
|
|
|
2019-09-18 13:40:00 +02:00
|
|
|
case COMMENT_SUBMIT_START:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
isSubmitting: true,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
case COMMENT_SUBMIT_SUCCESS:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
isOpen: false,
|
|
|
|
|
body: '',
|
|
|
|
|
isSubmitting: false,
|
|
|
|
|
error: '',
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
case COMMENT_SUBMIT_FAILURE:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
error: action.error,
|
|
|
|
|
};
|
|
|
|
|
|
2019-09-17 19:09:38 +02:00
|
|
|
default:
|
|
|
|
|
return state;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default commentRepliesReducer;
|