Material-ui: [рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб] рдЯреЗрдХреНрд╕реНрдЯ рдлреАрд▓реНрдб рдореЗрдВ рдЖрдЗрдХрди рдкреНрд░реЛрдк рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЬрдире░ 2016  ┬╖  30рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mui-org/material-ui

рдЬреИрд╕рд╛ рдХрд┐ #2416 рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдШрдЯрдХ рдореЗрдВ рдмрд╛рдпрд╛рдВ рдЖрдЗрдХрди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рдХреЛ <TextField icon={icon} /> рддрд░рд╣ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрдирдкреБрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ рдЖрдЗрдХрди рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ред

TextField enhancement good first issue

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рд╕реЗ рд╕рдЯреЗ рдЖрдЗрдХрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдлрд╝реАрд▓реНрдб рдФрд░ рдЖрдЗрдХрди рдХреЛ рдПрдХ div рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреВрд░реНрдг рд╕реНрдерд┐рдд рдЖрдЗрдХрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

<div style={{position: 'relative', display: 'inline-block'}}>
      <SearchIcon style={{position: 'absolute', right: 0, top: 15, width: 20, height: 20}}/>
      <TextField
           hintText="Search by Name"
           onChange={_.debounce((event, value) => this.handleSearch(value), 500)}
        />
</div>

search-bar-with-icon

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдВрдбреЗрдВрдЯ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдмрджрд▓реЗрдВред

<div style={{position: 'relative', display: 'inline-block'}}>
       <SearchIcon style={{position: 'absolute', left: 0, top: 15, width: 20, height: 20}}/>
       <TextField
              style={{textIndent: 30}}
              hintText="Search by Name"
              onChange={_.debounce((event, value) => this.handleSearch(value), 500)}
        />
</div>

search-bar-with-left-icon

рдпрджрд┐ рдЖрдк рдбрд╛рдпрдиреЗрдорд┐рдХ рдЖрдЗрдХрди рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрди рдЪреЗрдВрдЬ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓реЗрдВ рдЬреЛ рдЖрдЗрдХрди рдХреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдХреНрд▓реАрдирд░ рдХреЛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдПрдХ рдШрдЯрдХ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ IconTextField рдЬреИрд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ } ....рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ />

рд╕рднреА 30 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬреИрд╕рд╛ рдХрд┐ #3032 рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ
screen shot 2016-01-24 at 12 55 58 pm
рдФрд░ #3038 рд╣рдореЗрдВ рдмрд╛рдИрдВ рдУрд░ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдПрдХ рдЖрдЗрдХрди рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдкреНрд░рддреНрдпрдп рджреЗрдЦрдирд╛ рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
image

рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЗрд╕реЗ рдХрдм рддрдХ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрд╡рдд: рдкреВрд░реНрдг рдЗрдирдкреБрдЯ рддрдХ рднреА рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рд╕рддреНрдпрд╛рдкрди/рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдЗрдХрди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
screen shot 2016-07-05 at 1 19 31 pm

slice 1

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ SelectField рд╕рд╣рд┐рдд рд╕рднреА "рдлреЙрд░реНрдо" рдлрд╝реАрд▓реНрдб рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ ListItem рдпрд╛ MenuItem рдХреЗ рдЕрдВрджрд░ TextField рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВред ListItem рдХреЗ рдЕрдВрджрд░ рдПрдХ TextField рд░рдЦреЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП leftIcon рдпрд╛ rightIcon рдкреНрд░реЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдореИрдВ ListItem рдпрд╛ MenuItem рдХреЗ рдЕрдВрджрд░ TextField рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп TextField рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдкрд░ рд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ ListItem рдпрд╛ MenuItem рдХреЛ рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдШрдЯрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред <TextFieldIcon />

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ ListItem рдЬреИрд╕рд╛ рджрд┐рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://material.google.com/components/text-fields.html#text -fields-single-line- рдкрд╛рдареНрдп рд╕реЗ рднрд░рд╛

рдФрд░ рд╢рд╛рдпрдж рдЗрд╕реЗ rightCheckbox рд╕рдорд╛рди рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ rightField , рдФрд░ рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд░реНрдердиред 2 рддрддреНрд╡, рдЬреИрд╕реЗ TextField рдФрд░/рдпрд╛ SelectField , рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕ рдлрд╝реЛрди/рдХреИрд▓реЗрдВрдбрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрдЧрд╣ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкрд░реЗрд╢рд╛рдиреА, рдЙрди рд╕рднреА рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

ListItem рдХреЗ рд╕рд╛рде рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдХреНрд╕реНрдЯрдлреАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ ... рдЬрдм рддрдХ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдлреЙрд░реНрдо рдореЗрдВ рдЕрдЧрд▓реЗ рдЯреЗрдХреНрд╕реНрдЯрдлреАрд▓реНрдб рдкрд░ рдЯреИрдм рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдХреЗрд▓реЗ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ @oliviertassinari рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдмрд╕ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрдк рдЬрд┐рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓рд╛ #4027 рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рд▓рдЧрддрд╛ рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдХрд╛рдордХрд╛рдЬреА рдХрд╛рдордХрд╛рдЬ рдорд┐рд▓рд╛ рд╣реИ?

рдХреНрдпрд╛ рдореВрд▓ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдпрд╛ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реИ?

@iamzhouyi рд╕реНрд╡рдд: рдкреВрд░реНрдг рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ

<Menu disableAutoFocus>
  <MenuItem leftIcon={<SearchIcon color='#fff'/>} disabled>
    <AutoComplete hintText='Search' />
  </MenuItem>
</Menu> 

рдХреЛрдИ рднреА рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдХрд░ рд░рд╣рд╛ рд╣реИ? рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдореБрдЭреЗ рдорджрдж рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рдЕрдЧрд░ рдирд╣реАрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЦреБрдж рдПрдХ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдКрдВрдЧрд╛?

рдпрд╣ @oshalygin рдЬреИрд╕рд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕реЗ # 6566 рдкрд░ рдЪреЗрдХрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдВ рдкреНрд░рдЧрддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ!

рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдЬреЛрдбрд╝ рд╣реЛрдЧрд╛ред

@oshalygin рдпрджрд┐ рдЖрдк рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ next рд╢рд╛рдЦрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ - рд╣рдо master рдкрд░ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрдкреЛрдЬрд╝реЗрдмрд▓ рдШрдЯрдХреЛрдВ рд╕реЗ рдмрдирд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдорд╛рди рдХреА рд░реАрдпрд▓ рдЯрд╛рдЗрдо рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рд░реНрдХреБрд▓рд░ рдкреНрд░рдЧрддрд┐ рдХрд░рдирд╛ рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рд╡рд╛рд╣, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ 1.5 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛! рдЗрд╕рдХрд╛ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдореИрдВрдиреЗ рд╕реАрдПрд╕рдПрд╕ рд╣реИрдХреНрд╕ (рдФрд░ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдкрд╣рд▓реЗ) рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдФрд░ рдЕрдзрд┐рдХ рдмрдврд╝рд┐рдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдХреНрдпрд╛ рдпрд╣ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рд░рд╛рдЬреНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЯреЗрдХреНрд╕реНрдЯрдлреАрд▓реНрдб рдХреЗ рдЕрдВрджрд░ рд╣реЛ . рд╣рд┐рдВрдЯрдЯреЗрдХреНрд╕реНрдЯ/рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рднреА рдЭреБрдХрд╛рд╡ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпреЗ рд╕рднреА рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рдФрд░ рдЕрд░рд╛рдЬрдХ рд╣реИрдВред рдореИрдВ

рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рд╕реЗ рд╕рдЯреЗ рдЖрдЗрдХрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдлрд╝реАрд▓реНрдб рдФрд░ рдЖрдЗрдХрди рдХреЛ рдПрдХ div рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреВрд░реНрдг рд╕реНрдерд┐рдд рдЖрдЗрдХрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

<div style={{position: 'relative', display: 'inline-block'}}>
      <SearchIcon style={{position: 'absolute', right: 0, top: 15, width: 20, height: 20}}/>
      <TextField
           hintText="Search by Name"
           onChange={_.debounce((event, value) => this.handleSearch(value), 500)}
        />
</div>

search-bar-with-icon

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдВрдбреЗрдВрдЯ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдмрджрд▓реЗрдВред

<div style={{position: 'relative', display: 'inline-block'}}>
       <SearchIcon style={{position: 'absolute', left: 0, top: 15, width: 20, height: 20}}/>
       <TextField
              style={{textIndent: 30}}
              hintText="Search by Name"
              onChange={_.debounce((event, value) => this.handleSearch(value), 500)}
        />
</div>

search-bar-with-left-icon

рдпрджрд┐ рдЖрдк рдбрд╛рдпрдиреЗрдорд┐рдХ рдЖрдЗрдХрди рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрди рдЪреЗрдВрдЬ рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓реЗрдВ рдЬреЛ рдЖрдЗрдХрди рдХреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдХреНрд▓реАрдирд░ рдХреЛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдПрдХ рдШрдЯрдХ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ IconTextField рдЬреИрд╕реЗ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ } ....рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ />

@bradrisse рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рднрдЧрд╡рд╛рди рдХрд╛ рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкреВрд░рд╛ рдзрд╛рдЧрд╛ рдкрдврд╝рд╛, рдореБрдЭреЗ рд╡рд╣ рдЬрд╡рд╛рдм рдорд┐рд▓рд╛ рдЬреЛ рдореИрдВ рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рдерд╛

рдХреНрдпрд╛ рд╕рд╣рд╛рд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИ?
_ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдЯреЗрдХреНрд╕реНрдЯ = 'рд▓реЗрдмрд▓'
рд╣рд┐рдВрдЯрдЯреЗрдХреНрд╕реНрдЯ = 'рд╕рдВрдХреЗрдд рдЯреЗрдХреНрд╕реНрдЯ'
рддреНрд░реБрдЯрд┐ рдкрд╛рда = { ${<MoreVertIcon />} Error Text }
рдмрд╣реБ
/>_

import ActionHome from 'material-ui/svg-icons/action/home';
<TextField
floatingLabelText={<SvgIconComponent/>}
floatingLabelFixed={true}
/>

// рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде рдЯреЗрдХреНрд╕реНрдЯрдлреАрд▓реНрдб
const IconTextField = (рдкреНрд░реЙрдкреНрд╕) => (

рдЖрдЗрдХрди = {"рд╡реНрдпрдХреНрддрд┐"}
рд╣рд┐рдВрдЯрдЯреЗрдХреНрд╕реНрдЯ = {рдкреНрд░реЛрдкреНрд╕.рд▓реЗрдмрд▓}
рдЯрд╛рдЗрдк = {рдкреНрд░реЛрдкреНрд╕ рдЯрд╛рдЗрдк?
рдлреБрд▓рд╡рд┐рдбреНрде = {рд╕рдЪ}
/>

)

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣реИ рдирд╛? https://material-ui-next.com/demos/text-fields/#input -adornments

@stunaz рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд▓реЛрдЧ рдпрд╣рд╛рдВ рдпрд╣реА рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред

@oliviertassinari рдХреЗрд╡рд▓ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдЬреЛ рдореИрдВ рдХрд▓реНрдкрдирд╛ рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ "рдЖрдЗрдХрди

рдЪрд┐рд╣реНрди рд╣рд╕реНрддрд╛рдХреНрд╖рд░рдХрд░реНрддрд╛

рдЖрдЗрдХрди рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЗрдирдкреБрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреА рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

image

const styles = theme => ({
  icon: {
    margin: '20px 16px 0 0',
    color: theme.palette.action.active,
  },
});

[...]

<div>
    <Person className={classes.icon} />
    <TextField label="Name" />
</div>

рдХреНрдпрд╛ рдбреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛?

@mbrookes рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдЪреВрдВрдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдПрдХрдорд╛рддреНрд░ рдШрдЯрдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдПрдХ рдЖрдЗрдХрди рдбреЗрдХреЛрд░реЗрдЯрд░ рдЪрд╛рд╣рддрд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рд░реИрдкрд░ рдмрдирд╛ рд╕рдХреЗрдВ рдЬреЛ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред

рдЙрджрд╛рд╣рд░рдг

рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП

<IconDecorator icon={<PeopleIcon/>} position="left" iconStyle={customStyle}>
    <TextField label="Name"/>
</IconDecorator>

рдмрдЯрди рдХреЗ рд▓рд┐рдП

<IconDecorator icon={<ArrowRightIcon/>} position="right" iconStyle={customStyle}>
    <Button raised={true}>Go</Button>
</IconDecorator>

рд▓рд╛рдн

рдпрд╣ рд╡рд┐рдзрд┐ рд╡рд░реНрддрдорд╛рди рдПрдкреАрдЖрдИ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝реЗрдЧреА рдпрд╛ рдкреНрд░рджреВрд╖рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧреА, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛрдИ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдЪрд┐рдВрддрд╛

рдпрджрд┐ рдпрд╣ IconDecorator рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

@wongjiahau рдПрдХ рдХрдард┐рдирд╛рдИ рдЬреЛ рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд▓рдВрдмрд╡рдд рд╕рдВрд░реЗрдЦрдг рдШрдЯрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЗ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдЗрд╕рдХреЗ рдорд╛рд░реНрдЬрд┐рди рдХреЛ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдирд╛ рдерд╛, рддреЛ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдордпреВрдЖрдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

@oliviertassinari рдЖрдкрдХреЛ рдкреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдФрд░ рдЕрдиреБрднрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕реЗ рд▓рд╛рдд рдорд╛рд░реА рдЧрдИ рдпрд╛ рдпрд╣ рдЕрднреА рднреА рд╣рд▓ рд╣реЛрдиреЗ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ?

@BlakeBurnette рдпрд╣ рдореБрджреНрджрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдореИрдВ ЁЯТп% рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдбреЗрдореЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХреЗрдВ?

capture d ecran 2018-03-27 a 21 02 12
https://codesandbox.io/s/29yj0lr7p

import React from "react";
import PropTypes from "prop-types";
import { withStyles } from "material-ui/styles";
import Input, { InputLabel, InputAdornment } from "material-ui/Input";
import { FormControl } from "material-ui/Form";
import TextField from "material-ui/TextField";
import Grid from "material-ui/Grid";
import AccountCircle from "material-ui-icons/AccountCircle";

const styles = theme => ({
  margin: {
    margin: theme.spacing.unit
  }
});

function TextFieldIcons(props) {
  const { classes } = props;

  return (
    <div>
      <FormControl className={classes.margin}>
        <InputLabel htmlFor="demo1">First Name</InputLabel>
        <Input
          id="demo1"
          startAdornment={
            <InputAdornment position="start">
              <AccountCircle />
            </InputAdornment>
          }
        />
      </FormControl>
      <TextField
        className={classes.margin}
        id="demo2"
        label="First Name"
        InputProps={{
          startAdornment: (
            <InputAdornment position="start">
              <AccountCircle />
            </InputAdornment>
          )
        }}
      />
      <div className={classes.margin}>
        <Grid container spacing={8} alignItems="flex-end">
          <Grid item>
            <AccountCircle />
          </Grid>
          <Grid item>
            <TextField id="demo2" label="First Name" />
          </Grid>
        </Grid>
      </div>
    </div>
  );
}

TextFieldIcons.propTypes = {
  classes: PropTypes.object.isRequired
};

export default withStyles(styles)(TextFieldIcons);
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mb-copart picture mb-copart  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ryanflorence picture ryanflorence  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

reflog picture reflog  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chris-hinds picture chris-hinds  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

TimoRuetten picture TimoRuetten  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ