Material-ui: рдЙрддреНрдкрд╛рджрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг - рд╡рд░реНрдЧ рдирд╛рдо рд╕рдВрдШрд░реНрд╖

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рд╕рд┐рддре░ 2017  ┬╖  62рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mui-org/material-ui


рд╕реАрдПрд╕рдПрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдирд╛рдо рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕реЗ) MuiIconButton рдФрд░ MuiModal - рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ

  • [x] рдореИрдВрдиреЗ рдЗрд╕ рднрдВрдбрд╛рд░ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рдЦреЛрдЬрд╛ рд╣реИ рдФрд░ рдпрд╣ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреЛрдИ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рд╣реИред

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдореЛрдВ рдХреА рдирдХрд▓ рдирд╣реАрдВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░

рдореЗрд░реА рдмрдЯрди рд╢реИрд▓рд┐рдпреЛрдВ:
classnames_conflict
рдХрдХреНрд╖рд╛ рдореЗрдВ рдирдХрд▓ рдХреА рдЬрд╛рддреА рд╣реИред
рд╢реИрд▓рд┐рдпрд╛рдБ рдкрд░рд┐рднрд╛рд╖рд╛:
classnames_conflit_2

рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:
рдореЗрд░реА рдмрдЯрди рд╢реИрд▓рд┐рдпреЛрдВ:
development_class

рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдорд┐рд▓реАрдВ:
mui-icon-button-dev

рдФрд░ рдореЛрдбрд▓ рд╕реЗ:
mui-modal-dev

рдкреНрд░рдЬрдирди рдХреЗ рд▓рд┐рдП рдХрджрдо (рдмрдЧ рдХреЗ рд▓рд┐рдП)

рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдкреНрд░рд╕рдВрдЧ


рдореИрдВ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЖрдкрдХрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг

| рдЯреЗрдХ | рд╕рдВрд╕реНрдХрд░рдг |
| -------------- | --------- |
| рд╕рд╛рдордЧреНрд░реА- UI | 1.0.0-Beta.10 |
| рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ | 15.6.1 |
| рдмреНрд░рд╛рдЙрдЬрд╝рд░ | рдХреЛрдИ рднреА |
| рд╡реЗрдмрдкреИрдХ | ^ 3.3.0 |

рдореБрдЭреЗ рдХреБрдЫ рд╕рдВрдХреЗрдд рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдореИрдВ рдХрд╣реАрдВ рднреА withStyles рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдореИрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рдЗрд▓ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

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

рдореЗрд░реЗ рдкрд╛рд╕ рдЯрдХрд░рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдирд╛рдо рдереЗ рдФрд░ createGenerateClassName рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдпрд╣рд╛рдБ рдорд╣рд╛рди, рд╡реНрдпрд╛рдкрдХ рдбреЙрдХреНрдЯрд░

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

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреБрдЫ рдореБрджреНрджрд╛ рджреЗрдЦрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯреЗрдб рдХреНрд▓рд╛рд╕рдирд╛рдо рдЬрдирд░реЗрдЯрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдерд╛ред рдореИрдВ рдкреНрд░рдЬрдирди рдХреЗ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдПрдХ рдкреНрд░рдЬрдирди рдЙрджрд╛рд╣рд░рдг рд╣реИред

@oliviertassinari I рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдпрд╣рд╛рдБ рд╡реЗрдмрдкреИрдХ рдмрд┐рди рд╣реИ - https://www.webpackbin.com/bins/-KuO6ia3h-JDpBOJncZ3

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ 2 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░реВрдЯреНрд╕ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рд╡ рдореЗрдВ рдШреБрдбрд╝рд╕рд╡рд╛рд░ рд╣реИрдВред рджреЛрдиреЛрдВ _jss_ рд╕реЗ insertionPoint рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JssProvider рд╕рд╛рде рд▓рд┐рдкрдЯреЗ рд╕рдорд╛рди рд╕рд╛рдордЧреНрд░реА-рдпреВ ThemeProvider рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

generate_classnames_counter

createGenerateClassName рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЕрджреНрд╡рд┐рддреАрдп рд╡рд░реНрдЧ рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

export default function createGenerateClassName(): generateClassName {
  let ruleCounter = 0;

  return (rule: Rule, sheet?: StyleSheet): string => {
    ruleCounter += 1;
    warning(
      ruleCounter < 1e10,
      [
        'Material-UI: you might have a memory leak.',
        'The ruleCounter is not supposed to grow that much.',
      ].join(''),
    );

    if (process.env.NODE_ENV === 'production') {
      return `c${ruleCounter}`;
    }

    if (sheet && sheet.options.meta) {
      return `${sheet.options.meta}-${rule.key}-${ruleCounter}`;
    }

    return `${rule.key}-${ruleCounter}`;
  };
}

рдФрд░ рдореЗрд░рд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ рдорджрдж рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВ рдЕрднреА рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@darkowic рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЕрднрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╛рд▓реЗ рдкреЗрдбрд╝реЛрдВ рдХреЗ рдмреАрдЪ jss рдЙрджрд╛рд╣рд░рдг рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@oliviertassinari рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо ThemeProvider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

  <JssProvider registry={context.sheetsRegistry} jss={context.jss}>
    <MuiThemeProvider
      theme={context.theme}
      sheetManage={context.sheetsManager}
      {...props}
    />
  </JssProvider>

рдореИрдВ рдЕрдкрдиреА рд╣рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреЗрдбрд╝ рд╕реЗ рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрд╝рд░реВрд░, рдЪрд▓рд┐рдП рд╣рдо рдЕрдм рддрдХ рдЬреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЙрд╕реЗ рд╕рдореЗрдЯрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рд╣реА рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред Jss рдкреНрд░рджрд╛рддрд╛ рджреЛ рд╡рд░реНрдЧ рдирд╛рдо рдЬрдирд░реЗрдЯрд░ рдмрдирд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреЗрдбрд╝ рдХреЗ рд▓рд┐рдП рдПрдХред рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд░реНрдЧ рдирд╛рдо рд╕рдВрдШрд░реНрд╖ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред
@kof рд╣рдореЗрдВ рд╡рд░реНрдЧ рдирд╛рдо рдЬрдирд░реЗрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП react-jss рд╕реЗ JssProvider рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВ: рдЖрдк рдЕрдкрдирд╛ createGenerateClassName рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд░реИрдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ ruleCounter рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

import warning from 'warning';

// Returns a function which generates unique class names based on counters.
// When new generator function is created, rule counter is reset.
// We need to reset the rule counter for SSR for each request.
//
// It's an improved version of
// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js
//
// Copied from material-ui due to issue https://github.com/callemall/material-ui/issues/8223

// This counter is moved outside from `createGenerateClassName` to solve the issue
let ruleCounter = 0;

export default function createGenerateClassName() {
  return (rule, sheet) => {
    ruleCounter += 1;
    warning(
      ruleCounter < 1e10,
      [
        'Material-UI: you might have a memory leak.',
        'The ruleCounter is not supposed to grow that much.'
      ].join('')
    );

    if (process.env.NODE_ENV === 'production') {
      return `c${ruleCounter}`;
    }

    if (sheet && sheet.options.meta) {
      return `${sheet.options.meta}-${rule.key}-${ruleCounter}`;
    }

    return `${rule.key}-${ruleCounter}`;
  };
}

рдПрдХ рдЕрдЪреНрдЫрд╛, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдерд╛ рдФрд░ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдмреЛрд▓реНрдб рд╕рдВрдХреЗрдд рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рдерд╛ - рджреЗрдЦреЗрдВ 5

рд▓реЗрдХрд┐рди рдЕрдм рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2 рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдорд┐рд▓рд╛ред

рдЕрдЧрд░ рдХрдИ рд╕рдорд╛рдирд╛рдВрддрд░ JssProviders рдХреА рдордЬрдмреВрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЕрдиреБрд╕рдВрдзрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд╣рд╛рдБ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@ рдХреЙрдлрд╝ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдХрдИ рд╕рдорд╛рдирд╛рдВрддрд░ JssProviders рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдорд┐рд▓рд╛ рд╣реИред рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ :)ред

рдЖрд╡рд░рдг рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдмрд╛рд╣рд░ рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░, рд░реВрдХрд╛рд╡рдЯ рдХрднреА рднреА рд░реАрд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрдЧреАред рд╣рдо рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░, JssProviders рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЯреНрд░реА (рдордЬрдмреВрдд рдЖрд╡рд╢реНрдпрдХрддрд╛) рдХреЗ рд╕рдорд╡рд░реНрддреА async рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд░реНрдерд┐рдд рдмрдирд╛рддрд╛ рд╣реИ :)

@darkowic рдиреЗ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд┐рд╕рдХрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдЯреИрдХ рддрдХ рдХреЛрдИ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реИред рд╣рдо рдХрд░ред рд╣рдо рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ рд╡рд░реНрдЧ рдирд╛рдо рдЬрдирд░реЗрдЯрд░ рдЙрджрд╛рд╣рд░рдг рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ред

рдПрдХ рд╣реА рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рднреА рдЕрдиреБрд░реЛрдз рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

@kof рдХреНрдпрд╛ рд╣рдореЗрдВ рдХреНрд▓рд╛рд╕ рдирд╛рдо рдХреЗ рдЬреЗрдирд░реЗрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-Jss рд╕реЗ JssProvider рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

  1. рд╣рд╛рдБ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ JssProvider рдЗрд╕ рддрд░рд╣ рд╡рд░реНрдЧ рдирд╛рдо рдЬрдирд░реЗрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗ:

import {createGenerateClassName} from 'react-jss'

const generateClassName = createGenerateClassName()

<JssProvider generateClassName={generateClassName}>
  <App1 />
</JssProvider>

<JssProvider generateClassName={generateClassName}>
  <App2 />
</JssProvider>

  1. рдПрдХ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рдХреБрдЫ рдЙрдкрд╕рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд╛рдоред рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╣рдо рдпрд╣ рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИрдВред

<JssProvider classNamePrefix="app-1">
  <App1 />
</JssProvider>

<JssProvider classNamePrefix="app-2">
  <App2 />
</JssProvider>

рдкреНрд░реЛ 1:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрдкрд╕рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

рдкреНрд░реЛ 2:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ DOM рд╡рд░реНрдЧ рдХреЗ рдирд╛рдореЛрдВ рдореЗрдВ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдРрдк рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ
  • рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рд╣реИред
  • рдПрдХ рдЧреИрд░-рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рдЙрдкрд╕рд░реНрдЧ рд╣реЛрдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реИред рдпрд╛ рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдФрд░ рдирд╛рдордХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ рдпрд╛ рдЖрдк рдЙрди рдирд╛рдореЛрдВ рдореЗрдВ рдЕрдкрдирд╛ рдирдВрдмрд░ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ classNamePrefix рдФрд░ generateClassName ред рдкрд╣рд▓реА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░реА рдХрдХреНрд╖рд╛ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдПред

рдореИрдВ https://github.com/facebookincubator/create-react-app/issues/3173 (рдФрд░ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдХрдо рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рднрд╛рдЧрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕рд╛рдордЧреНрд░реА рдпреВрдЖрдИ-рдирд┐рд░реНрднрд░ рдШрдЯрдХ (v1.0.0-Beta.11) рдХреЛ рдПрдХ рдРрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ (рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг) рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдореЗрдВ, рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рдХреЗ рдХрд╛рд░рдг рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ "рдПрдХрд╛рдзрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкреЗрдбрд╝" рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд░реНрд╣рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ createGenerateClassName() var ruleCounter = 0; рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реБрдП, _did_ рдХрд╛рдо рдХрд░реЗрдВ:

https://github.com/callemall/material-ui/blob/2361339fd6df9bfbb85ed2ee4da9d42ee6fee71c/src/styles/createGenerateClassName.js#L26 -L28

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ # 7855. I рдХреЗ рдЦреБрд▓рдиреЗ рдХреЗ рд╕рдордп рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджреЗ рд╕рдХрд╛
рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдореВрд▓ рд░реВрдк рд╕реЗ рдЙрд╕ рдореБрджреНрджреЗ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрддреНрдкрд╛рджрди рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдерд╛ред

рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб?

рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛, рдЬреЛ рдЗрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЬреЗрдбрдПрд╕рдПрд╕ рдореЗрдВ рддрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП https://github.com/cssinjs/react-jss/pull/155

рддреЛ рдЪрд▓рд┐рдП рдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

  • @darkowic рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рдореВрд▓ рдХрд╛рд░рдг рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╣реИ: https://github.com/callemall/material-ui/issues/8223#issuecomment -331076580 рдФрд░ @kof рдХреЗ рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: cssinjs / reaction-jss # 155 рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдЪреЗрддрд╛рд╡рдиреА рдЬреЛрдбрд╝реА рдЬрд╛рдПрдЧреА: # 8341ред

  • @tlvince рдХреЗ рдореБрджреНрджреЗ рд▓рдХреНрд╖рдг рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рдХрд╛рд░рдг рдЕрд▓рдЧ рд╣реИред рдЖрдк рдПрдХрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реЗрдВрдбрд░ рдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдордЯреЗрд░рд┐рдпрд▓-рдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдкрдиреА рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

  • @ рд░реЛрдмреЛрдлрд┐рд▓ рдХрд╛ рдореБрджреНрджрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдЯрдХрд░рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдирд╛рдо рдереЗ рдФрд░ createGenerateClassName рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдпрд╣рд╛рдБ рдорд╣рд╛рди, рд╡реНрдпрд╛рдкрдХ рдбреЙрдХреНрдЯрд░

рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рд▓рд┐рдП @oliviertassinari рдзрдиреНрдпрд╡рд╛рдж!

рдПрдХрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реЗрдВрдбрд░ рдЯреНрд░реА рдореЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдкрдХреЗ рдмрд┐рд▓реНрдб рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред рдЕрдкрдиреЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдкреЗрдбрд╝ рдХреА рдЬрд╛рдВрдЪ рдФрд░ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

yarn list | grep material-ui

рдореЗрд░рд╛ рд╡реЗрдмрдкреИрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ

module.exports = {
    entry: {
        FirstComp: path.join(paths.JS, '/components/FirstComponent/MyFirstComp.js'),
        SecondComp: path.join(paths.JS, '/components/SecondComponent/MySecondComp.js'),
    },
}

рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рджреЛ рдШрдЯрдХ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХ рд╣реИ рдЬреЛ рд╡рд┐рднрд╛рдЬрди рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдВрдиреЗ JSSProvider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ MyFirstComp рдФрд░ MySecondComp рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдШрдЯрдХ рдХреЛ рд▓рдкреЗрдЯрд╛ред
рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдХ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ JSSProvider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@ рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдХреНрд▓рд╛рд╕рдиреЗрдо рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд▓ рдореЗрд░реЗ рдРрдк рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рд╣реБрдХ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╢реБрд░реВ рдХрд░ рджрд┐рдП рдереЗ ред рдпреВ-рд╕реНрдЯрд╛рдЗрд▓ / рд╕реНрдЯрд╛рдЗрд▓ рд╕реЗ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВ "@ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ / рдХреЛрд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬреЛ 3.6.0 рдкрд░ рд╣реИ

рдЕрдЪрд╛рдирдХ рдореЗрд░реА рдРрдк рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдПрдВ рджреЛрдиреЛрдВ рдХреЛ рдЬреЗрдПрд╕ 1 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЧрд┐рдирддреА рд╣реБрдИред рд╡рд╣ рд╕рдм рдХреБрдЫ рдорд┐рд▓рд╛ рджреЗрдЧрд╛ред Jss5 рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╣реИрдбрд░ рднреА MuiListItem рдХрд╣рддреЗ рд╣реИрдВ рдХреА jss5 рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж https://github.com/mui-org/material-ui/issues/8223#issuecomment рдореБрдИ-рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд░реНрдЧреЛрдВ @iamhosseindhv рджреНрд╡рд╛рд░рд╛ -рекрезреирейрекрепрелремреп рдПрд╕реА рдХреЗ рд╕рд╛рде рдЙрдкрд╕рд░реНрдЧ рдЧрдпрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@christiaanwesterbeek рдХреНрдпрд╛ рдЖрдк рд╕рдВрд╕реНрдерд╛рдкрди рдЪрд░рдг рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╣рдо рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред install() рдХреЙрд▓ рдХреЛ рд╕рднреА рдЙрдЪреНрдЪ рдЖрджреЗрд╢ рдШрдЯрдХ рдЖрдпрд╛рддреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@oliviertassinari рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдХрджрдо рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ install() рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛рдБ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдБ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИред

@christiaanwesterbeek рдореИрдВ https://material-ui.com/css-in-js/basics/#migration -for-material-ui-core-users рдХреА рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

@oliviertassinari рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ install() рдХреЛ рд╣рд░ рдШрдЯрдХ рдХреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рд╢рд╛рдпрдж рд╣рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ, рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
To switch from the default style implementation to this newest version, you need to execute the following code before importing any Material-UI's components:

import { install } from '@material-ui/styles';

install();

@oliviertassinari рдЗрд╕реЗ before importing any Material-UI's components рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ?
рдЖрдпрд╛рдд рд╣рдореЗрд╢рд╛ рдмреЗрдмрд▓ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ tsc рдХрд░рддрд╛ рд╣реИ

@ рдЬрд╝реЗрд╣реЗрдЗрдВрдЧ рдИрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдлрд╣рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рдХреНрд░рдо рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдорд╛рдзрд╛рди рд╕рдм рдХреБрдЫ bootstrap.js рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдерд╛:
https://github.com/mui-org/material-ui/blob/cb30b43e9c6cd49f9b16536a125456f5a3a85c5/docs/src/mrcules/compenders/bootstrap.js#L1 -L13 -L13
рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЪрд░реНрдЪрд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдкрд░ рд▓реЗ рдЬрд╛рдПрдВред

@oliviertassinari I рд╕реЗ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рдЖрдпрд╛

// entry index.js
import * as React from 'react'
import * as ReactDOM from 'react-dom'
import CssBaseline from '@material-ui/core/CssBaseline'
import { install } from '@material-ui/styles'

рд╕реЗрд╡рд╛

import * as React from 'react'
import * as ReactDOM from 'react-dom'
import { install } from '@material-ui/styles'
import CssBaseline from '@material-ui/core/CssBaseline'

рдХреЛрдб рддреНрд░реБрдЯрд┐ Cannot read property 'text' of undefined ред рд╡рд┐рд╖рдп рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдХреЗ, рдпрд╣ рдЦрд╛рд▓реА рд╣реИред
рдпрджрд┐ рдореИрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рднрд╛рдЧ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

const useStyles = makeStyles(
  (theme: Theme) => ({
    root: {
      flexShrink: 0,
      color: theme.palette.text.secondary,
    },
  }),
)

рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдореИрдВ <StylesProvider> рд╕рд╛рде рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВ

@zheeeng

рдХреЛрдб рддреНрд░реБрдЯрд┐ Cannot read property 'text' of undefined ред рд╡рд┐рд╖рдп рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдХреЗ, рдпрд╣ рдЦрд╛рд▓реА рд╣реИред

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдЗрд╕реЗ рдпрд╛ рддреЛ "@ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ / рдХреЛрд░" рдХреЛ 3.6.0 рдпрд╛ @ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ / рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ 3.0.0-рдЕрд▓реНрдлрд╛ 1 рд╣реИред рдореИрдВ рдЬреЛ рднреВрд▓ рдЧрдпрд╛ред рдмреЗрд╣рддрд░ рд╣реИ рджреЛрдиреЛрдВ рдХрд░реЗрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдЯреАрдХ рд╡рд┐рд╖рдп рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдХ рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рд╣реБрдЖ рдерд╛, рд╡рд╣ рдереАрдо рдирд╣реАрдВ рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ createMuiTheme рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╖рдп рдорд┐рд▓рд╛ред рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рдХрд┐рдпрд╛ рд╡рд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЬреЛ рднреА рд╡рд┐рд╖рдп рдкрд╛рд╕ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ рд╣рд░ рдлрд╛рдЗрд▓ рдореЗрдВ рдереАрдо рдЖрдпрд╛рдд рдХреА рдЬрд┐рд╕реЗ рд╢реИрд▓рд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред

@christiaanwesterbeek рдореИрдВрдиреЗ @material-ui/[email protected] рдФрд░ @material-ui/styles/.0.0-alpha.2 рдФрд░ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИред

рдпрд╣ рд╣рд╛рде рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ (8223) рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рд╡реИрд╕реЗ рднреА рдЬрд╛рддрд╛ рд╣реИред рдмрд╕ рдереАрдо рдЖрдпрд╛рдд рдХрд░реЗрдВ рдФрд░ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдЖрдк makeStyles ред рдФрд░ рдЖрдкрдиреЗ рдХрд▓ рд▓рд┐рдпрд╛ред

рдХреНрдпрд╛ рдХреЛрдИ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рднреА v3.7.0 (https://github.com/mui-org/material-ui/releases/tag/v3.7.0) рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯреЙрд▓ рд╕реНрдЯреЗрдк рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ

@christiaanwesterbeek рд╣рд╛рдБ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╣рдо рд╕рд╛рдордЧреНрд░реА-UI v4 рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЪрд░рдг рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗред

@oliviertassinari рд╣реЗ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирд╡реАрдирддрдо withStyles core рд░рд╣рд╛ рд╣реВрдВ, рдореЗрд░реЗ рджреЛ рдкреНрд░рд╢реНрди рд╣реИрдВ ред

  1. рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрдм mui / рд╕реНрдЯрд╛рдЗрд▓ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ v4 рд░рд┐рд▓реАрдЬрд╝ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред (рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдРрдк)
  2. рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ https://github.com/mui-org/material-ui/issues/8223#issuecomment -331081785 рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рд╣реИ? рдпрд╣ рдЕрдВрдд рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдирд╡реАрдирддрдо v3.9.0 рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

@ w3nda рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рд▓рд╛рдЦ рдЕрд▓рдЧ рдХрд╛рд░рдг рд╣реИред

рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрдм mui / рд╕реНрдЯрд╛рдЗрд▓ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ v4 рд░рд┐рд▓реАрдЬрд╝ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред (рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдРрдк)

рд╣рдо classname рд╣реИрд╢рд┐рдВрдЧ рддрд░реНрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЗрд╕рдХреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд╛рдЧрдд рд╣реЛрддреА рд╣реИред рд╢рд╛рдпрдж рд╣рдо рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдзреНрд╡рдЬ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред рддреЛ рдирд╣реАрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд░ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдкреГрд╖реНрда рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ https://material-ui.com/guides/server-rendering/#troublesourcing ?

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

@ w3nda рд╕реНрдЯреЗрдЯрд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдЖрдкрдХреЛ HTML рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛рдЙрдВрдЯрд░ рджреЛ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмреАрдЪ рд▓реАрдХ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрдХреНрд╖рд╛ рдХрд╛ рдирд╛рдо рд╕рд╣реА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЦреИрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдзреАрдореА рд╢реНрд░реЗрдгреА рдХрд╛ рдирд╛рдо рдЬрдирд░реЗрдЯрд░ рджрд░реНрдж рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЯреНрд░реЗрдбрдСрдлрд╝ рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ (рдФрд░ рдпрд╣ рдХрд┐рддрдиреА рдмрд╛рд░ рд╣реИ)ред рддреЛ, рд╣рд╛рдБ, рдЖрдк @material-ui/styles рдЕрдкрдЧреНрд░реЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рд╕рд░рд▓ рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рд╣реИред

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

рдирдорд╕реНрддреЗ, рдореИрдВ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдЗрдирдкреБрдЯ, рдмрдЯрди рдФрд░ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рдж <JssProvider /> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ https://github.com/mui-org/material-ui/issues / 8223 # рдЬрд╛рд░реАрдХрд░рдг -331412432

рдпрд╣ рдЗрд╕ jss рдкреНрд░рджрд╛рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдФрд░ рдлрд┐рдХреНрд╕ рд╣реИ рдЬреЛ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдЕрдВрддрд┐рдо рдмрд┐рд▓реНрдб рд╕рд╛рдЗрдЬрд╝ рдХреЛ рдирд╣реАрдВ рдмрдврд╝рд╛рдПрдЧрд╛?

@kopax рдХреНрдпрд╛ рдЖрдк JssProvider рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд╣рд╛рдп @oliviertassinari , рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ production (рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ):

image

production рдХрд┐рд╕реА рд░реВрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╛ development

image

рдпрд╣рд╛рдБ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдлреЙрд░реНрдо (рдЕрдЬреАрдм рдмреЙрдХреНрд╕ рдЫрд╛рдпрд╛) рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЙрдЪрд┐рдд рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИ:

image

рдпрджрд┐ рд╣рдо JssProvider рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рджреЛрдиреЛрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рддрдп рд╣реЛ рдЧрдИ рд╣реИрдВред (рдирд┐рд╢реНрдЪрд┐рдд: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ production development рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдорд╛рди css рд╣реИ)

рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рджреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╕рдм рдХреБрдЫ рднреА рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЧрд▓рдд рдХреНрд░рдо jssXX рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЧрд▓рдд рд╕реНрдЯрд╛рдЗрд▓ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдкреЗрдЬ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реЛрддрд╛ рд╣реИред

рдЕрднреА рддрдХ рдХрд╛рд░рдг рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред

@oliviertassinari рд╢рд╛рдпрдж рдЙрди рд╡рд░реНрдЬрди рдирдВрдмрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛[email protected] рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП

        "@material-ui/core": "^1.4.0",
        "@material-ui/icons": "^1.0.0",
        "material-ui-chip-input": "1.0.0-beta.6 - 1.0.0-beta.8",

рдХреНрдпрд╛ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдмрдВрдбрд▓ рдХрд┐рдпрд╛

рдХреБрдВрдЖред рдпрд╣ рд╕рдВрднрд╡ рд╣реИред рд╣рдо react-admin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рд╣реИ ~ 1.5ред

рдореИрдВрдиреЗ JssProvider рдЬреЛрдбрд╝рдХрд░ рдЙрддреНрдкрд╛рджрди рдкрд░ рдмрдЧ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдЕрдм рдореИрдВ рдкреГрд╖реНрда рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

import React from "react";
import { Admin, Resource } from "react-admin";
import JssProvider from "react-jss/lib/JssProvider";

const App = () => (
  <JssProvider>
    <Admin dataProvider={dataProvider}>
      <Resource name="trip" list={RequestsList} className="resourceItem" />
    </Admin>
  </JssProvider>
);

export default App;

@andrewkslv рдпрд╣ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдЗрд╕реЗ JssProvider рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ @ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕реЗ Input рдФрд░ Button рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд▓рд┐рдП рдмрд╛рдХреА ui рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред

@oliviertassinari рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЬрд╛рдБрдЪ рдХреА рд╣реИ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд╣реИрдВред рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд npm ls @material-ui/core рд╕рд╛рде рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ:

тФЬтФАтФм @bootstrap-styled/[email protected]
тФВ тФФтФАтФА @material-ui/[email protected] 
тФЬтФАтФА @material-ui/[email protected] 
тФФтФАтФм [email protected]
  тФФтФАтФА @material-ui/[email protected] 

рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:

rm -rf node_modules/@bootstrap-styled/ra-ui/node_modules/@material-ui/
rm -rf node_modules/ra-ui-materialui/node_modules/@material-ui/
npm ls @material-ui/core
тФЬтФАтФм @bootstrap-styled/[email protected]
тФВ тФФтФАтФА UNMET DEPENDENCY @material-ui/[email protected] 
тФЬтФАтФА @material-ui/[email protected] 
тФФтФАтФм [email protected]
  тФФтФАтФА UNMET DEPENDENCY @material-ui/[email protected] 

рдлрд┐рд░ рдЕрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХреЛрдИ рд╕реАрдПрд╕рдПрд╕ рдореБрджреНрджрд╛ рдирд╣реАрдВ)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ...

рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ @ рд╕рд╛рдордЧреНрд░реА-рдЙрдИ рдирд┐рд░реНрднрд░рддрд╛:

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

@kopax рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдореИрдВ рдХреБрдЫ рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдпрд╣ рдЕрдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде рд╕реНрдЯрд╛рдЗрд▓-рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рд╣реИ, рддреЛ рдореБрдЭреЗ Gitter рдкрд░ рдПрдХреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреИрдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реЛрдЧрд╛ред

рдХрд╛рдо рдХрд░ рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдРрд╕реЗ рдХрд╛рд░реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ npm рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ред

рд╣рдореЗрдВ рд╕реЛрдорд╡рд╛рд░ рдХреЛ рдореМрдХрд╛ рдорд┐рд▓реЗрдЧрд╛, рдореИрдВ рдореБрдИ рдЧрдЯрд░ рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝реВрдВрдЧрд╛ред

рд╣рд╛рдп @ kopax , рдЖрдк рдПрдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдерд╛?

рдирд╣реАрдВ рдЕрднреА рддрдХ рдирд╣реАрдВред рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВред @oliviertassinari рдореИрдВ

@andrewkslv рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдореИрдВ react-admin рдФрд░ AWS рдПрдореНрдкрд▓реАрдлрд╛рдп рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХрднреА рднреА рдореИрдВ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ S3 рдмрд╛рд▓реНрдЯреА рдореЗрдВ рддреИрдирд╛рдд рдХрд░реВрдВрдЧрд╛, рд╢реИрд▓реА рд╕рднреА рдЯреВрдЯ рдЬрд╛рдПрдЧреА, рдФрд░ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛ред

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдпрд╣рд╛рдБред рдХреНрдпреЛрдВ JssProvider рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ?

рдореИрдВрдиреЗ v4 рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдЬреЛрдбрд╝ рджреА рд╣реИ рдЬрдм рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рд╣реИ рдХрд┐ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╢реИрд▓реА рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: # 15422ред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ react-admin рдореЗрдВ рдЙрдард╛рдпрд╛ рдЬрдм рд╡реЗ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдпреВрдЖрдИ рдХреЗ рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рдереЗ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

https://github.com/marmelab/react-admin/pull/3102#issuecomment -48322222020

рдореИрдВ рдЙрддреНрдкрд╛рджрди рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХрд╣рд╛рдВ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ - рдХреНрд▓рд╛рд╕рдиреЗрдо рдХрд╛ рд╡рд┐рд░реЛрдз # 8223?

рдзрдиреНрдпрд╡рд╛рдж,

@oliviertassinari рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛, рднрд▓реЗ рд╣реА рдореИрдВрдиреЗ рд╕рднреА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реЛред рдЪреВрдВрдХрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИред

https://stackoverflow.com/questions/58938080/jssprovider-not-generating-class-prefix-with-classnameprefix

рдореИрдВ рд╕рдВрдХреБрд▓ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

"@ рд╕рд╛рдордЧреНрд░реА-рдЙрдИ / рдХреЛрд░": "^ 4.6.1",
"@ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ / рдЖрдЗрдХрди": "^ 4.5.1",
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛": "^ 16.12.0",
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдбреЛрдо": "^ 16.12.0",
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдЬреЗрдбрдПрд╕": "^ 10.0.0",
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╕реНрдХреНрд░рд┐рдкреНрдЯ": "3.2.0"

рдЕрджреНрдпрддрди: рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЗрд╕ рднрд╛рдЧ рдиреЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреАред

https://material-ui.com/styles/api/#creategenerateclassname-options- рд╡рд░реНрдЧ-рдирд╛рдо-рдЬрдирд░реЗрдЯрд░

рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣, JSSProvider рд╕рдорд╛рдзрд╛рди рдЬреЛ рдЕрдиреНрдп рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рд╡реИрд╕реЗ рднреА, рдзрдиреНрдпрд╡рд╛рдж :)

рдзрдиреНрдпрд╡рд╛рдж @KannugoPrithvi , рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ! https://material-ui.com/styles/api/#creategenerateclassname-options- рд╡рд░реНрдЧ-рдирд╛рдо-рдЬрдирд░реЗрдЯрд░

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

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

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

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

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

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

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