@@ -8,16 +8,8 @@ import IconClose from 'assets/images/icon-close.svg';
88import RemoveTagIcon from 'assets/images/icon-x-cancel.svg' ;
99import styles from './styles.scss' ;
1010
11- const CATEGORIES = {
12- design : 'design' ,
13- develop : 'develop' ,
14- data_science : 'data_science' ,
15- qa : 'qa' ,
16- } ;
17-
1811export default function AddSkillsModal ( {
1912 disabled,
20- category : intialCategory ,
2113 editingSkills,
2214 lookupSkills,
2315 userSkills,
@@ -26,17 +18,14 @@ export default function AddSkillsModal({
2618 setEditingSkills,
2719} ) {
2820 const [ tempStr , setTempStr ] = React . useState ( '' ) ;
29- const [ tab , setTab ] = React . useState ( intialCategory ) ;
3021 const [ displayingSkills , setDisplayingSkills ] = React . useState ( [ ] ) ;
31- const category = tab ;
3222
3323 // onInit
3424 React . useEffect ( ( ) => {
3525 setEditingSkills ( [ ...userSkills ] ) ;
3626 setDisplayingSkills ( [ ...userSkills ] ) ;
3727 } , [ userSkills ] ) ;
3828
39- const find = ( arr , i ) => arr && _ . findIndex ( arr , e => e . toLowerCase ( ) === i . toLowerCase ( ) ) !== - 1 ;
4029 const findSkill = ( arr , skill ) => arr && arr . find ( a => a . id === skill . id ) ;
4130
4231 const handleSkillSelect = ( skill ) => {
@@ -62,19 +51,13 @@ export default function AddSkillsModal({
6251
6352 const lookupSkillsOptions = lookupSkills
6453 . filter ( skill => ! findSkill ( allDisplayingSkills , skill ) )
65- . filter ( skill => find ( skill . categories , category ) )
6654 . sort ( ( a , b ) => {
6755 if ( a . name . toLowerCase ( ) < b . name . toLowerCase ( ) ) return - 1 ;
6856 if ( a . name . toLowerCase ( ) > b . name . toLowerCase ( ) ) return 1 ;
6957 return 0 ;
7058 } ) ;
7159
7260 const skillList = allDisplayingSkills . map ( ( skill ) => {
73- const isOtherCategorySkill = s => ! find ( s . categories , category ) ;
74- if ( isOtherCategorySkill ( skill ) ) {
75- return null ;
76- }
77-
7861 const selected = findSkill ( editingSkills , skill ) ;
7962 return (
8063 < li key = { skill . id } styleName = { `skillListItem non-removable ${ selected ? 'selected' : '' } ` } >
@@ -99,14 +82,6 @@ export default function AddSkillsModal({
9982 ) ;
10083 } ) ;
10184
102- const getTabName = ( tabname ) => {
103- if ( tabname === CATEGORIES . design ) return 'Design / UX' ;
104- if ( tabname === CATEGORIES . develop ) return 'Development' ;
105- if ( tabname === CATEGORIES . data_science ) return 'Data Science' ;
106- if ( tabname === CATEGORIES . qa ) return 'QA' ;
107- return '' ;
108- } ;
109-
11085 return (
11186 < Modal theme = { { container : styles . modal , overlay : styles [ 'modal-overlay' ] } } >
11287 < div styleName = "modal-dialog" >
@@ -118,68 +93,30 @@ export default function AddSkillsModal({
11893 </ GhostButton >
11994 </ h3 >
12095 < div styleName = "modal-body" >
121- < nav styleName = "tabs" >
122- < ul >
123- < li
124- styleName = { tab === CATEGORIES . design ? 'active' : '' }
125- role = "presentation"
126- onClick = { ( ) => setTab ( CATEGORIES . design ) }
127- onKeyDown = { ( ) => { } }
128- >
129- { getTabName ( CATEGORIES . design ) }
130- </ li >
131- < li
132- styleName = { tab === CATEGORIES . develop ? 'active' : '' }
133- role = "presentation"
134- onClick = { ( ) => setTab ( CATEGORIES . develop ) }
135- onKeyDown = { ( ) => { } }
136- >
137- { getTabName ( CATEGORIES . develop ) }
138- </ li >
139- < li
140- styleName = { tab === CATEGORIES . data_science ? 'active' : '' }
141- role = "presentation"
142- onClick = { ( ) => setTab ( CATEGORIES . data_science ) }
143- onKeyDown = { ( ) => { } }
144- >
145- { getTabName ( CATEGORIES . data_science ) }
146- </ li >
147- < li
148- styleName = { tab === CATEGORIES . qa ? 'active' : '' }
149- role = "presentation"
150- onClick = { ( ) => setTab ( CATEGORIES . qa ) }
151- onKeyDown = { ( ) => { } }
152- >
153- { getTabName ( CATEGORIES . qa ) }
154- </ li >
155- </ ul >
156- </ nav >
157- < div styleName = "tabContent" >
158- < h4 styleName = "title" > Select { getTabName ( tab ) } Skills</ h4 >
96+ < h4 styleName = "title" > Select Skills</ h4 >
15997
160- < FormField label = "Skill" >
161- < FormInputSelect
162- options = { lookupSkillsOptions }
163- onChange = { ( skill ) => {
164- handleSkillSelect ( skill ) ;
165- setTempStr ( skill . name ) ;
166- updateDisplayingSkills ( skill ) ;
167- } }
168- matchPos = "any"
169- matchProp = "name"
170- labelKey = "name"
171- valueKey = "name"
172- placeholder = "Add new skill"
173- clearable = { false }
174- disabled = { disabled }
175- value = { tempStr }
176- />
177- </ FormField >
98+ < FormField label = "Skill" >
99+ < FormInputSelect
100+ options = { lookupSkillsOptions }
101+ onChange = { ( skill ) => {
102+ handleSkillSelect ( skill ) ;
103+ setTempStr ( skill . name ) ;
104+ updateDisplayingSkills ( skill ) ;
105+ } }
106+ matchPos = "any"
107+ matchProp = "name"
108+ labelKey = "name"
109+ valueKey = "name"
110+ placeholder = "Add new skill"
111+ clearable = { false }
112+ disabled = { disabled }
113+ value = { tempStr }
114+ />
115+ </ FormField >
178116
179- < ul styleName = "skillList" >
180- { skillList }
181- </ ul >
182- </ div >
117+ < ul styleName = "skillList" >
118+ { skillList }
119+ </ ul >
183120 </ div >
184121 < div styleName = "modal-footer" >
185122 < PrimaryButton theme = { { button : styles [ 'button-save' ] } } onClick = { onSave } disabled = { disabled } >
@@ -194,7 +131,6 @@ export default function AddSkillsModal({
194131
195132AddSkillsModal . propTypes = {
196133 disabled : PT . bool . isRequired ,
197- category : PT . string . isRequired ,
198134 editingSkills : PT . arrayOf ( PT . shape ( ) ) . isRequired ,
199135 lookupSkills : PT . arrayOf ( PT . shape ( ) ) . isRequired ,
200136 userSkills : PT . arrayOf ( PT . shape ( ) ) . isRequired ,
0 commit comments