Skip to content

Commit 709b85d

Browse files
alexdoriropal
authored andcommitted
feat: Update url on edit
1 parent 5a2c052 commit 709b85d

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

src/components/components/member/member.js

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,10 @@ class Member extends React.PureComponent {
117117
id = this.getIdFromPath();
118118
}
119119

120+
if (window.location.search.includes("edit=true")) {
121+
this.setState({ edit: true });
122+
}
123+
120124
this.props.client
121125
.query({
122126
query: getUserQuery,
@@ -159,6 +163,10 @@ class Member extends React.PureComponent {
159163
if ((prevProps.user.user || {}).id !== (this.props.user.user || {}).id) {
160164
this.setState({ editable: !!this.isCurrentUser() });
161165
}
166+
const urlHasEdit = window.location.search.includes("edit=true");
167+
if (urlHasEdit !== this.state.edit) {
168+
this.setState({ edit: urlHasEdit });
169+
}
162170
}
163171

164172
/**
@@ -215,20 +223,23 @@ class Member extends React.PureComponent {
215223
* Updates the state's user edit state
216224
*/
217225
handleEdit = () => {
226+
navigate(`${window.location.pathname}?edit=true`);
218227
this.setState(state => ({ history: { ...state }, edit: true }));
219228
};
220229

221230
/**
222231
* Updates the state's user edit state to false and reverts changes.
223232
*/
224233
handleCancel = () => {
234+
navigate(`${window.location.pathname}`);
225235
this.setState(state => ({ ...state.history, edit: false }));
226236
};
227237

228238
/**
229239
* Updates state's user object and edit state.
230240
*/
231241
handleSave = () => {
242+
navigate(`${window.location.pathname}`);
232243
this.setState(({ clubsToPreserve, clubs }) => ({
233244
clubs: clubs.filter(club => clubsToPreserve.includes(club.id)),
234245
edit: false
@@ -251,8 +262,9 @@ class Member extends React.PureComponent {
251262

252263
render() {
253264
const snapshot = this.state;
265+
const isEditing = snapshot.edit && this.isCurrentUser();
254266

255-
const name = snapshot.edit ? (
267+
const name = isEditing ? (
256268
<TextInput
257269
label="Name"
258270
name="name"
@@ -267,7 +279,7 @@ class Member extends React.PureComponent {
267279
<div> {snapshot.name} </div>
268280
);
269281

270-
const sortDescription = snapshot.edit ? (
282+
const sortDescription = isEditing ? (
271283
<TextInput
272284
label="Short Description"
273285
name="sortDescription"
@@ -285,7 +297,7 @@ class Member extends React.PureComponent {
285297
)
286298
);
287299

288-
const description = snapshot.edit ? (
300+
const description = isEditing ? (
289301
<TextInput
290302
multiline
291303
label="Description"
@@ -299,7 +311,7 @@ class Member extends React.PureComponent {
299311
snapshot.description && <div> {snapshot.description} </div>
300312
);
301313

302-
const club = snapshot.edit ? (
314+
const club = isEditing ? (
303315
<div>
304316
{snapshot.clubs.length > 0 && (
305317
<h2 className="member__checkbox-title">Unsubscribe from club</h2>
@@ -338,7 +350,7 @@ class Member extends React.PureComponent {
338350
)
339351
);
340352

341-
const newsletter = snapshot.edit && (
353+
const newsletter = isEditing && (
342354
<div className="member__newsletter">
343355
<div className="member__checkbox member__checkbox--with-icon">
344356
<Inbox className="member__icon" />
@@ -356,7 +368,7 @@ class Member extends React.PureComponent {
356368
</div>
357369
);
358370

359-
const isOverTheLegalLimit = snapshot.edit && (
371+
const isOverTheLegalLimit = isEditing && (
360372
<div className="member__legal">
361373
<Shape seafoamBlue waveLarge divider className="member__divider" />
362374

@@ -377,7 +389,7 @@ class Member extends React.PureComponent {
377389
</div>
378390
);
379391

380-
const github = snapshot.edit ? (
392+
const github = isEditing ? (
381393
<div className="member__text-field--wrapper-with-icon">
382394
<GitHub className="member__icon" />
383395
<TextInput
@@ -397,7 +409,7 @@ class Member extends React.PureComponent {
397409
)
398410
);
399411

400-
const personalUrl = snapshot.edit ? (
412+
const personalUrl = isEditing ? (
401413
<div className="member__text-field--wrapper-with-icon">
402414
<Link className="member__icon" />
403415
<TextInput
@@ -423,7 +435,7 @@ class Member extends React.PureComponent {
423435

424436
let buttonList = [];
425437

426-
if (snapshot.edit) {
438+
if (isEditing) {
427439
buttonList.push(
428440
<div
429441
tabIndex={0}
@@ -445,7 +457,7 @@ class Member extends React.PureComponent {
445457
<Check size={16} /> Save changes
446458
</button>
447459
);
448-
} else if (snapshot.editable) {
460+
} else if (this.isCurrentUser()) {
449461
buttonList.push(
450462
<div
451463
tabIndex={0}
@@ -516,8 +528,8 @@ class Member extends React.PureComponent {
516528
</div>
517529
)}
518530

519-
{isOverTheLegalLimit && isOverTheLegalLimit}
520-
{newsletter && newsletter}
531+
{isOverTheLegalLimit}
532+
{newsletter}
521533
</div>
522534
</ShadowBox>
523535

@@ -534,7 +546,7 @@ class Member extends React.PureComponent {
534546
{`${snapshot.name} | ${GatsbyConfig.siteMetadata.title}`}
535547
</title>
536548
</Helmet>
537-
{snapshot.edit ? (
549+
{isEditing ? (
538550
<form onSubmit={e => e.preventDefault() || this.handleSubmit(e)}>
539551
{memberInner}
540552
</form>

0 commit comments

Comments
 (0)