Stuff stuff stuff #44

Merged
PouuleT merged 24 commits from update-node into master 2021-08-30 12:59:08 +00:00
3 changed files with 39 additions and 10 deletions
Showing only changes of commit 0f0594f2c4 - Show all commits

View File

@ -1,4 +1,4 @@
import React, { useEffect } from "react"; import React from "react";
import { useDispatch, useSelector } from "react-redux"; import { useDispatch, useSelector } from "react-redux";
import { getAdminModules } from "../../actions/admins"; import { getAdminModules } from "../../actions/admins";
@ -10,9 +10,15 @@ export const AdminModules = () => {
const loading = useSelector((state) => state.admin.fetchingModules); const loading = useSelector((state) => state.admin.fetchingModules);
const modules = useSelector((state) => state.admin.modules); const modules = useSelector((state) => state.admin.modules);
useEffect(() => { const fetchModules = () => {
dispatch(getAdminModules()); dispatch(getAdminModules());
}, [dispatch]); };
return <Modules modules={modules} isLoading={loading} />; return (
<Modules
modules={modules}
isLoading={loading}
fetchModules={fetchModules}
/>
);
}; };

View File

@ -1,4 +1,4 @@
import React from "react"; import React, { useState } from "react";
import Loader from "../loader/loader"; import Loader from "../loader/loader";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
@ -7,11 +7,29 @@ import { upperCaseFirst } from "../../utils";
// TODO: udpate this // TODO: udpate this
import { OverlayTrigger, Tooltip } from "react-bootstrap"; import { OverlayTrigger, Tooltip } from "react-bootstrap";
const Modules = ({ isLoading, modules }) => { const Modules = ({ isLoading, modules, fetchModules }) => {
const [show, setShow] = useState(false);
if (isLoading) { if (isLoading) {
return <Loader />; return <Loader />;
} }
const handleClick = () => {
fetchModules();
setShow(true);
};
if (!show) {
return (
<div className="row">
<div className="col-12 col-md-8 offset-md-2 mb-3">
<div className="btn btn-secondary w-100" onClick={handleClick}>
Show modules status
</div>
</div>
</div>
);
}
return ( return (
<div className="row"> <div className="row">
{Object.keys(modules).map((type) => ( {Object.keys(modules).map((type) => (
@ -23,6 +41,7 @@ const Modules = ({ isLoading, modules }) => {
Modules.propTypes = { Modules.propTypes = {
isLoading: PropTypes.bool.isRequired, isLoading: PropTypes.bool.isRequired,
modules: PropTypes.object.isRequired, modules: PropTypes.object.isRequired,
fetchModules: PropTypes.func.isRequired,
}; };
export default Modules; export default Modules;

View File

@ -1,4 +1,4 @@
import React, { useEffect } from "react"; import React from "react";
import { useDispatch, useSelector } from "react-redux"; import { useDispatch, useSelector } from "react-redux";
import { PolochonList } from "../polochons/list"; import { PolochonList } from "../polochons/list";
@ -12,15 +12,19 @@ export const UserProfile = () => {
const modules = useSelector((state) => state.user.modules); const modules = useSelector((state) => state.user.modules);
const modulesLoading = useSelector((state) => state.user.modulesLoading); const modulesLoading = useSelector((state) => state.user.modulesLoading);
useEffect(() => { const fetchModules = () => {
dispatch(getUserModules()); dispatch(getUserModules());
}, [dispatch]); };
return ( return (
<div> <div>
<UserEdit /> <UserEdit />
<PolochonList /> <PolochonList />
<Modules modules={modules} isLoading={modulesLoading} /> <Modules
modules={modules}
isLoading={modulesLoading}
fetchModules={fetchModules}
/>
</div> </div>
); );
}; };