Skip to content

Commit 20aff2a

Browse files
committed
added assign to me button
1 parent 6a1758e commit 20aff2a

File tree

4 files changed

+39
-4
lines changed

4 files changed

+39
-4
lines changed

src/components/ChallengeEditor/AssignedMember-Field/AssignedMember-Field.module.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,9 @@
4545
.readOnlyValue {
4646
margin-bottom: 0.5rem; // the same like `label` to be aligned
4747
}
48+
49+
.assignSelfField {
50+
margin-left: 20px;
51+
}
4852
}
4953

src/components/ChallengeEditor/AssignedMember-Field/index.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import PropTypes from 'prop-types'
66
import cn from 'classnames'
77
import styles from './AssignedMember-Field.module.scss'
88
import SelectUserAutocomplete from '../../SelectUserAutocomplete'
9+
import { PrimaryButton } from '../../Buttons'
910

10-
const AssignedMemberField = ({ challenge, onChange, assignedMemberDetails, readOnly }) => {
11+
const AssignedMemberField = ({ challenge, onAssignSelf, onChange, assignedMemberDetails, readOnly }) => {
1112
const value = assignedMemberDetails ? {
1213
// if we know assigned member details, then show user `handle`, otherwise fallback to `userId`
1314
label: assignedMemberDetails.handle,
1415
value: assignedMemberDetails.userId + ''
1516
} : null
17+
1618
return (
1719
<div className={styles.row}>
1820
<div className={cn(styles.field, styles.col1)}>
@@ -28,6 +30,13 @@ const AssignedMemberField = ({ challenge, onChange, assignedMemberDetails, readO
2830
/>
2931
)}
3032
</div>
33+
<div className={styles.assignSelfField}>
34+
<PrimaryButton
35+
text='Assign to me'
36+
type='info'
37+
onClick={onAssignSelf}
38+
/>
39+
</div>
3140
</div>
3241
)
3342
}
@@ -41,7 +50,8 @@ AssignedMemberField.propTypes = {
4150
challenge: PropTypes.shape().isRequired,
4251
onChange: PropTypes.func,
4352
assignedMemberDetails: PropTypes.shape(),
44-
readOnly: PropTypes.bool
53+
readOnly: PropTypes.bool,
54+
onAssignSelf: PropTypes.func
4555
}
4656

4757
export default AssignedMemberField

src/components/ChallengeEditor/index.js

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ class ChallengeEditor extends Component {
9090
this.onUpdateOthers = this.onUpdateOthers.bind(this)
9191
this.onUpdateCheckbox = this.onUpdateCheckbox.bind(this)
9292
this.onUpdateAssignedMember = this.onUpdateAssignedMember.bind(this)
93+
this.onAssignSelf = this.onAssignSelf.bind(this)
9394
this.addFileType = this.addFileType.bind(this)
9495
this.removeFileType = this.removeFileType.bind(this)
9596
this.updateFileTypesMetadata = this.updateFileTypesMetadata.bind(this)
@@ -335,6 +336,22 @@ class ChallengeEditor extends Component {
335336
})
336337
}
337338

339+
/**
340+
* Update Assigned Member to Current User
341+
*/
342+
onAssignSelf () {
343+
const { loggedInUser } = this.props
344+
345+
const assignedMemberDetails = {
346+
handle: loggedInUser.handle,
347+
userId: loggedInUser.userId
348+
}
349+
350+
this.setState({
351+
assignedMemberDetails
352+
})
353+
}
354+
338355
/**
339356
* Update Single Select
340357
* @param option The select option
@@ -1326,6 +1343,7 @@ class ChallengeEditor extends Component {
13261343
challenge={challenge}
13271344
onChange={this.onUpdateAssignedMember}
13281345
assignedMemberDetails={assignedMemberDetails}
1346+
onAssignSelf={this.onAssignSelf}
13291347
/>
13301348
)}
13311349
<CopilotField challenge={challenge} copilots={metadata.members} onUpdateOthers={this.onUpdateOthers} />
@@ -1469,7 +1487,8 @@ ChallengeEditor.propTypes = {
14691487
updateChallengeDetails: PropTypes.func.isRequired,
14701488
createChallenge: PropTypes.func,
14711489
replaceResourceInRole: PropTypes.func,
1472-
partiallyUpdateChallengeDetails: PropTypes.func.isRequired
1490+
partiallyUpdateChallengeDetails: PropTypes.func.isRequired,
1491+
loggedInUser: PropTypes.shape().isRequired
14731492
}
14741493

14751494
export default withRouter(ChallengeEditor)

src/containers/ChallengeEditor/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ class ChallengeEditor extends Component {
229229
updateChallengeDetails,
230230
partiallyUpdateChallengeDetails,
231231
createChallenge,
232-
replaceResourceInRole
232+
replaceResourceInRole,
233+
loggedInUser
233234
// members
234235
} = this.props
235236
const {
@@ -335,6 +336,7 @@ class ChallengeEditor extends Component {
335336
updateChallengeDetails={updateChallengeDetails}
336337
replaceResourceInRole={replaceResourceInRole}
337338
partiallyUpdateChallengeDetails={partiallyUpdateChallengeDetails}
339+
loggedInUser={loggedInUser}
338340
/>
339341
))
340342
} />

0 commit comments

Comments
 (0)