Skip to content

Commit 1c56cb9

Browse files
authored
Merge pull request #84 from zenml-io/Redirect-via-URL
Redirect via url
2 parents b7e74ff + 642d1eb commit 1c56cb9

File tree

6 files changed

+135
-100
lines changed

6 files changed

+135
-100
lines changed

src/ui/layouts/DashBoard.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,12 @@ export const DashBoard: React.FC = () => {
136136
startLoad();
137137

138138
try {
139+
const projectFromUrl = locationPath.split('/')[2];
139140
const { data } = await axios.get(
140141
`${process.env.REACT_APP_BASE_API_URL}/projects/${
141-
selectedProject ? selectedProject : DEFAULT_PROJECT_NAME
142+
projectFromUrl !== selectedProject
143+
? projectFromUrl
144+
: selectedProject
142145
}/statistics`,
143146
{ headers: { Authorization: `bearer ${authToken}` } },
144147
);

src/ui/layouts/Home.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
import React, { useEffect } from 'react';
44

5-
import { useLocationPath, usePushRoute } from '../hooks';
5+
import { useLocationPath, usePushRoute, useSelector } from '../hooks';
66

77
import { routePaths } from '../../routes/routePaths';
88
import { DEFAULT_PROJECT_NAME } from '../../constants';
9+
import { projectSelectors } from '../../redux/selectors';
910

1011
const GreyBoxWithIcon: React.FC<{
1112
title: string;
@@ -17,6 +18,7 @@ const GreyBoxWithIcon: React.FC<{
1718
};
1819

1920
export const DashBoard: React.FC = () => {
21+
const selectedProject = useSelector(projectSelectors.selectedProject);
2022
const { push } = usePushRoute();
2123
const locationPath = useLocationPath();
2224
const url = window.location.pathname;
@@ -34,6 +36,12 @@ export const DashBoard: React.FC = () => {
3436
projectFromUrl ? projectFromUrl : DEFAULT_PROJECT_NAME,
3537
),
3638
);
39+
} else {
40+
push(
41+
routePaths.dashboard(
42+
selectedProject ? selectedProject : DEFAULT_PROJECT_NAME,
43+
),
44+
);
3745
}
3846
}, []);
3947

src/ui/layouts/session/UserEmail/Form.tsx

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import React, { useEffect, useState } from 'react';
22
import styles from './index.module.scss';
3-
import {
4-
DEFAULT_PROJECT_NAME,
5-
loggedInRoute,
6-
toasterTypes,
7-
} from '../../../../constants';
3+
import { loggedInRoute, toasterTypes } from '../../../../constants';
84
import {
95
projectsActions,
106
showToasterAction,
@@ -27,7 +23,7 @@ import { getTranslateByScope } from '../../../../services';
2723
import { sessionSelectors } from '../../../../redux/selectors/session';
2824
import { userSelectors } from '../../../../redux/selectors';
2925
import axios from 'axios';
30-
import { routePaths } from '../../../../routes/routePaths';
26+
// import { routePaths } from '../../../../routes/routePaths';
3127

3228
export const Form: React.FC = () => {
3329
const { push } = usePushRoute();
@@ -79,9 +75,7 @@ export const Form: React.FC = () => {
7975
dispatch(projectsActions.getMy({}));
8076
}
8177
dispatch(stackComponentsActions.getTypes());
82-
if (window.location.pathname === '/') {
83-
push(routePaths.dashboard(DEFAULT_PROJECT_NAME));
84-
}
78+
push(loggedInRoute);
8579
});
8680
} catch (err) {
8781
setSubmitting(false);

src/ui/layouts/session/UserEmail/index.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,16 @@ import image from '../imageNew.png';
1818
import { getTranslateByScope } from '../../../../services';
1919
import { routePaths } from '../../../../routes/routePaths';
2020
import { sessionSelectors } from '../../../../redux/selectors';
21-
import { useDispatch, useSelector } from '../../../hooks';
21+
import { useDispatch, usePushRoute, useSelector } from '../../../hooks';
2222
// import { loggedInRoute } from '../../../../constants';
2323
import { Link } from 'react-router-dom';
2424
import axios from 'axios';
2525
import { stackComponentsActions } from '../../../../redux/actions';
26+
import { loggedInRoute } from '../../../../constants';
2627

2728
const UserEmail: React.FC = () => {
2829
const translate = getTranslateByScope('ui.layouts.UserEmail');
29-
// const { push } = usePushRoute();
30+
const { push } = usePushRoute();
3031
const dispatch = useDispatch();
3132
const authToken = useSelector(sessionSelectors.authenticationToken);
3233

@@ -46,7 +47,7 @@ const UserEmail: React.FC = () => {
4647
if (data) {
4748
if (data?.email_opted_in !== null) {
4849
dispatch(stackComponentsActions.getTypes());
49-
// push(loggedInRoute);
50+
push(loggedInRoute);
5051
}
5152
}
5253
setPageLoading(false);

src/ui/layouts/settings/Organization/UpdateMember.tsx

Lines changed: 63 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,16 @@ import { httpMethods } from '../../../../api/constants';
2525
import { apiUrl } from '../../../../api/apiUrl';
2626
import { sessionSelectors, rolesSelectors } from '../../../../redux/selectors';
2727
import { useSelector } from '../../../hooks';
28-
import axios from 'axios'
29-
import Select, { StylesConfig } from 'react-select'
28+
import axios from 'axios';
29+
import Select, { StylesConfig } from 'react-select';
3030

3131
export const UpdateMember: React.FC<{ member: any }> = ({ member }) => {
32-
3332
const preRole = member?.roles?.map((e: any) => {
34-
return { value: e.id, label: e.name }
35-
})
33+
return { value: e.id, label: e.name };
34+
});
3635

37-
const [username, setUsername] = useState('')
38-
const [password, setPassword] = useState('')
36+
const [username, setUsername] = useState('');
37+
const [password, setPassword] = useState('');
3938
const [popupOpen, setPopupOpen] = useState(false);
4039
const [submitting, setSubmitting] = useState(false);
4140
const [role, setRole] = useState(preRole);
@@ -46,17 +45,17 @@ export const UpdateMember: React.FC<{ member: any }> = ({ member }) => {
4645
const authenticationToken = authToken ? authToken : '';
4746

4847
const allRoles = roles?.map((e) => {
49-
return { value: e.id, label: e.name }
50-
})
48+
return { value: e.id, label: e.name };
49+
});
5150

5251
const handleChange = (value: string) => {
5352
setRole(value);
54-
}
53+
};
5554

5655
useEffect(() => {
57-
setUsername(member?.name)
56+
setUsername(member?.name);
5857
// eslint-disable-next-line
59-
}, [])
58+
}, [member]);
6059

6160
const onUpdate = async () => {
6261
setSubmitting(true);
@@ -80,25 +79,32 @@ export const UpdateMember: React.FC<{ member: any }> = ({ member }) => {
8079
'Content-Type': 'application/json',
8180
},
8281
data: { name: username },
83-
})
82+
});
8483
}
8584

86-
const { data } = await axios.get(`${process.env.REACT_APP_BASE_API_URL}/role_assignments?user_name_or_id=${member?.name}`, { headers: { Authorization: `Bearer ${authToken}` } })
87-
85+
const {
86+
data,
87+
} = await axios.get(
88+
`${process.env.REACT_APP_BASE_API_URL}/role_assignments?user_name_or_id=${member?.name}`,
89+
{ headers: { Authorization: `Bearer ${authToken}` } },
90+
);
91+
8892
for (let index = 0; index < data?.length; index++) {
8993
const singleDelRole = data[index];
90-
await axios.delete(`https://appserver.zenml.io/api/v1/role_assignments/${singleDelRole?.id}`,
91-
{ headers: { Authorization: `Bearer ${authToken}` } }
92-
)
94+
await axios.delete(
95+
`https://appserver.zenml.io/api/v1/role_assignments/${singleDelRole?.id}`,
96+
{ headers: { Authorization: `Bearer ${authToken}` } },
97+
);
9398
}
9499

95100
for (let index = 0; index < role.length; index++) {
96101
const singleRole = role[index];
97-
await axios.post(`${process.env.REACT_APP_BASE_API_URL}/role_assignments`,
102+
await axios.post(
103+
`${process.env.REACT_APP_BASE_API_URL}/role_assignments`,
98104
// @ts-ignore
99105
{ user: member.id, role: singleRole?.value },
100-
{ headers: { Authorization: `Bearer ${authToken}` } }
101-
)
106+
{ headers: { Authorization: `Bearer ${authToken}` } },
107+
);
102108
}
103109

104110
setSubmitting(false);
@@ -127,47 +133,63 @@ export const UpdateMember: React.FC<{ member: any }> = ({ member }) => {
127133
description: err.response?.data?.detail[1],
128134
type: toasterTypes.failure,
129135
}),
130-
)
136+
);
131137
}
132138
};
133139

134-
135140
const colourStyles: StylesConfig<any> = {
136-
control: (styles: any) => ({ ...styles, fontSize: '1.6rem', fontFamily: 'Rubik', color: '#424240' }),
141+
control: (styles: any) => ({
142+
...styles,
143+
fontSize: '1.6rem',
144+
fontFamily: 'Rubik',
145+
color: '#424240',
146+
}),
137147
option: (styles: any) => {
138148
return {
139149
...styles,
140-
fontSize: '1.6rem', fontFamily: 'Rubik', color: '#424240'
150+
fontSize: '1.6rem',
151+
fontFamily: 'Rubik',
152+
color: '#424240',
141153
};
142-
}
143-
}
144-
154+
},
155+
};
145156

146157
return (
147158
<>
148159
{popupOpen && (
149160
<Popup onClose={() => setPopupOpen(false)}>
150-
151161
<FlexBox.Row alignItems="center" justifyContent="space-between">
152-
<H3 bold color="darkGrey">{translate('updateMemberPopup.title')}</H3>
162+
<H3 bold color="darkGrey">
163+
{translate('updateMemberPopup.title')}
164+
</H3>
153165
</FlexBox.Row>
154-
<Box marginTop="sm"><Paragraph>{`${translate('updateMemberPopup.text')} ${member?.name}.`}</Paragraph></Box>
155-
156-
<Box marginTop='lg'>
166+
<Box marginTop="sm">
167+
<Paragraph>{`${translate('updateMemberPopup.text')} ${
168+
member?.name
169+
}.`}</Paragraph>
170+
</Box>
157171

172+
<Box marginTop="lg">
158173
<Box>
159174
<FormTextField
160175
label={translate('updateMemberPopup.form.username.label')}
161176
labelColor="#000"
162-
placeholder={translate('updateMemberPopup.form.username.placeholder')}
177+
placeholder={translate(
178+
'updateMemberPopup.form.username.placeholder',
179+
)}
163180
value={username ? username : ''}
164181
onChange={(val: string) => setUsername(val)}
165182
/>
166183
</Box>
167184

168-
<Box marginTop='md'>
169-
<Paragraph size="body" style={{ color: 'black' }}><label htmlFor={username}>{'Roles'}</label></Paragraph>
170-
<Select options={allRoles} isMulti onChange={(e: any) => handleChange(e)}
185+
<Box marginTop="md">
186+
<Paragraph size="body" style={{ color: 'black' }}>
187+
<label htmlFor={username}>{'Roles'}</label>
188+
</Paragraph>
189+
<Select
190+
options={allRoles}
191+
isMulti
192+
onChange={(e: any) => handleChange(e)}
171193
value={role}
172194
placeholder={'Roles'}
173195
styles={colourStyles}
@@ -179,7 +201,9 @@ export const UpdateMember: React.FC<{ member: any }> = ({ member }) => {
179201
<FormPasswordField
180202
label={translate('updateMemberPopup.form.password.label')}
181203
labelColor="#000"
182-
placeholder={translate('updateMemberPopup.form.password.placeholder')}
204+
placeholder={translate(
205+
'updateMemberPopup.form.password.placeholder',
206+
)}
183207
value={password}
184208
onChange={(val: string) => setPassword(val)}
185209
error={{
@@ -215,4 +239,4 @@ export const UpdateMember: React.FC<{ member: any }> = ({ member }) => {
215239
</Box>
216240
</>
217241
);
218-
};
242+
};

0 commit comments

Comments
 (0)