classify web
This commit is contained in:
74
redux/reducer/locationSlice.js
Normal file
74
redux/reducer/locationSlice.js
Normal file
@@ -0,0 +1,74 @@
|
||||
import { createSelector, createSlice } from "@reduxjs/toolkit";
|
||||
import { store } from "../store";
|
||||
|
||||
const initialState = {
|
||||
cityData: {
|
||||
area: "",
|
||||
areaId: "",
|
||||
city: "",
|
||||
state: "",
|
||||
country: "",
|
||||
lat: "",
|
||||
long: "",
|
||||
formattedAddress: "",
|
||||
},
|
||||
KilometerRange: 0,
|
||||
IsBrowserSupported: true,
|
||||
};
|
||||
export const locationSlice = createSlice({
|
||||
name: "Location",
|
||||
initialState,
|
||||
reducers: {
|
||||
setCityData: (location, action) => {
|
||||
location.cityData = action.payload.data;
|
||||
},
|
||||
setIsBrowserSupported: (location, action) => {
|
||||
location.IsBrowserSupported = action.payload;
|
||||
},
|
||||
setKilometerRange: (location, action) => {
|
||||
location.KilometerRange = action.payload;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export default locationSlice.reducer;
|
||||
export const { setCityData, setIsBrowserSupported, setKilometerRange } =
|
||||
locationSlice.actions;
|
||||
|
||||
export const resetCityData = () => {
|
||||
const initialCityData = {
|
||||
area: "",
|
||||
areaId: "",
|
||||
city: "",
|
||||
state: "",
|
||||
country: "",
|
||||
lat: "",
|
||||
long: "",
|
||||
formattedAddress: "",
|
||||
};
|
||||
store.dispatch(setCityData({ data: initialCityData }));
|
||||
};
|
||||
|
||||
// Action to store location
|
||||
export const saveCity = (data) => {
|
||||
store.dispatch(setCityData({ data }));
|
||||
};
|
||||
|
||||
export const getCityData = createSelector(
|
||||
(state) => state.Location,
|
||||
(Location) => Location.cityData
|
||||
);
|
||||
export const getKilometerRange = createSelector(
|
||||
(state) => state.Location,
|
||||
(Location) => Number(Location.KilometerRange)
|
||||
);
|
||||
export const getIsBrowserSupported = createSelector(
|
||||
(state) => state.Location,
|
||||
(Location) => Location.IsBrowserSupported
|
||||
);
|
||||
|
||||
|
||||
export const getCurrentCountry = createSelector(
|
||||
(state) => state.Location,
|
||||
(Location) => Location.cityData.country
|
||||
);
|
||||
Reference in New Issue
Block a user