1+ /* eslint-disable react/prop-types */
12/* eslint-disable react/destructuring-assignment */
23/* eslint-disable @typescript-eslint/no-unused-vars */
34/* eslint-disable arrow-body-style */
910import {
1011 FC ,
1112 useState ,
12- CSSProperties
13+ CSSProperties ,
1314} from 'react'
1415
15- import { components , ControlProps , Options , GroupBase , MultiValue , SingleValue , StylesConfig , ActionMeta } from 'react-select'
16+ import { components , ControlProps , Options ,
17+ GroupBase , MultiValue , SingleValue , StylesConfig , ActionMeta } from 'react-select'
1618import AsyncSelect from 'react-select/async'
1719
1820import { ContentLayout } from '~/libs/ui'
@@ -23,24 +25,25 @@ import SkillPill from './components/SkillPill'
2325import styles from './TalentSearch.module.scss'
2426
2527function search ( skills :Options < Skill > ) : void {
26- alert ( "Searching skills: " + JSON . stringify ( skills ) )
28+ alert ( JSON . stringify ( skills ) )
2729}
2830
29- const Control : React . FC < ControlProps < Skill , boolean , GroupBase < Skill > > > = ( { children, ...props } ) => (
31+ const Control : React . FC < ControlProps < Skill , boolean , GroupBase < Skill > > > = ( { children, ...props } ) => (
3032 < components . Control { ...props } >
3133 { children }
32- < span onClick = { ( ) => search ( props . getValue ( ) ) } className = { styles . searchIconSpan } > < SearchIcon className = { styles . searchIcon } /> </ span >
34+ < span
35+ onClick = { ( ) => search ( props . getValue ( ) ) }
36+ className = { styles . searchIconSpan }
37+ >
38+ < SearchIcon className = { styles . searchIcon } />
39+ </ span >
3340 </ components . Control >
3441)
3542
3643export const TalentSearch : FC = ( ) => {
3744 const [ skillsFilter , setSkillsFilter ] = useState < Array < Skill > > ( [ ] )
3845
39- function search ( ) : void {
40- alert ( "Searching for skills: " + JSON . stringify ( skillsFilter ) )
41- }
42-
43- function toggleSkill ( skill :Skill , pill :SkillPill ) : void {
46+ function toggleSkill ( skill :Skill ) : void {
4447 let newFilter : Array < Skill > = [ ]
4548 let deleted : boolean = false
4649 if ( skillsFilter ) {
@@ -49,8 +52,7 @@ export const TalentSearch: FC = () => {
4952 skillsFilter . forEach ( ( filterSkill , index ) => {
5053 if ( filterSkill . emsiId === skill . emsiId ) {
5154 deleted = true
52- }
53- else {
55+ } else {
5456 newFilter . push ( filterSkill )
5557 }
5658 } )
@@ -65,8 +67,7 @@ export const TalentSearch: FC = () => {
6567 function onChange ( options :MultiValue < Skill > | SingleValue < Skill > , meta :ActionMeta < Skill > ) : void {
6668 if ( Array . isArray ( options ) ) {
6769 setSkillsFilter ( options )
68- }
69- else {
70+ } else {
7071 setSkillsFilter ( [ ] )
7172 }
7273 }
@@ -91,10 +92,10 @@ export const TalentSearch: FC = () => {
9192 [ { name : 'HyperText Markup Language (HTML)' , emsiId : 'KS1200578T5QCYT0Z98G' } ,
9293 { name : 'IOS Development' , emsiId : 'ES86A20379CD2AD061F3' } ,
9394 { name : 'Node.js' , emsiId : 'KS127296VDYS7ZFWVC46' } ] ,
94- [ { name : '.NET Development' , emsiId : 'ES50D03AC9CFC1A0BC93' } ,
95+ [ { name : '.NET Development' , emsiId : 'ES50D03AC9CFC1A0BC93' } ,
9596 { name : 'C++ (Programming Language)' , emsiId : 'KS1219W70LY1GXZDSKW5' } ,
9697 { name : 'PHP Development' , emsiId : 'KS127SZ60YZR8B5CQKV1' } ] ,
97- [ { name : 'Adobe Illustrator' , emsiId : 'KS1206V6K46N1SDVJGBD' } ,
98+ [ { name : 'Adobe Illustrator' , emsiId : 'KS1206V6K46N1SDVJGBD' } ,
9899 { name : 'Ruby (Programming Language)' , emsiId : 'ESD07FEE22E7EC094EB8' } ,
99100 { name : 'Java (Programming Language)' , emsiId : 'KS120076FGP5WGWYMP0F' } ] ,
100101 [ { name : 'React Native' , emsiId : 'KSPSGF5MXB6568UIQ4BK' } ,
@@ -116,7 +117,6 @@ export const TalentSearch: FC = () => {
116117 fontWeight : 400 ,
117118 }
118119
119-
120120 const multiValueStyle : CSSProperties = {
121121 backgroundColor : 'white' ,
122122 border : '1px solid #d4d4d4' ,
@@ -225,21 +225,27 @@ export const TalentSearch: FC = () => {
225225 components = { { Control } }
226226 openMenuOnClick = { false }
227227 value = { skillsFilter }
228- onChange = { ( newValue : MultiValue < Skill > | SingleValue < Skill > , actionMeta : ActionMeta < Skill > ) =>
229- onChange ( newValue , actionMeta ) }
228+ onChange = { (
229+ newValue : MultiValue < Skill > | SingleValue < Skill > ,
230+ actionMeta : ActionMeta < Skill > ,
231+ ) => onChange ( newValue , actionMeta ) }
230232 />
231233 </ div >
232234 < div className = { styles . popularSkillsContainer } >
233235 < span className = { styles . popularSkillsTitle } > Popular Skills</ span >
234236
235- { popularSkills . map ( row =>
236- < div className = { styles . pillRow } >
237- { row . map ( skill =>
238- < SkillPill skill = { skill }
239- selected = { filteringSkill ( skill ) }
240- onClick = { toggleSkill }
241- /> ) }
242- </ div >
237+ { popularSkills . map (
238+ row => (
239+ < div className = { styles . pillRow } >
240+ { row . map ( skill => (
241+ < SkillPill
242+ skill = { skill }
243+ selected = { filteringSkill ( skill ) }
244+ onClick = { toggleSkill }
245+ />
246+ ) ) }
247+ </ div >
248+ ) ,
243249 ) }
244250 </ div >
245251 </ ContentLayout >
0 commit comments