@rtbjs/use-state
Version:
`@rtbjs/use-state` is a state management tool that can act as a local state and be easily turned into a global redux state. It is an innovative approach to state management that combines the advantages of both React's useState and Redux's state management
46 lines • 2.62 kB
JavaScript
exports.__esModule = true;
exports.HomePage = void 0;
var tslib_1 = require("tslib");
var jsx_runtime_1 = require("react/jsx-runtime");
var react_1 = require("react");
var react_toastify_1 = require("react-toastify");
var store_1 = require("../../redux/store");
var create_project_1 = require("../../components/project/create-project");
var project_api_1 = require("../../redux/api/project-api");
var home_page_styles_1 = require("./home.page.styles");
var antd_1 = require("antd");
var project_component_1 = require("../../components/project/project.component");
var full_screen_loader_1 = require("../../components/full-screen-loader");
var HomePage = function () {
var companyId = (0, store_1.useAppSelector)(function (state) { return state.companyState; }).companyId;
var _a = (0, project_api_1.useGetAllProjectsQuery)(undefined, {
skip: !companyId
}), isLoading = _a.isLoading, isError = _a.isError, error = _a.error, projects = _a.data;
(0, react_1.useEffect)(function () {
if (isError) {
if (Array.isArray(error.data.error)) {
error.data.error.forEach(function (el) {
return react_toastify_1.toast.error(el.message, {
position: 'top-right'
});
});
}
else {
react_toastify_1.toast.error(error.data.message, {
position: 'top-right'
});
}
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isLoading]);
if (isLoading) {
return (0, jsx_runtime_1.jsx)(full_screen_loader_1.FullScreenLoader, {});
}
return ((0, jsx_runtime_1.jsxs)(home_page_styles_1.Container, { children: [(0, jsx_runtime_1.jsx)(create_project_1.CreateProjectModal, { Trigger: function (_a) {
var onClick = _a.onClick;
return ((0, jsx_runtime_1.jsx)(home_page_styles_1.CreateProjectContainer, { children: (0, jsx_runtime_1.jsx)(antd_1.Button, tslib_1.__assign({ onClick: onClick }, { children: "Create project" })) }));
} }), (projects === null || projects === void 0 ? void 0 : projects.length) === 0 ? ((0, jsx_runtime_1.jsx)(antd_1.Typography.Paragraph, { children: "No projects at the moment" })) : ((0, jsx_runtime_1.jsx)(antd_1.List, { itemLayout: "horizontal", dataSource: projects, renderItem: function (project) { return ((0, jsx_runtime_1.jsx)(project_component_1.ProjectItem, { project: project }, project.id)); } }))] }));
};
exports.HomePage = HomePage;
//# sourceMappingURL=home.page.js.map
;