Western Waves


// 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,
          })
        );
      });
  };
};


//Action.js


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 { combineReducers } from redux“;
// import { adduserReducer } from ‘./User/AddUser/reducers’;
import { userReducer } from ./User/reducers“;
import { TsdataReducer } from ./Tspot/reducers“;
const rootReducers = combineReducers({
  user: userReducer,
  tspot: TsdataReducer,
});


export default rootReducers;


//store.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;


 

Contact us