diff --git a/frontend/src/containers/RoomCreatePage.js b/frontend/src/containers/RoomCreatePage.js
index c88f755..44381b2 100644
--- a/frontend/src/containers/RoomCreatePage.js
+++ b/frontend/src/containers/RoomCreatePage.js
@@ -4,21 +4,17 @@ import { RoomCreatePage } from 'components'
import { Redirect } from 'react-router-dom'
const RoomCreatePageContainer = (props) => {
- const { room, username } = props
+ const { username } = props
if ( !username ) {
return
}
- // else if( room ) {
- // return
- // }
else {
return
}
}
const mapStateToProps = state => ({
- // room: state.room.room,
username: state.user.username,
token: state.user.token,
})
diff --git a/frontend/src/services/api/index.js b/frontend/src/services/api/index.js
index 51f6968..7772afa 100644
--- a/frontend/src/services/api/index.js
+++ b/frontend/src/services/api/index.js
@@ -14,7 +14,9 @@ export const checkStatus = (response) => {
throw error
}
-export const parseJSON = response => response.json()
+export const parseJSON = response => {
+ return response.status === 204 ? {} : response.json()
+}
export const parseSettings = ({
method = 'get', data, locale, token, ...otherSettings
diff --git a/frontend/src/store/room/actions.js b/frontend/src/store/room/actions.js
index e1b2464..7d8f5b1 100644
--- a/frontend/src/store/room/actions.js
+++ b/frontend/src/store/room/actions.js
@@ -31,11 +31,13 @@ export const roomSettingRequest = ( {url} ) => ({
type: ROOM_SETTING_REQUEST,
url,
})
-export const roomDeleteSuccess = () => ({
+export const roomDeleteSuccess = ( url ) => ({
type: ROOM_DELETE_SUCCESS,
+ url,
})
-export const roomDeleteFailed = () => ({
+export const roomDeleteFailed = error => ({
type: ROOM_DELETE_FAILED,
+ error,
})
diff --git a/frontend/src/store/room/reducer.js b/frontend/src/store/room/reducer.js
index 8bc6d95..cd6f6fa 100644
--- a/frontend/src/store/room/reducer.js
+++ b/frontend/src/store/room/reducer.js
@@ -49,7 +49,6 @@ const roomReducer = (state = initialState, action) => {
case actions.ROOM_CREATE_SUCCESS:
return {
...state,
- // room: action.room,
roomList: [
...state.roomList,
action.room,
@@ -61,15 +60,19 @@ const roomReducer = (state = initialState, action) => {
return{
...initialState,
}
- case action.ROOM_DELETE_SUCCESS:
- return{
- ...initialState,
- }
+
case action.ROOM_DELETE_FAILED:
return{
...initialState,
}
*/
+ case actions.ROOM_DELETE_SUCCESS:
+ return {
+ ...state,
+ roomList: state.roomList.slice().filter(
+ room => room.url !== action.url
+ ),
+ }
case actions.ROOM_LIST_SUCCESS:
return {
...state,
diff --git a/frontend/src/store/room/sagas.js b/frontend/src/store/room/sagas.js
index df9fe2c..0a12ef8 100644
--- a/frontend/src/store/room/sagas.js
+++ b/frontend/src/store/room/sagas.js
@@ -1,4 +1,4 @@
-import { push } from 'connected-react-router'
+import { push, replace } from 'connected-react-router'
import { fork, takeEvery, put } from 'redux-saga/effects'
import { toastr } from 'react-redux-toastr'
import api from 'services/api'
@@ -28,7 +28,7 @@ function* roomCreateRequest({ roomname, members, username, token }){
{ icon: 'success', status: 'success', }
)
yield put(actions.roomCreateSuccess(room))
- yield put(push(`/room/${room.url}/`))
+ yield put(replace(`/room/${room.url}/`))
} catch(e) {
console.log(e)
}
@@ -61,7 +61,8 @@ function* getRequest({ url }) {
yield put(memberGetRequest(url))
yield put(paymentGetRequest(room))
} catch(e) {
- yield put(actions.roomGetFailed(e))
+ yield put(actions.roomGetFailed(yield e.response.json()))
+ yield put(push(`/user/`))
}
}
@@ -74,9 +75,11 @@ function* watchRoomGetRequest() {
function* deleteRequest( { url } ) {
try {
- const room = yield api.delete(`/rooms/${url}/`)
- yield put(actions.roomDeleteSuccess())
+ yield api.delete(`/rooms/${url}/`)
+ yield put(actions.roomDeleteSuccess(url))
+ yield put(replace(`/user/`))
} catch(e) {
+ console.log(e)
yield put(actions.roomDeleteFailed(e))
}