// Action Creator file
import axios from “axios“;
import actions from “./actions“;
import { message } from “antd“;
const {
fetchTsdataBegin,
fetchTsdataSuccess,
fetchTsdataFailure,
getTsdataSuccess,
addTsIMGSuccess,
updateTspot,
} = actions;
export const GetData = () => {
return (dispatch:any) => {
dispatch(fetchTsdataBegin());
// axios.get(`http://localhost:9000/allts`).then((res) => {
// if (res) {
const Tsdata = “res.data“;
dispatch(fetchTsdataSuccess(Tsdata));
// } else {
// dispatch(fetchTsdataFailure(“error.message”));
// }
// });
};
};
export const tsedit = (values:any) => {
// console.log(values);
return (dispatch:any) => {
dispatch(fetchTsdataBegin());
axios
.put(
`http://localhost:9000/tsedit`,
{
sname: values.sname,
title: values.title,
des: values.des,
id: values.state.id,
}
)
.then((res) => {
message.success(“Spot Updated“);
// console.log(res);
dispatch(
updateTspot({
id: values.state.id,
sname: values.sname,
title: values.title,
des: values.des,
})
);
});
};
};
const actions = {
FETCH_TSSPOT_BEGIN: “FETCH_TSSPOT_BEGIN“,
FETCH_TSSPOT_SUCCESS: “FETCH_TSSPOT_SUCCESS“,
FETCH_TSSPOT_FAILURE: “FETCH_TSSPOT_FAILURE“,
ADD_TSIMG_SUCCESS: “ADD_TSIMG_SUCCESS“,
ADD_TSSPOT_SUCCESS: “ADD_TSSPOT_SUCCESS“,
UPDATE_TSSPOT: “UPDATE_TSSPOT“,
getTsdataSuccess: (data:any) => {
return {
type: actions.ADD_TSSPOT_SUCCESS,
payload: data,
};
},
fetchTsdataBegin: () => {
return {
type: actions.FETCH_TSSPOT_BEGIN,
};
},
fetchTsdataSuccess: (data:any) => {
return {
type: actions.FETCH_TSSPOT_SUCCESS,
payload: “data“,
};
},
fetchTsdataFailure: (error:any) => {
return {
type: actions.FETCH_TSSPOT_FAILURE,
payload: error,
};
},
addTsIMGSuccess: (data:any) => {
return {
type: actions.ADD_TSIMG_SUCCESS,
payload: data,
};
},
updateTspot: (data:any) => {
return {
type: actions.UPDATE_TSSPOT,
payload: data,
};
},
};
export default actions;
// reducer.js
import actions from “./actions“;
import update from “immutability-helper“;
const initialState = {
loading: false,
data: [],
error: null,
};
const {
FETCH_TSSPOT_BEGIN,
FETCH_TSSPOT_SUCCESS,
FETCH_TSSPOT_FAILURE,
ADD_TSSPOT_SUCCESS,
ADD_TSIMG_SUCCESS,
UPDATE_TSSPOT,
} = actions;
const TsdataReducer = (state = initialState, action:any) => {
switch (action.type) {
case FETCH_TSSPOT_BEGIN:
return {
…state,
loading: true,
};
case FETCH_TSSPOT_SUCCESS:
return {
loading: false,
data: action.payload,
};
case FETCH_TSSPOT_FAILURE:
return {
…state,
loading: false,
error: action.payload,
};
case ADD_TSSPOT_SUCCESS:
return {
…state,
loading: false,
data: […state.data, action.payload],
};
// case ADD_TSIMG_SUCCESS:
// console.log(action.payload);
// return update(state, {
// data: {
// 0: {
// [action.payload.id]: { $set: action.payload },
// },
// },
// });
case UPDATE_TSSPOT:
console.log(action.payload);
return {
…state,
loading: false,
data: state.data.map((content:any) =>
content.id === action.payload.id
? {
…content,
sname: action.payload.sname,
title: action.payload.title,
des: action.payload.des,
}
: content
),
};
default:
return state;
}
};
export { TsdataReducer };
//allreducer.js
import {createStore,applyMiddleware} from “redux“;
import thunk from “redux-thunk“;
import rootReducer from “./rootReducer“;
import {composeWithDevTools} from ‘redux-devtools-extension‘
const store = createStore(rootReducer,composeWithDevTools(applyMiddleware(thunk)));
export default store;