Material-ui: [TextField] рдХреНрд░реЛрдо рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓ рд╕рдВрднрд╛рд▓реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдлрд╝рд░ре░ 2019  ┬╖  57рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mui-org/material-ui

рдЬрдм рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмреЙрдХреНрд╕ рд▓реЛрдб рдкрд░ рдкрд╛рда рдмреЙрдХреНрд╕ рдХреЛ рднрд░рддрд╛ рд╣реИ, рддреЛ рдЯреЗрдХреНрд╕реНрдЯрдлрд╝рд┐рд▓реНрдб рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдореБрджреНрджрд╛ рд╣реЛрддрд╛ рд╣реИред рдСрдЯреЛ рднрд░рд╛ рд╣реБрдЖ рдкрд╛рда рд▓реЗрдмрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЗрдВред
screenshot from 2019-02-06 08-37-05

рдСрдЯреЛ рднрд░реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдХреНрдпрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдореАрдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг 3.9.2

bug ЁЯРЫ TextField important

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

рдСрдЯреЛ рднрд░реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдХреНрдпрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

@garygrubb рдореИрдВрдиреЗ рдПрдХ рдереАрдо рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:

const theme = createMuiTheme({
  overrides: {
    MuiInputBase: {
      input: {
        '&:-webkit-autofill': {
          transitionDelay: '9999s',
          transitionProperty: 'background-color, color',
        },
      },
    },
  },
});

рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣реИред

рд╡рд┐рдХрд▓реНрдк рдЗрдирдкреБрдЯ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдХреНрд╕-рд╢реИрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: https://stackoverflow.com/questions/2781549/removing-input-background-colour-for-chrome-autocomplete

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

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! # 14453 рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
@garygrubb рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдЖрдк рдПрдХ рдкреНрд░рдЬрдирди рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ Google рдореБрдЦреНрдп рд▓реЙрдЧрд┐рди рдлрд╝реЙрд░реНрдо рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рджрд┐рдЦрддрд╛ рд╣реИ:

capture d ecran 2019-02-08 a 18 18 40

рджреЗрд░реА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдл рдХрд░реЗрдВред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд░реВрдБрдЧрд╛ рдЬрдм рд╕рдордп рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рдмреАрдЪ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд┐рдХреНрд╕ рд╣реИ - рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдСрдЯреЛрдлреЛрдХрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред

`                            <TextField
                                required
                                **autoFocus**
                                variant="outlined"
                                id="username"
                                label="mobile number"
                                defaultValue=""
                                margin="normal"
                                name="username"
                                type="tel"
                                onChange={this.handleChange}
                                error={!this.state.validMobile}
                                autoComplete="tel-national username"
                            />

TextFields рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдСрдЯреЛрдлреЛрдХрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдСрдЯреЛ рднрд░реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдХреНрдпрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

@garygrubb рдореИрдВрдиреЗ рдПрдХ рдереАрдо рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:

const theme = createMuiTheme({
  overrides: {
    MuiInputBase: {
      input: {
        '&:-webkit-autofill': {
          transitionDelay: '9999s',
          transitionProperty: 'background-color, color',
        },
      },
    },
  },
});

рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣реИред

рд╡рд┐рдХрд▓реНрдк рдЗрдирдкреБрдЯ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдХреНрд╕-рд╢реИрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: https://stackoverflow.com/questions/2781549/removing-input-background-colour-for-chrome-autocomplete

@oliviertassinari рдпрд╣ рдЪрд╛рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ: https://stackoverflow.com/a/41530164/396889

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, FYI рдХрд░реЗрдВ: https://github.com/facebook/react/issues/1159

@MarkMurphy рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

@MarkMurphy рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реЙрд░реНрдо рдмрдирд╛рдпрд╛ рдФрд░ рдХреНрд░реЛрдо рдХреЛ рдореЗрд░реА рд╕рд╛рдЦ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

MacOS рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ 10.13.6 рдкрд░ рдХреНрд░реЛрдо 72.0.3626.119 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

@ рд╕рд╛рдордЧреНрд░реА- ui / рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг "3.8.1"
@ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ / рд╢реИрд▓рд┐рдпреЛрдВ рд╕рдВрд╕реНрдХрд░рдг "3.0.0-рдЕрд▓реНрдлрд╛.6"

@MarkMurphy рдореИрдВ рдЗрд╕реЗ https://material-ui.com/getting-started/page-layout-examples/sign-in/ рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рдерд╛:

feb-27-2019 13-13-39

рдпрд╣ рдЯреЗрдХреНрд╕реНрдЯ рдлреАрд▓реНрдб рд╕реНрдЯреИрдВрдбрд░реНрдб рд╡реИрд░рд┐рдПрдВрдЯ рдХреЗ рд╕рд╛рде рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рджреЛ рдореБрджреНрджреЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  1. рдлреЛрдХрд╕ рд╕рдХреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ # 14132 рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╣реИ, рдмрд╕ рдкреНрд░рдпрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
  2. рдкреГрд╖реНрда рдкрд░ рдлрд╝реЛрдХрд╕ рд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рднрд░рдг рд╕реНрдерд┐рддрд┐ рдХрд╛ рдХреЗрд╡рд▓ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЗрдП рдЕрдм рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╣рдо рдЗрд╕ рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://deploy-preview-14499--material-ui.netlify.com/getting-started/page-layout-examples/sign-in-side/

feb-27-2019 13-24-10

рдпрд╣ рдЗрд╕рдХреА рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓ рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдЕрдЧрд░ рд╣рдореЗрдВ рдХреНрд░реЛрдо рдХреЗ рдСрдЯреЛрдлрд┐рд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ ... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рд╕рдорд╛рдзрд╛рди рд╕рднреА textfields рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдг / рдСрдЯреЛрдлрд┐рд▓ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдерд╛ред

@ ymoon715 рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдиреНрдп рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рдПрдХ рд▓рд┐рдВрдХ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛

рд╕рдорд╛рдзрд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝:

  • рд╕реНрд╡рдд: рдкреВрд░реНрдг рдЕрдХреНрд╖рдо рдХрд░рдирд╛: https://stackoverflow.com/a/30976223/882337
  • рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓: http://webagility.com/posts/the-ultimate-list-of-hacks-for-chromes- рд▓рд╛рдЧреВ-yellow-background-on-autocompleted-inputs

  • рдСрдЯреЛрдлрд┐рд▓ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ (рдКрдкрд░ рджрд┐рдП рдЧрдП рджреВрд╕рд░реЗ рд▓рд┐рдВрдХ рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ):

input:-webkit-autofill,
.my-class:-webkit-autofill {
    -webkit-transition-delay: 9999999s;
}

рдзрдиреНрдпрд╡рд╛рдж @cezarderevlean , рдореБрдЭреЗ рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рд╛, рдЕрдм рдмрд╕ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗ рдЖрдЙрдЯ рд╣реЗрд▓реНрдкрд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПред
Screenshot from 2019-04-22 11-14-45

рдпрджрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рдореЗрдВ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдСрдЯреЛрдлрд┐рд▓ рдХреЛ "рдбрд┐рд╕реЗрдмрд▓" рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЖрдкрдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрдм рдкреЗрдЬ рдХрд┐рд╕реА рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд░реАрдлреНрд░реЗрд╢ рд╣реЛ рдЬрд╛рдП
рд╡рд┐рдХрд╛рд╕ (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ)ред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЛрдб / рд░рд┐рдлреНрд░реЗрд╢ рдареАрдХ рд░рд╣реЗрдЧрд╛, рдпрд╣ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рд╕рд┐рдХреЛрдбрд╝ рджреЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореИрдВрдиреЗ рдЬреЛ рдКрдкрд░ рдХрд╣рд╛ рд╣реИ рд╡рд╣ рдЕрд╕рддреНрдп рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬрд┐рд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╣рдореЗрд╢рд╛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рдЗрд╕ рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде TextField рдкрд░ рд╕рд┐рдХреЛрдбрд╝ рдХрд░ рд░рдЦрддрд╛ рд╣реИ:

InputLabelProps={{
    shrink: true,
}}

@cezarderevlean рдзрдиреНрдпрд╡рд╛рдж рддреБрдо рд╕рд╣реА рд╣реЛред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рд┐рдлреНрд░реЗрд╢ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди @MarkMurphy рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╛рдзрд╛рди рддрд░реАрдХрд╛ рдерд╛ рдФрд░ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╖рдп рдУрд╡рд░рд░рд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдХреНрд▓реАрдирд░ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рдорд╛рд░реНрдХред

рдпрджрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рдореЗрдВ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдСрдЯреЛрдлрд┐рд▓ рдХреЛ "рдбрд┐рд╕реЗрдмрд▓" рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЖрдкрдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрдм рдкреЗрдЬ рдХрд┐рд╕реА рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд░реАрдлреНрд░реЗрд╢ рд╣реЛ рдЬрд╛рдП
рд╡рд┐рдХрд╛рд╕ (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ)ред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЛрдб / рд░рд┐рдлреНрд░реЗрд╢ рдареАрдХ рд░рд╣реЗрдЧрд╛, рдпрд╣ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рд╕рд┐рдХреЛрдбрд╝ рджреЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореИрдВрдиреЗ рдЬреЛ рдКрдкрд░ рдХрд╣рд╛ рд╣реИ рд╡рд╣ рдЕрд╕рддреНрдп рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬрд┐рд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╣рдореЗрд╢рд╛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рдЗрд╕ рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде TextField рдкрд░ рд╕рд┐рдХреЛрдбрд╝ рдХрд░ рд░рдЦрддрд╛ рд╣реИ:

InputLabelProps={{
    shrink: true,
}}

рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдкрд░ autoFocus рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдкрд░ autoComplete='new-password' рд╕реЗрдЯ рдХрд░рдирд╛ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдЪрд╛рд▓ рд╣реИред

рдЕрджреНрдпрддрди: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдБ рдмрдВрджреВрдХ рдХреВрдж рдЧрдпрд╛ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ?

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдорд╛рдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп (рджреЗрдЦреЗрдВ https://github.com/mui-org/material-ui/issues/14427#issuecomment-4660549066, I) рдЗрд╕ рдПрд╕рдУ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ: https://stackoverflow.com/questions/35049555/chrome-autofill-autocomplete-no-value-for-password/56157489#5615589ред рд▓рд┐рдВрдХ рдореЗрдВ рдЗрд╕ рд╕рдордЧреНрд░ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреНрд░реЛрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

  componentDidMount() {
    var evt = new MouseEvent("click", {
      view: window,
      clientX: 0
    });
    window.dispatchEvent(evt);
    let iterations = 0;

    const interval = setInterval(() => {
      const value = this.inputs.email.value;
      // plain js alternative:
      // const value = document.getElementById("email").value;
      if (!!value || iterations > 20) {
        console.log(value);
        return clearInterval(interval);
      }

      iterations++;
      console.log("not found -> repeat");
    }, 100);
  }

рдЕрд╕рд▓ рдореЗрдВ, рдореИрдВ рдЗрдирдкреБрдЯ рдкрд░ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП Chrome рдЗрдирдкреБрдЯ рдкрд░ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ рдЬрдм рдореВрд▓реНрдп рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдореВрд▓реНрдп рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реВрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд░реЛрдо рд╣рдореЗрдВ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдЫреЛрдбрд╝рддрд╛ рд╣реИ ... (рдПрд╕рдУ рд▓реЗрдЦ рдореЗрдВ рдХреНрд░реЛрдо рдХреЗ рд░реБрдЦ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ)ред

TL; DR: рдпрд╣ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдСрдЯреЛрдлрд┐рд▓рд┐рдВрдЧ рдлреЙрд░реНрдо рдмрдирд╛рддреЗ рд╕рдордп рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрддрд░ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рдореИрдВ рдкреГрд╖реНрда рдХреЗ рдЕрдВрджрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЗрдирдкреБрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреЗрдЬ рджреЗрддрд╛ рд╣реВрдВред рдпрджрд┐ рдореИрдВ рдкреГрд╖реНрда рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдирд╛рд╡рдмрд╛рд░ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рджрд░реНрдЬ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗ рдкреГрд╖реНрда рдкрд░ рдЙрддрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдирд╛рд╡рдмрд╛рд░ рдореЗрдВ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

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

@ eps1lon рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдмрдЧ рдЦреЛрд▓рд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдХреНрд░реЛрдорд┐рдпрдо рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: https://github.com/mui-org/material-ui/issues/718#issuecomment -529064043ред
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: InputLabelProps = {{рд╕рдВрдХреЛрдЪрди: рд╕рддреНрдп}}, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рд┐рдХреБрдбрд╝рд╛ рд░рд╣рддрд╛ рд╣реИ

рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдВрддрд░ рд▓рдЧрддрд╛ рд╣реИ:

diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index d258e5b71d..a7aebb1288 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -311,6 +311,10 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
     }
   };

+  // Check the input state on mount, in case it was filled by the user
+  // or auto filled by the browser before the hydration (for ssr).
+  React.useEffect(() => {
+    checkDirty(inputRef.current);
+  }, []);
+
   const handleClick = event => {
     if (inputRef.current && event.currentTarget === event.target) {
       inputRef.current.focus();

рдХреНрдпрд╛ рдХреЛрдИ рднреА рдлрд┐рдХреНрд╕ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

@oliviertassinari рд╕рд╛рдордЧреНрд░реА ui рдореЗрдВ рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдШрдЯрдХ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд @ eps1lon рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд░реЛрдорд┐рдпрдо рдмрдЧ рд╣реИ, рддреЛ рдпрд╣ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдлрд┐рдХреНрд╕ рдХреЗрд╡рд▓ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреНрд░реЛрдорд┐рдпрдо рдХреЗ рднреАрддрд░ рддрдп рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ MUI рдмрдЧ рд╣реИ?

рдпрджрд┐ рдпрд╣ рдХреНрд░реЛрдорд┐рдпрдо рдмрдЧ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрдЧ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рдЦреБрд▓рд╛ рд╣реИ? рдХреБрдЫ рдЗрд╕ рддрд░рд╣: рдХреНрд░реЛрдорд┐рдпрдо рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо

(Https://github.com/mui-org/material-ui/issues/14427#issuecomment-524535710)

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ Chrome рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдЗрдирдкреБрдЯ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрддрд╛ рд╣реИ, рддреЛ рд░рд┐рдПрдХреНрдЯ рд╣рд╛рдЗрдбреНрд░реЗрдЯ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рд╕реВрдЪрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: https://github.com/facebook/react/issues/12955

@oliviertassinari рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреНрд░рд┐рдПрдЯ-рд░рд┐рдПрдХреНрд╢рди-рдРрдк рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕рд░реНрд╡рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдпрд╣ рдореБрджреНрджрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА onInput рдпрд╛ onChange рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпреЗ рдИрд╡реЗрдВрдЯ рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдШрдЯрдирд╛рдУрдВ рдХреЛ рдвреАрд▓рд╛ рдХрд░рддреЗ рд╣реИрдВред рд░рд┐рдПрдХреНрдЯ рдиреЗ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЬреЛ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрдХрдбрд╝ рдореЗрдВ рдЖ рдЬрд╛рддреА рд╣реИрдВред рдпрд╣ рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб UI рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред

рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА input.value рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореВрд▓реНрдп рд╕реНрд╡рддрдГрдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ / рдзреБрдВрдзрд▓рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА, рдЬрд┐рд╕рдХреЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╕рд╛рдЗрдб-рдЗрдлреЗрдХреНрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди)ред

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╢реЛрдз рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рдХреЛрдИ рд░рд┐рдкреЛрд░реНрдЯ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИред рдЬрдм рддрдХ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рд╕реЗ рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддрдм рддрдХ рд╣рдореЗрдВ рдХреЛрдИ рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ @oliviertassinari https://github.com/mui-org/material-ui/issues/14427#issuecomment -5301818849 рд╕реЗ рддрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ред

@ eps1lon рджрд┐рд▓рдЪрд╕реНрдкред рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЙрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ https://material-ui.com/getting-started/page-layout-examples/sign-in/ (рджреЗрд╡ рдореЛрдб рдореЗрдВ, рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ) рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд┐ "рдЬрд▓рдпреЛрдЬрди рд╕реЗ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛" рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рд░рд┐рдПрдХреНрдЯ https://github.com/facebook/react/issues/12/55 рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдкреА рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ

@ Croraf рдЖрдк CRA рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ?

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ "рдШрдЯрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд▓рдпреЛрдЬрди рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛" рд╕рдорд╕реНрдпрд╛ рд╣рдореЗрдВ https://github.com/mui-org/material-ui/issues/14132#issuecomment -453657016 рдореЗрдВ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред

@oliviertassinari CRA рдпрд╣рд╛рдВ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди CRA рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдбрдХрдВрдбрдмреЙрдХреНрд╕ рднреА CRA рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реЛ): https://codesandbox.io/s/textinput-bug-hsv9m

рдП) рдЗрд╕реЗ рдЗрд╕ рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
1) рдирдИ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЗ рдРрдк рдХрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЦреЛрд▓реЗрдВред
2) рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВ (рдХреНрд░реЛрдо рд╕рдВрд╡рд╛рдж рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ)
3) рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░реЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛)ред рд╕рдорд╕реНрдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рддрд╛рдЬрд╝рд╛ рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди F5 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде (рддреЗрдЬрд╝ рдбрдмрд▓ рддрд╛рдЬрд╝рд╛) рдпрд╣ рд▓рдЧрднрдЧ рд▓рдЧрд╛рддрд╛рд░ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдмреА) рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдорд┐рд▓рд╛
1) рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдРрдк рдкреНрд░реАрд╡реНрдпреВ рдореЗрдВ (рдЕрд▓рдЧ рдРрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ рдирд╣реАрдВ)ред
2) рдлрд╝реЙрд░реНрдо рднрд░реЗрдВ рдФрд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ (рддрд╛рдХрд┐ Chrome рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо / рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрдпреЛрдЬрди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ)
3) рд╕рд┐рд░реНрдл рдРрдк рдкреНрд░реАрд╡реНрдпреВ рдХреЛ рд░реАрд▓реЛрдб рдХрд░реЗрдВред рдлреЙрд░реНрдо рддреБрд░рдВрдд рд╕реНрд╡рдд: рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред (рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЖрдк рдЦреЗрддреЛрдВ рдХреЗ рд╕реНрд╡рддрдГрднрд░рдг рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ)
4) рдпреВрдЬрд░ рдиреЗрдо рдЯреЗрдХреНрд╕реНрдЯрдлреАрд▓реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред Chrome рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪреБрдирдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛ред
5) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣реЙрд╡рд░ рдХрд░реЗрдВ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдкрд░ рд╣реЛ рд░рд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреЗрдВред

image

@ eps1lon рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдо рдЖрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрдЬрд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ DOM рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЗрдирдкреБрдЯ рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдо рдХреИрд╕реЗ рдСрдЯреЛрдлрд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░рд┐рдПрдХреНрдЯ рдЙрдиреНрд╣реЗрдВ DOM рдореЗрдВ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рдореБрдЭреЗ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж SSR рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди CRA рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕рд░реНрд╡рд░ SSR рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@ eps1lon рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдо рдЖрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрдЬрд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдереИрддрд┐рдХ html рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп рдкреНрд░рдЬрдирди рдирд╣реАрдВ рдерд╛ред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ Chrome v76.0.3809.132, macOS v10.14.6 рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ ред
рдореИрдВ рдХреНрд░реЛрдо v76.0.3809.87, рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВ рдЙрд╕реА рд╕реЗрдЯрд┐рдВрдЧ, Chrome v76.0.3809.132, macOS v10.14.6 рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди:

import { isChrome, osName} from "react-device-detect";
.....
.....

  const isChromeOSX = osName === 'Mac OS' && isChrome

  const [shrink, setShrink] = useState(isChromeOSX ? true : undefined)

  useEffect(() => {
    if(isChromeOSX) {
      const listen = () => {
        setShrink(undefined)
        window.removeEventListener('click',listen)
      }
      window.addEventListener('click', listen);
      return () => {
        window.removeEventListener('click',listen)
      };
    }
  }, [])

  return  <TextField
          .....
          variant="outlined"
          InputLabelProps={{ shrink }}
        />

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдШрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдореИрдВ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

diff --git a/packages/material-ui/src/FormControl/FormControl.js b/packages/material-ui/src/FormControl/FormControl.js
index 0ede7ca404..c7cb22aeb9 100644
--- a/packages/material-ui/src/FormControl/FormControl.js
+++ b/packages/material-ui/src/FormControl/FormControl.js
@@ -145,6 +145,14 @@ const FormControl = React.forwardRef(function FormControl(props, ref) {
     };
   }

+  const onFilled = React.useCallback(() => {
+    setFilled(true);
+  }, []);
+
+  const onEmpty = React.useCallback(() => {
+    setFilled(false);
+  }, []);
+
   const childContext = {
     adornedStart,
     disabled,
@@ -156,16 +164,8 @@ const FormControl = React.forwardRef(function FormControl(props, ref) {
     onBlur: () => {
       setFocused(false);
     },
-    onEmpty: () => {
-      if (filled) {
-        setFilled(false);
-      }
-    },
-    onFilled: () => {
-      if (!filled) {
-        setFilled(true);
-      }
-    },
+    onEmpty,
+    onFilled,
     onFocus: () => {
       setFocused(true);
     },
diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index d258e5b71d..9cb6c94f43 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -116,6 +116,13 @@ export const styles = theme => {
       '&$disabled': {
         opacity: 1, // Reset iOS opacity
       },
+      '&:-webkit-autofill': {
+        animationDuration: '5000s',
+        animationName: '$auto-fill',
+      },
+    },
+    '<strong i="6">@keyframes</strong> auto-fill': {
+      from: {},
     },
     /* Styles applied to the `input` element if `margin="dense"`. */
     inputMarginDense: {
@@ -239,17 +246,20 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
     }
   }, [muiFormControl, disabled, focused, onBlur]);

+  const onFilled = muiFormControl && muiFormControl.onFilled;
+  const onEmpty = muiFormControl && muiFormControl.onEmpty;
+
   const checkDirty = React.useCallback(
     obj => {
       if (isFilled(obj)) {
-        if (muiFormControl && muiFormControl.onFilled) {
-          muiFormControl.onFilled();
+        if (onFilled) {
+          onFilled();
         }
-      } else if (muiFormControl && muiFormControl.onEmpty) {
-        muiFormControl.onEmpty();
+      } else if (onEmpty) {
+        onEmpty();
       }
     },
-    [muiFormControl],
+    [onFilled, onEmpty],
   );

   useEnhancedEffect(() => {
@@ -311,6 +321,12 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
     }
   };

+  // Check the input state on mount, in case it was filled by the user
+  // or auto filled by the browser before the hydration (for SSR).
+  React.useEffect(() => {
+    checkDirty(inputRef.current);
+  }, []); // eslint-disable-line react-hooks/exhaustive-deps
+
   const handleClick = event => {
     if (inputRef.current && event.currentTarget === event.target) {
       inputRef.current.focus();
@@ -354,6 +370,10 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
     };
   }

+  const handleAutoFill = () => {
+    // Provide a fake value as Chrome might not let you access it for security reasons.
+    checkDirty({ value: 'x' });
+  };
+
   return (
     <div
       className={clsx(
@@ -399,6 +419,7 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
           defaultValue={defaultValue}
           disabled={fcs.disabled}
           id={id}
+          onAnimationStart={handleAutoFill}
           name={name}
           onBlur={handleBlur}
           onChange={handleChange}

рдПрдХ рднрд╛рдЧ https://github.com/tocco/tocco-client/commit/cb3b9b59994380f17c6650ffe4b63f96948072b6 рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ

рдореИрдВрдиреЗ рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЛ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕реИрдВрдбрдмреЙрдХреНрд╕ (рдбреЙрдХреНрд╕ рдкреЗрдЬ) рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдЬрдм рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдпрд╣ рдореБрджреНрджрд╛ рдерд╛:
image


рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдореИрдВ рди рддреЛ https://github.com/mui-org/material-ui/issues/14427#issuecomment -530503051 рдХреЗ рднрд╛рдЧ B рдореЗрдВ рдмрддрд╛рдП рдЧрдП рд╕рдорд╛рди рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдЧрдпрд╛:image

@oliviertassinari @ eps1lon рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ v4.4.3 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреАред рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреИрдЪ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ) рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рд╣реИрдХ рдХреЛ рд╣рдореЗрд╢рд╛ рд╣рдЯрд╛рдП рдЧрдП рд▓реЗрдмрд▓ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ ( InputLabelProps={{ shrink: true }} рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрдХ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдкреБрдЯ рднрд▓реЗ рд╣реА рдЙрдареЗ рдереЗ рдЦреЗрдд рдЦрд╛рд▓реА рдереЗ)ред

@oliviertassinari @ eps1lon
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рд╣реИред рдЬрдм рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рд╣реЛред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдлрд┐рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣рдЯрд╛рдПрдВ, рдлрд┐рд░ рдкреБрди: рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдпрд╛ рдРрд╕рд╛ рд╣реА рдХреБрдЫ) рд▓реЗрдмрд▓ рдЙрднрд░реЗ рд╣реБрдП рд░рд╣реЗрдВ, рднрд▓реЗ рд╣реА рдлрд╝реАрд▓реНрдб рд░рд┐рдХреНрдд рд╣реЛрдВ: -
image
->
image

рдХреНрд░реЛрдо: 77
рдЙрдмрдВрдЯреВ: 18.04

@oliviertassinari @ eps1lon @croraf рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЕрдВрдХ рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

@garygrubb рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрдкрд░реНрдпреБрдХреНрдд рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрддрд╛рдИ рдЧрдИ рд╕реВрдХреНрд╖реНрдо рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

@coraf рд╣рд╛рдВ рдореИрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреНрд░реЛрдо рд╕рдВрд╕реНрдХрд░рдг 76.0.3809.132 (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд┐рд▓реНрдб) (64-рдмрд┐рдЯ) рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореЛрдмрд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдареАрдХ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЯреИрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдореИрдВ рд╕рд╛рде рдЪрд▓ рд╕рдХреВрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорджрдж рдХрд░реЗрдЧрд╛?

diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index 439e8afa7..f0ab8bb66 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -373,6 +373,12 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
   }

   const handleAutoFill = () => {
+    // The change event is correcty triggered when the input is focused.
+    // There is no need to detect autofill.
+    if (fcs.focused) {
+      return;
+    }
+
     // Provide a fake value as Chrome might not let you access it for security reasons.
     checkDirty({ value: 'x' });
   };

@oliviertassinari рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдореБрдИ рдбреЙрдХреНрд╕ рдкреГрд╖реНрда рдкрд░ рд╢реЗрд╖ рдЕрдВрдХ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдорд┐рд▓рд╛ред
рдзреНрдпрд╛рди рджреЗрдВ: рдпрд╣ рд╢реЗрд╖ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рдд рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореВрд▓ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рдерд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЙрдЪреНрдЪ рдкреБрдЬрд╛рд░реАред

  1. рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрдо рд╕реНрдЯреЛрд░ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб) рдмрдирд╛рдПрдВ : 3000
  2. рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░реЗрдВ http: // localhost : 3000 / рдШрдЯрдХ / рдкрд╛рда-рдлрд╝реАрд▓реНрдб # рдЙрд▓реНрд▓рд┐рдЦрд┐рдд
    рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ:
    image

  3. рдИрдореЗрд▓ рдлрд╝реАрд▓реНрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдПрдВ рд▓реЗрдХрд┐рди рдкрд╛рд╕рд╡рд░реНрдб рдЕрднреА рднреА рд╕реНрд╡рдд: рдкреВрд░реНрдг рд╣реИ
    image

  4. рдИрдореЗрд▓ рдлрд╝реАрд▓реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред Chrome рдЖрдкрдХреЛ рдЙрд╕ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рд╕рд╣реЗрдЬреЗ рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдбреНрд░реЙрдкрдбрд╛рдЙрди рджрд┐рдЦрд╛рдПрдЧрд╛ ( localhost:3000 )
  5. рдбреНрд░реЙрдкрдбрд╛рдЙрди рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рд╣реЛрд╡рд░ рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рдЙрд╕рдХрд╛ рдЪрдпрди рди рдХрд░реЗрдВред Chrome рдЖрдкрдХреЛ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрдпрди рдХрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рджрд┐рдЦрд╛рдПрдЧрд╛ред
  6. рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░реЙрдкрдбрд╛рдЙрди рд╕реЗ рджреВрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЖрдкрдХреЛ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдорд┐рд▓реЗрдЧреА:
image

@oliviertassinari рдЖрдкрдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд┐рдХреНрд╕ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рдФрд░ рд╕реНрд╡рд╛рдж рдорд┐рд▓рд╛ рд╣реИ: рдбреА
рдкреНрд░рдЬрдирди рдЪрд░рдг рдКрдкрд░ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрд░рдг 3 рдХреЗ рдмрдЬрд╛рдп рднреА рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ:

  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджреЛрдиреЛрдВ рдлрд╝реАрд▓реНрдб рд╣рдЯрд╛рдПрдВ

рдпрд╣ рдЖрдкрдХреЛ рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдореА рдореБрджреНрджрд╛ рджреЗрдЧрд╛
image

рдпрд╣ рдЖрдкрдХреЛ рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдореА рдореБрджреНрджрд╛ рджреЗрдЧрд╛

@ рдХреНрд░реЙрд╕реНрдлрд╝ рдУрд╣ рдмреЙрдп, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрддреЗ рд╣реБрдП рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ! рд╣рд╛рдБ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index 763ab105c..9dce66f9d 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -86,6 +86,7 @@ export const styles = theme => {
       // Make the flex item shrink with Firefox
       minWidth: 0,
       width: '100%', // Fix IE 11 width issue
+      animationName: '$auto-fill-cancel',
       '&::-webkit-input-placeholder': placeholder,
       '&::-moz-placeholder': placeholder, // Firefox 19+
       '&:-ms-input-placeholder': placeholder, // IE 11
@@ -123,6 +124,9 @@ export const styles = theme => {
     '<strong i="9">@keyframes</strong> auto-fill': {
       from: {},
     },
+    '<strong i="10">@keyframes</strong> auto-fill-cancel': {
+      from: {},
+    },
     /* Styles applied to the `input` element if `margin="dense"`. */
     inputMarginDense: {
       paddingTop: 4 - 1,
@@ -380,9 +384,11 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
     };
   }

-  const handleAutoFill = () => {
+  const handleAutoFill = event => {
     // Provide a fake value as Chrome might not let you access it for security reasons.
-    checkDirty({ value: 'x' });
+    checkDirty(
+      event.animationName.indexOf('auto-fill-cancel') !== -1 ? inputRef.current : { value: 'x' },
+    );
   };

   return (

рд╕реЗ:

4.4.2
Sep-23-2019 22-48-19

4.4.3
Sep-23-2019 22-48-26

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреИрдЪ
Sep-23-2019 22-47-06

@oliviertassinari , @croraf - рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдЙрдореНрдореАрдж рдХреЗ
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрдЧ рдлрд┐рдХреНрд╕ рдореЗрдВ рдЯреИрдЧ рдХрд░реЗрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЭреЗ рдкреЙрдбрдХреНрд╢рди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдорджрдж рдХрд░рдХреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред

рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИред

рдбрд╛рд░реНрдХ рдереАрдо рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

unsupported

@MAkerboom рд╣рдо рд░рдВрдЧ рдХреЛ рдЧрд╣рд░рд╛ рдиреАрд▓рд╛ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

@oliviertassinari рдЬрдм рддрдХ рд░реВрдкрд░реЗрдЦрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдореЗрд░реЗ рд╕рд╛рде рдкрд╛рда рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рдкрд░реАрдд рд╣реИ, рдареАрдХ рд╣реИ

@MAkerboom рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдЖ рд╕рдХрддрд╛ рд╣реВрдВ:

diff --git a/packages/material-ui/src/FilledInput/FilledInput.js b/packages/material-ui/src/FilledInput/FilledInput.js
index 71d0bcc94..4b681cba1 100644
--- a/packages/material-ui/src/FilledInput/FilledInput.js
+++ b/packages/material-ui/src/FilledInput/FilledInput.js
@@ -106,6 +106,12 @@ export const styles = theme => {
     /* Styles applied to the `input` element. */
     input: {
       padding: '27px 12px 10px',
+      '&:-webkit-autofill': {
+        WebkitBoxShadow: theme.palette.type === 'dark' ? '0 0 0 100px #266798 inset' : null,
+        WebkitTextFillColor: theme.palette.type === 'dark' ? '#fff' : null,
+        borderTopLeftRadius: 'inherit',
+        borderTopRightRadius: 'inherit',
+      },
     },
     /* Styles applied to the `input` element if `margin="dense"`. */
     inputMarginDense: {
diff --git a/packages/material-ui/src/OutlinedInput/OutlinedInput.js b/packages/material-ui/src/OutlinedInput/OutlinedInput.js
index f60c4e5d5..376e37ba8 100644
--- a/packages/material-ui/src/OutlinedInput/OutlinedInput.js
+++ b/packages/material-ui/src/OutlinedInput/OutlinedInput.js
@@ -65,6 +65,11 @@ export const styles = theme => {
     /* Styles applied to the `input` element. */
     input: {
       padding: '18.5px 14px',
+      '&:-webkit-autofill': {
+        WebkitBoxShadow: theme.palette.type === 'dark' ? '0 0 0 100px #266798 inset' : null,
+        WebkitTextFillColor: theme.palette.type === 'dark' ? '#fff' : null,
+        borderRadius: theme.shape.borderRadius,
+      },
     },
     /* Styles applied to the `input` element if `margin="dense"`. */
     inputMarginDense: {

рдХрдпрд╛ рдпреЗ рддреБрдорд╣рд╛рд░реЗ рд▓рд┐рдпреЗ рдареАрдХ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? :)

Capture dтАЩe╠Бcran 2019-10-13 a╠А 12 10 55
Capture dтАЩe╠Бcran 2019-10-13 a╠А 12 11 12

рдХрд╛рдлреА рдмреЗрд╣рддрд░! рдзрдиреНрдпрд╡рд╛рджред рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ
test akerboom app_(Pixel 2)

<AutoComplete/> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рдЗрд╕ рдмрдЧ рдХреЛ рджреЗрдЦрд╛ред рдЬрдм рдпрд╣ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рддреЛ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдЗрд╕рдХреЗ рд▓реЗрдмрд▓ рдХреЛ "рд╕рд┐рдХреЛрдбрд╝" рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рджреЗрдЦрд╛ (рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛)ред V4.5.0 рд╕реЗ v4.5.2 рддрдХ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреАрдЖрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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

theme = {
    overrides: {
        MuiInputBase: {
            root: {
                fontFamily: '"Lato", serif',
                "& input": {
                    "&:-webkit-autofill": {
                        transition:
                            "background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s",
                    },
                    "&:-webkit-autofill:focus": {
                        transition:
                            "background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s",
                    },
                    "&:-webkit-autofill:hover": {
                        transition:
                            "background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s",
                    },
                },
            },
        },
    }
}

@armellarcier рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдХрд╕реНрдЯрдо рд░рдВрдЧреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реВрдВрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕рд╣реА рдбреЛрдореЗрди рдирд╛рдо рдкрд░ рд╣реИрдВ, рдлрд┐рд╢рд┐рдВрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ (рдЕрдиреНрдпрдерд╛ рдСрдЯреЛрдлрд╝рд┐рд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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