Skip to content

Commit b420ef3

Browse files
authored
Logs, Watch Slices to replace old reducers, Split Tenant Add slice (#2035)
Logs, Watch Slices to replace old reducers Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com>
1 parent e235863 commit b420ef3

File tree

71 files changed

+3813
-3427
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+3813
-3427
lines changed

portal-ui/src/ProtectedRoutes.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import { useDispatch, useSelector } from "react-redux";
2626
import {
2727
globalSetDistributedSetup,
2828
operatorMode,
29+
selOpMode,
2930
setSiteReplicationInfo,
3031
userLogged,
3132
} from "./systemSlice";
@@ -40,9 +41,7 @@ interface ProtectedRouteProps {
4041
const ProtectedRoute = ({ Component }: ProtectedRouteProps) => {
4142
const dispatch = useDispatch();
4243

43-
const isOperatorMode = useSelector(
44-
(state: AppState) => state.system.operatorMode
45-
);
44+
const isOperatorMode = useSelector(selOpMode);
4645

4746
const [sessionLoading, setSessionLoading] = useState<boolean>(true);
4847
const userLoggedIn = useSelector((state: AppState) => state.system.loggedIn);

portal-ui/src/screens/Console/Account/Account.tsx

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
// along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

1717
import React, { Fragment, useEffect, useState } from "react";
18-
import { connect, useDispatch } from "react-redux";
18+
import { useDispatch, useSelector } from "react-redux";
1919
import { Theme } from "@mui/material/styles";
2020
import createStyles from "@mui/styles/createStyles";
21-
import withStyles from "@mui/styles/withStyles";
2221
import Grid from "@mui/material/Grid";
2322
import api from "../../../common/api";
2423
import { Box } from "@mui/material";
@@ -55,14 +54,15 @@ import RBIconButton from "../Buckets/BucketDetails/SummaryItems/RBIconButton";
5554
import { selectSAs } from "../Configurations/utils";
5655
import DeleteMultipleServiceAccounts from "../Users/DeleteMultipleServiceAccounts";
5756
import ServiceAccountPolicy from "./ServiceAccountPolicy";
58-
import { AppState } from "../../../store";
5957
import { setErrorSnackMessage, setSnackBarMessage } from "../../../systemSlice";
58+
import makeStyles from "@mui/styles/makeStyles";
59+
import { selFeatures } from "../consoleSlice";
6060

6161
const DeleteServiceAccount = withSuspense(
6262
React.lazy(() => import("./DeleteServiceAccount"))
6363
);
6464

65-
const styles = (theme: Theme) =>
65+
const useStyles = makeStyles((theme: Theme) =>
6666
createStyles({
6767
...actionsTray,
6868
...searchField,
@@ -73,16 +73,18 @@ const styles = (theme: Theme) =>
7373
},
7474
...tableStyles,
7575
...containerForHeader(theme.spacing(4)),
76-
});
76+
})
77+
);
7778

7879
interface IServiceAccountsProps {
79-
classes: any;
8080
history: any;
81-
features: any;
8281
}
8382

84-
const Account = ({ classes, history, features }: IServiceAccountsProps) => {
83+
const Account = ({ history }: IServiceAccountsProps) => {
8584
const dispatch = useDispatch();
85+
const classes = useStyles();
86+
const features = useSelector(selFeatures);
87+
8688
const [records, setRecords] = useState<string[]>([]);
8789
const [loading, setLoading] = useState<boolean>(false);
8890
const [filter, setFilter] = useState<string>("");
@@ -302,10 +304,4 @@ const Account = ({ classes, history, features }: IServiceAccountsProps) => {
302304
);
303305
};
304306

305-
const mapState = (state: AppState) => ({
306-
features: state.console.session.features,
307-
});
308-
309-
const connector = connect(mapState, null);
310-
311-
export default withStyles(styles)(connector(Account));
307+
export default Account;

portal-ui/src/screens/Console/Buckets/BucketDetails/AccessDetailsPanel.tsx

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,18 @@
1515
// along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

1717
import React, { Fragment, useEffect, useState } from "react";
18-
import { connect, useDispatch } from "react-redux";
18+
import { useDispatch, useSelector } from "react-redux";
1919
import { Paper } from "@mui/material";
2020
import Tabs from "@mui/material/Tabs";
2121
import Tab from "@mui/material/Tab";
22-
import { AppState } from "../../../../store";
2322

2423
import { TabPanel } from "../../../shared/tabs";
2524
import { Policy } from "../../Policies/types";
26-
import { ISessionResponse } from "../../types";
2725
import { User } from "../../Users/types";
2826
import { ErrorResponseHandler } from "../../../../common/types";
2927
import TableWrapper from "../../Common/TableWrapper/TableWrapper";
3028
import api from "../../../../common/api";
3129
import history from "../../../../history";
32-
import { BucketInfo } from "../types";
3330
import {
3431
CONSOLE_UI_RESOURCE,
3532
IAM_PAGES,
@@ -43,17 +40,10 @@ import {
4340
import { Theme } from "@mui/material/styles";
4441
import createStyles from "@mui/styles/createStyles";
4542
import { tableStyles } from "../../Common/FormComponents/common/styleLibrary";
46-
import withStyles from "@mui/styles/withStyles";
4743
import { encodeURLString } from "../../../../common/utils";
4844
import { setErrorSnackMessage } from "../../../../systemSlice";
49-
50-
const mapState = (state: AppState) => ({
51-
session: state.console.session,
52-
loadingBucket: state.buckets.bucketDetails.loadingBucket,
53-
bucketInfo: state.buckets.bucketDetails.bucketInfo,
54-
});
55-
56-
const connector = connect(mapState, null);
45+
import makeStyles from "@mui/styles/makeStyles";
46+
import { selBucketDetailsLoading } from "./bucketDetailsSlice";
5747

5848
function a11yProps(index: any) {
5949
return {
@@ -63,25 +53,20 @@ function a11yProps(index: any) {
6353
}
6454

6555
interface IAccessDetailsProps {
66-
session: ISessionResponse;
67-
68-
classes: any;
6956
match: any;
70-
loadingBucket: boolean;
71-
bucketInfo: BucketInfo | null;
7257
}
7358

74-
const styles = (theme: Theme) =>
59+
const useStyles = makeStyles((theme: Theme) =>
7560
createStyles({
7661
...tableStyles,
77-
});
78-
const AccessDetails = ({
79-
match,
80-
81-
loadingBucket,
82-
classes,
83-
}: IAccessDetailsProps) => {
62+
})
63+
);
64+
const AccessDetails = ({ match }: IAccessDetailsProps) => {
8465
const dispatch = useDispatch();
66+
const classes = useStyles();
67+
68+
const loadingBucket = useSelector(selBucketDetailsLoading);
69+
8570
const [curTab, setCurTab] = useState<number>(0);
8671
const [loadingPolicies, setLoadingPolicies] = useState<boolean>(true);
8772
const [bucketPolicy, setBucketPolicy] = useState<Policy[]>([]);
@@ -241,4 +226,4 @@ const AccessDetails = ({
241226
);
242227
};
243228

244-
export default withStyles(styles)(connector(AccessDetails));
229+
export default AccessDetails;

portal-ui/src/screens/Console/Buckets/BucketDetails/AccessRulePanel.tsx

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,10 @@
1515
// along with this program. If not, see <http://www.gnu.org/licenses/>.
1616

1717
import React, { Fragment, useEffect, useState } from "react";
18-
import { connect, useDispatch } from "react-redux";
18+
import { useDispatch, useSelector } from "react-redux";
1919
import { Theme } from "@mui/material/styles";
2020
import createStyles from "@mui/styles/createStyles";
21-
import withStyles from "@mui/styles/withStyles";
2221
import { Paper } from "@mui/material";
23-
import { AppState } from "../../../../store";
24-
import { ISessionResponse } from "../../types";
2522
import { ErrorResponseHandler } from "../../../../common/types";
2623
import TableWrapper from "../../Common/TableWrapper/TableWrapper";
2724
import api from "../../../../common/api";
@@ -35,7 +32,6 @@ import {
3532
searchField,
3633
tableStyles,
3734
} from "../../Common/FormComponents/common/styleLibrary";
38-
import { BucketInfo } from "../types";
3935
import { IAM_SCOPES } from "../../../../common/SecureComponent/permissions";
4036
import PanelTitle from "../../Common/PanelTitle/PanelTitle";
4137
import {
@@ -46,6 +42,8 @@ import {
4642
import withSuspense from "../../Common/Components/withSuspense";
4743
import RBIconButton from "./SummaryItems/RBIconButton";
4844
import { setErrorSnackMessage } from "../../../../systemSlice";
45+
import makeStyles from "@mui/styles/makeStyles";
46+
import { selBucketDetailsLoading } from "./bucketDetailsSlice";
4947

5048
const AddAccessRuleModal = withSuspense(
5149
React.lazy(() => import("./AddAccessRule"))
@@ -57,7 +55,7 @@ const EditAccessRuleModal = withSuspense(
5755
React.lazy(() => import("./EditAccessRule"))
5856
);
5957

60-
const styles = (theme: Theme) =>
58+
const useStyles = makeStyles((theme: Theme) =>
6159
createStyles({
6260
"@global": {
6361
".rowLine:hover .iconFileElm": {
@@ -72,31 +70,19 @@ const styles = (theme: Theme) =>
7270
...searchField,
7371
...objectBrowserCommon,
7472
...containerForHeader(theme.spacing(4)),
75-
});
76-
77-
const mapState = (state: AppState) => ({
78-
session: state.console.session,
79-
loadingBucket: state.buckets.bucketDetails.loadingBucket,
80-
bucketInfo: state.buckets.bucketDetails.bucketInfo,
81-
});
82-
83-
const connector = connect(mapState, null);
73+
})
74+
);
8475

8576
interface IAccessRuleProps {
86-
session: ISessionResponse;
87-
classes: any;
8877
match: any;
89-
loadingBucket: boolean;
90-
bucketInfo: BucketInfo | null;
9178
}
9279

93-
const AccessRule = ({
94-
classes,
95-
match,
96-
loadingBucket,
97-
bucketInfo,
98-
}: IAccessRuleProps) => {
80+
const AccessRule = ({ match }: IAccessRuleProps) => {
9981
const dispatch = useDispatch();
82+
const classes = useStyles();
83+
84+
const loadingBucket = useSelector(selBucketDetailsLoading);
85+
10086
const [loadingAccessRules, setLoadingAccessRules] = useState<boolean>(true);
10187
const [accessRules, setAccessRules] = useState([]);
10288
const [addAccessRuleOpen, setAddAccessRuleOpen] = useState<boolean>(false);
@@ -254,4 +240,4 @@ const AccessRule = ({
254240
);
255241
};
256242

257-
export default withStyles(styles)(connector(AccessRule));
243+
export default AccessRule;

portal-ui/src/screens/Console/Buckets/BucketDetails/AddLifecycleModal.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,8 @@ import {
5151
import { LifecycleConfigIcon } from "../../../../icons";
5252
import InputUnitMenu from "../../Common/FormComponents/InputUnitMenu/InputUnitMenu";
5353
import { BucketVersioning } from "../types";
54-
import { AppState } from "../../../../store";
5554
import FormSwitchWrapper from "../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper";
56-
import { setModalErrorSnackMessage } from "../../../../systemSlice";
55+
import { selDistSet, setModalErrorSnackMessage } from "../../../../systemSlice";
5756

5857
interface IReplicationModal {
5958
open: boolean;
@@ -100,9 +99,7 @@ const AddLifecycleModal = ({
10099
bucketName,
101100
}: IReplicationModal) => {
102101
const dispatch = useDispatch();
103-
const distributedSetup = useSelector(
104-
(state: AppState) => state.system.distributedSetup
105-
);
102+
const distributedSetup = useSelector(selDistSet);
106103
const [loadingTiers, setLoadingTiers] = useState<boolean>(true);
107104
const [tiersList, setTiersList] = useState<ITiersDropDown[]>([]);
108105
const [addLoading, setAddLoading] = useState(false);

portal-ui/src/screens/Console/Buckets/BucketDetails/BucketDetails.tsx

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ import {
3030
pageContentStyles,
3131
searchField,
3232
} from "../../Common/FormComponents/common/styleLibrary";
33-
34-
import { AppState } from "../../../../store";
3533
import { ErrorResponseHandler } from "../../../../common/types";
3634
import PageHeader from "../../Common/PageHeader/PageHeader";
3735

@@ -51,8 +49,17 @@ import {
5149
import withSuspense from "../../Common/Components/withSuspense";
5250
import RBIconButton from "./SummaryItems/RBIconButton";
5351
import { TrashIcon } from "../../../../icons";
54-
import { setErrorSnackMessage } from "../../../../systemSlice";
55-
import { setBucketDetailsLoad, setBucketInfo } from "../bucketsSlice";
52+
import {
53+
selDistSet,
54+
selSiteRep,
55+
setErrorSnackMessage,
56+
} from "../../../../systemSlice";
57+
import {
58+
selBucketDetailsInfo,
59+
selBucketDetailsLoading,
60+
setBucketDetailsLoad,
61+
setBucketInfo,
62+
} from "./bucketDetailsSlice";
5663

5764
const BucketsIcon = React.lazy(() => import("../../../../icons/BucketsIcon"));
5865
const FolderIcon = React.lazy(() => import("../../../../icons/FolderIcon"));
@@ -107,18 +114,10 @@ interface IBucketDetailsProps {
107114
const BucketDetails = ({ classes, match, history }: IBucketDetailsProps) => {
108115
const dispatch = useDispatch();
109116

110-
const distributedSetup = useSelector(
111-
(state: AppState) => state.system.distributedSetup
112-
);
113-
const loadingBucket = useSelector(
114-
(state: AppState) => state.buckets.bucketDetails.loadingBucket
115-
);
116-
const bucketInfo = useSelector(
117-
(state: AppState) => state.buckets.bucketDetails.bucketInfo
118-
);
119-
const siteReplicationInfo = useSelector(
120-
(state: AppState) => state.system.siteReplicationInfo
121-
);
117+
const distributedSetup = useSelector(selDistSet);
118+
const loadingBucket = useSelector(selBucketDetailsLoading);
119+
const bucketInfo = useSelector(selBucketDetailsInfo);
120+
const siteReplicationInfo = useSelector(selSiteRep);
122121

123122
const [iniLoad, setIniLoad] = useState<boolean>(false);
124123
const [deleteOpen, setDeleteOpen] = useState<boolean>(false);

portal-ui/src/screens/Console/Buckets/BucketDetails/BucketEventsPanel.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ import Grid from "@mui/material/Grid";
2424
import AddIcon from "../../../../icons/AddIcon";
2525
import LambdaIcon from "../../../../icons/LambdaIcon";
2626
import { BucketEvent, BucketEventList } from "../types";
27-
28-
import { AppState } from "../../../../store";
2927
import {
3028
actionsTray,
3129
searchField,
@@ -45,6 +43,7 @@ import { IAM_SCOPES } from "../../../../common/SecureComponent/permissions";
4543
import withSuspense from "../../Common/Components/withSuspense";
4644
import RBIconButton from "./SummaryItems/RBIconButton";
4745
import { setErrorSnackMessage } from "../../../../systemSlice";
46+
import { selBucketDetailsLoading } from "./bucketDetailsSlice";
4847

4948
const DeleteEvent = withSuspense(React.lazy(() => import("./DeleteEvent")));
5049
const AddEvent = withSuspense(React.lazy(() => import("./AddEvent")));
@@ -66,9 +65,7 @@ interface IBucketEventsProps {
6665
const BucketEventsPanel = ({ classes, match }: IBucketEventsProps) => {
6766
const dispatch = useDispatch();
6867

69-
const loadingBucket = useSelector(
70-
(state: AppState) => state.buckets.bucketDetails.loadingBucket
71-
);
68+
const loadingBucket = useSelector(selBucketDetailsLoading);
7269

7370
const [addEventScreenOpen, setAddEventScreenOpen] = useState<boolean>(false);
7471
const [loadingEvents, setLoadingEvents] = useState<boolean>(true);

portal-ui/src/screens/Console/Buckets/BucketDetails/BucketLifecyclePanel.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ import {
2727
actionsTray,
2828
searchField,
2929
} from "../../Common/FormComponents/common/styleLibrary";
30-
31-
import { AppState } from "../../../../store";
3230
import { ErrorResponseHandler } from "../../../../common/types";
3331
import api from "../../../../common/api";
3432
import EditLifecycleConfiguration from "./EditLifecycleConfiguration";
@@ -43,6 +41,7 @@ import {
4341
import { IAM_SCOPES } from "../../../../common/SecureComponent/permissions";
4442
import RBIconButton from "./SummaryItems/RBIconButton";
4543
import DeleteBucketLifecycleRule from "./DeleteBucketLifecycleRule";
44+
import { selBucketDetailsLoading } from "./bucketDetailsSlice";
4645

4746
const styles = (theme: Theme) =>
4847
createStyles({
@@ -62,9 +61,7 @@ const BucketLifecyclePanel = ({
6261
classes,
6362
match,
6463
}: IBucketLifecyclePanelProps) => {
65-
const loadingBucket = useSelector(
66-
(state: AppState) => state.buckets.bucketDetails.loadingBucket
67-
);
64+
const loadingBucket = useSelector(selBucketDetailsLoading);
6865

6966
const [loadingLifecycle, setLoadingLifecycle] = useState<boolean>(true);
7067
const [lifecycleRecords, setLifecycleRecords] = useState<LifeCycleItem[]>([]);

0 commit comments

Comments
 (0)