Use redux hooks on admin components
This commit is contained in:
parent
6cfee5ea74
commit
81f497170f
@ -1,28 +1,20 @@
|
|||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import PropTypes from "prop-types";
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
import { connect } from "react-redux";
|
|
||||||
import { getAdminModules } from "../../actions/admins";
|
import { getAdminModules } from "../../actions/admins";
|
||||||
|
|
||||||
import Modules from "../modules/modules";
|
import Modules from "../modules/modules";
|
||||||
|
|
||||||
const AdminModulesConnected = ({ modules, loading, getAdminModules }) => {
|
export const AdminModules = () => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
|
||||||
|
const loading = useSelector((state) =>
|
||||||
|
state.adminStore.get("fetchingModules")
|
||||||
|
);
|
||||||
|
const modules = useSelector((state) => state.adminStore.get("modules"));
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getAdminModules();
|
dispatch(getAdminModules());
|
||||||
}, [getAdminModules]);
|
}, [dispatch]);
|
||||||
|
|
||||||
return <Modules modules={modules} isLoading={loading} />;
|
return <Modules modules={modules} isLoading={loading} />;
|
||||||
};
|
};
|
||||||
AdminModulesConnected.propTypes = {
|
|
||||||
modules: PropTypes.object,
|
|
||||||
loading: PropTypes.bool,
|
|
||||||
getAdminModules: PropTypes.func.isRequired,
|
|
||||||
};
|
|
||||||
|
|
||||||
const mapStateToProps = (state) => ({
|
|
||||||
loading: state.adminStore.get("fetchingModules"),
|
|
||||||
modules: state.adminStore.get("modules"),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const AdminModules = connect(mapStateToProps, { getAdminModules })(
|
|
||||||
AdminModulesConnected
|
|
||||||
);
|
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import PropTypes from "prop-types";
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
import { connect } from "react-redux";
|
|
||||||
|
|
||||||
import { Stat } from "./stat";
|
import { Stat } from "./stat";
|
||||||
|
|
||||||
import { getStats } from "../../actions/admins";
|
import { getStats } from "../../actions/admins";
|
||||||
|
|
||||||
const StatsConnected = ({ stats, getStats }) => {
|
export const Stats = () => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const stats = useSelector((state) => state.adminStore.get("stats"));
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getStats();
|
dispatch(getStats());
|
||||||
}, [getStats]);
|
}, [dispatch]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="row d-flex flex-wrap">
|
<div className="row d-flex flex-wrap">
|
||||||
@ -34,13 +36,3 @@ const StatsConnected = ({ stats, getStats }) => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
StatsConnected.propTypes = {
|
|
||||||
stats: PropTypes.object,
|
|
||||||
getStats: PropTypes.func,
|
|
||||||
};
|
|
||||||
|
|
||||||
const mapStateToProps = (state) => ({
|
|
||||||
stats: state.adminStore.get("stats"),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const Stats = connect(mapStateToProps, { getStats })(StatsConnected);
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import { connect } from "react-redux";
|
import { useSelector, useDispatch } from "react-redux";
|
||||||
import { List } from "immutable";
|
|
||||||
|
|
||||||
import { updateUser, deleteUser } from "../../actions/admins";
|
import { updateUser, deleteUser } from "../../actions/admins";
|
||||||
|
|
||||||
@ -11,7 +10,7 @@ import { PolochonSelect } from "../polochons/select";
|
|||||||
import { FormModal } from "../forms/modal";
|
import { FormModal } from "../forms/modal";
|
||||||
import { FormInput } from "../forms/input";
|
import { FormInput } from "../forms/input";
|
||||||
|
|
||||||
const UserEditConnect = ({
|
export const UserEdit = ({
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
admin: initAdmin,
|
admin: initAdmin,
|
||||||
@ -19,10 +18,10 @@ const UserEditConnect = ({
|
|||||||
polochonToken,
|
polochonToken,
|
||||||
polochonId: initPolochonId,
|
polochonId: initPolochonId,
|
||||||
polochonActivated: initPolochonActivated,
|
polochonActivated: initPolochonActivated,
|
||||||
updateUser,
|
|
||||||
deleteUser,
|
|
||||||
publicPolochons,
|
|
||||||
}) => {
|
}) => {
|
||||||
|
const dispatch = useDispatch();
|
||||||
|
const publicPolochons = useSelector((state) => state.polochon.get("public"));
|
||||||
|
|
||||||
const [modal, setModal] = useState(false);
|
const [modal, setModal] = useState(false);
|
||||||
const [admin, setAdmin] = useState(initAdmin);
|
const [admin, setAdmin] = useState(initAdmin);
|
||||||
const [activated, setActivated] = useState(initActivated);
|
const [activated, setActivated] = useState(initActivated);
|
||||||
@ -38,15 +37,17 @@ const UserEditConnect = ({
|
|||||||
if (e) {
|
if (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
updateUser({
|
dispatch(
|
||||||
userId: id,
|
updateUser({
|
||||||
polochonToken: token,
|
userId: id,
|
||||||
admin,
|
polochonToken: token,
|
||||||
activated,
|
admin,
|
||||||
polochonId,
|
activated,
|
||||||
polochonActivated,
|
polochonId,
|
||||||
password,
|
polochonActivated,
|
||||||
});
|
password,
|
||||||
|
})
|
||||||
|
);
|
||||||
setModal(false);
|
setModal(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ const UserEditConnect = ({
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
if (confirmDelete) {
|
if (confirmDelete) {
|
||||||
deleteUser(name);
|
dispatch(deleteUser(name));
|
||||||
setModal(false);
|
setModal(false);
|
||||||
} else {
|
} else {
|
||||||
setConfirmDelete(true);
|
setConfirmDelete(true);
|
||||||
@ -137,23 +138,12 @@ const UserEditConnect = ({
|
|||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
UserEditConnect.propTypes = {
|
UserEdit.propTypes = {
|
||||||
id: PropTypes.string,
|
id: PropTypes.string,
|
||||||
name: PropTypes.string,
|
name: PropTypes.string,
|
||||||
activated: PropTypes.bool,
|
activated: PropTypes.bool,
|
||||||
admin: PropTypes.bool,
|
admin: PropTypes.bool,
|
||||||
updateUser: PropTypes.func,
|
|
||||||
deleteUser: PropTypes.func,
|
|
||||||
polochonToken: PropTypes.string,
|
polochonToken: PropTypes.string,
|
||||||
polochonId: PropTypes.string,
|
polochonId: PropTypes.string,
|
||||||
polochonActivated: PropTypes.bool,
|
polochonActivated: PropTypes.bool,
|
||||||
publicPolochons: PropTypes.instanceOf(List),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const mapStateToProps = (state) => ({
|
|
||||||
publicPolochons: state.polochon.get("public"),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const UserEdit = connect(mapStateToProps, { updateUser, deleteUser })(
|
|
||||||
UserEditConnect
|
|
||||||
);
|
|
||||||
|
@ -1,23 +1,19 @@
|
|||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import PropTypes from "prop-types";
|
import { useDispatch, useSelector } from "react-redux";
|
||||||
import { List } from "immutable";
|
|
||||||
import { connect } from "react-redux";
|
|
||||||
|
|
||||||
import { User } from "./user";
|
import { User } from "./user";
|
||||||
|
|
||||||
import { getUsers } from "../../actions/admins";
|
import { getUsers } from "../../actions/admins";
|
||||||
import { getPolochons } from "../../actions/polochon";
|
import { getPolochons } from "../../actions/polochon";
|
||||||
|
|
||||||
const mapStateToProps = (state) => ({
|
export const UserList = () => {
|
||||||
users: state.adminStore.get("users"),
|
const dispatch = useDispatch();
|
||||||
});
|
const users = useSelector((state) => state.adminStore.get("users"));
|
||||||
const mapDispatchToProps = { getUsers, getPolochons };
|
|
||||||
|
|
||||||
const UserListConnect = ({ users, getUsers, getPolochons }) => {
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getUsers();
|
dispatch(getUsers());
|
||||||
getPolochons();
|
dispatch(getPolochons());
|
||||||
}, [getUsers, getPolochons]);
|
}, [dispatch]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="table-responsive my-2">
|
<div className="table-responsive my-2">
|
||||||
@ -54,13 +50,3 @@ const UserListConnect = ({ users, getUsers, getPolochons }) => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
UserListConnect.propTypes = {
|
|
||||||
getUsers: PropTypes.func,
|
|
||||||
getPolochons: PropTypes.func,
|
|
||||||
users: PropTypes.PropTypes.instanceOf(List),
|
|
||||||
};
|
|
||||||
|
|
||||||
export const UserList = connect(
|
|
||||||
mapStateToProps,
|
|
||||||
mapDispatchToProps
|
|
||||||
)(UserListConnect);
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user