Storybook: рдПрдХрд▓ рдХрд╣рд╛рдирд┐рдпрд╛рдБ рд╣рд░ рджреВрд╕рд░реА рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдЦреАрдВрдЪ рд░рд╣реА рд╣реИрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдорд╛рд░реНрдЪ 2017  ┬╖  67рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: storybookjs/storybook

рдирдорд╕реНрддреЗ,

рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рд╣реИред рдореИрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╣рд╛рдирд┐рдпрд╛рдБ рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

function loadStories() {
    const req = require.context('../components', true, /story.js$/);
    req.keys().forEach(filename => req(filename));
}
configure(loadStories, module);

рдФрд░ рдкреНрд░рддреНрдпреЗрдХ story.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд sass рдпрд╛ css рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХрд╣рд╛рдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЬреЛ рдШрдЯрдХ рдХреЗ рдмрд╛рд╣рд░ рд╣реИ рдХрд┐ story.js рдЖрдпрд╛рдд рд╣реЛрдЧрд╛, рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

import './story.sass';

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рд▓рдЧрднрдЧ 4 рдХрд╣рд╛рдирд┐рдпрд╛рдБ рд╣реИрдВ рдФрд░ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдХрд╣рд╛рдиреА рдХрд╛ рд╕реНрд░реЛрдд рд╣реИ iframe ... рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рд▓реЛрдб рдХрд░рдирд╛:

screen shot 2017-03-21 at 9 56 22 am

рдХреНрдпрд╛ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ ...?

-

рдбреЗрдореЛ

https://github.com/moimikey/729-single-stories-pulling-all-stylesheets

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

рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдЫрд╛рдпрд╛ рдХреА рдЬрдбрд╝ рдбрд╛рд▓рдХрд░ @ndelangen рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рддреБрд░рдВрдд рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗрдмрдкреИрдХ рдЙрди рд╕рднреА рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╡реЗрдмрдкреИрдХ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ?

screen shot 2017-03-21 at 11 27 10 am

рдореИрдВрдиреЗ рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдпрд╣ рдЖрдзреЗ рдЯреВрдЯреЗ рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЛ рдХрд╣рд╛рдиреА рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рджреВрд╕рд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рдЙрди рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рддрдм рддрдХ рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдПрдХ рдХрдард┐рди рддрд╛рдЬрд╝рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред

.addDecorator((getStory) => {
  require('./story.sass');
  return getStory();
})

@arunoda @mnmtanish

рджрд┐рд▓рдЪрд╕реНрдк !, рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд░реЗрдкреЛ рд╣реИ рдЬреЛ рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ?

@ndelangen рдЬрд▓реНрдж рд╣реА рдПрдХ рдмрдирд╛ рджреЗрдЧрд╛

рдЕрднреА рднреА рдЗрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ ..

рдзрдиреНрдпрд╡рд╛рдж; рдбреА рдпрд╣ рдПрдХ рдЕрдЬреАрдм рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд░реВрдк рджрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВред

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

рд▓реЗрдХрд┐рди рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ?

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

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

рдпрд╣ рд╕рдЪ рд╣реИред рдореИрдВ рдФрд░ рдореЗрд░реА рдХрдВрдкрдиреА) рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд╕рд╛рде рд╕реНрдХреВрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдХреЛрдб рдкреБрдирд░реНрд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╛рдЭрд╛ рд╢реИрд▓реА рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ styleName рдФрд░ className рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИред рддреЛ рдХреНрдпрд╛ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдВрдд рдореЗрдВ "рдмрд╛рд╣рд░реА" рд╕реАрдПрд╕рдПрд╕ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред

рдореИрдВ рдЖрдЬ рд░рд╛рдд рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЛрдб рдкрд░ рдлрд┐рд░ рд╕реЗ рдЧреМрд░ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдмрд┐рдпрд░ рдереЗ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмреБрджреНрдзрд┐рдорд╛рдиред

рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП @moimikey рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрдЯрд╛рдЗрд▓-рд▓реЛрдбрд░ рдФрд░ рд▓реЛрдб рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╢рд╛рдпрдж:

.addDecorator(getStory => (
  <div>
    <link ... />
    {getStory()}
  </div>
))

рд╡рд╛рд╣ .... рдХрд┐ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рд╕реЗ рдХрднреА рдирд╣реАрдВ рдкрд╛рд░ ... рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред

ick рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ sass ... x_x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред рдореИрдВ рднреА рдПрдХ рдЗрдирд▓рд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЬреНрдпрд╛рджрд╛ рднрд╛рдЧреНрдп рдирд╣реАрдВ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реАрдзреЗ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ :)

рдЗрд╕рд▓рд┐рдП @ рдордорддрд╛рдирд┐рд╢рд╛рдиред рдЖрдкрдХреЗ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдЖрдкрдХреА рдкреНрд░реЗрд░рдгрд╛ рд╕реЗ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреА рд╣реИ:

.addDecorator((getStory) => {
  require('./story.sass');
  return getStory();
})

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

рд╢рд╛рдпрдж рд╕реНрдЯрд╛рдЗрд▓ рд▓реЛрдбрд░ рдХреЛ HEAD рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╣реАрдВ рдФрд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдореИрдВрдиреЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рднреА рд╣реИред рдЗрдирдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

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

рдХреНрдпрд╛ рдпрд╣ https://github.com/storybooks/react-storybook/issues/686 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ

@ConneXNL рдиреЗ рд╣рд╛рдБред рдЕрдЪреНрдЫреА рдмрд╛рддред рдпрд╣ рд╕рдЪ рд╣реИ ...; рдПрдХреНрд╕

@mnmtanish рдореЗрд░реА рдЕрдЧрд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдФрд░ рдореБрджреНрджреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ, insertAt рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ style-loader рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬреЛ рдХрд┐ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ [email protected] ред рд╕реНрдЯреЛрд░реАрдмреБрдХ рдЕрднреА рднреА 0.x рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдирд╡реАрдирддрдо рд╕рдВрднрд╡ рд╕рдВрд╕реНрдХрд░рдг рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ [email protected] : (...

рдЕрд░реЗ @moimikey рд╢рд╛рдпрдж рдЖрдк рдЕрд▓реНрдлрд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдмрддрд╛рдП рдЧрдП рддрд░реАрдХреЗ рдХреЛ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рдПрдХ рдирдпрд╛ iframe рддрддреНрд╡ рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ / рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ?

рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рднреА рдмреБрд░рд╛ рд╣реЛрдЧрд╛ред

рдирдП рдЖрдЗрдлреНрд░реЗрдо рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдкреЛрд╕реНрдЯрдореЗрд╕реЗрдЬ-рдЪреИрдирд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╡реЗрдмрд╕реНрдХреИрдЯ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиред

рд╢рд╛рдпрдж рд╕реНрдЯреЛрд░реА-рд╕реНрд╡рд┐рдЪ рдкрд░ <style> рддрддреНрд╡ рдирд┐рдХрд╛рд▓рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?

рдмреЗрд╢рдХ рдХреЛрдИ рд╡реИрд╢реНрд╡рд┐рдХ рд╢реИрд▓реА рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдирд╛рдорд╛рдВрдХрд┐рдд рд╣реИ, рдпрд╣ рдПрдХ рдореБрджреНрджрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрдЪреНрдЫрд╛рдзрд╛рд░реА рд╕реЛрдЪ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред ЁЯШГ

рдЕрдЧрд░ рдХреЛрдИ рд╕рд╛рдмрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдХрдерди рдЧрд▓рдд рд╣реИрдВ рдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рд╕рднреА рдХрд╛рди рд╣реВрдБ!

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

рдореИрдВ рдПрдХ рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдореЗрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рд╢реИрд▓реА рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА рдЖрд╡рд╢реНрдпрдХрддрд╛ () рдХреЛ рдлрд┐рд░ рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдореИрдВрдиреЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА: рдЭреВрдареА рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдирд╣реАрдВ рд╣реБрдИред

рдореБрдЭреЗ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдВрдХреЛрдЪ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╡реЗрдмрдкреИрдХ рдХреИрд╢ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
https://webpack.github.io/docs/api-in-modules.html#advanced

рдпрд╣ рд╡реЗрдмрдкреИрдХ 1 рдбреЙрдХреНрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╡рд┐рдЪрд╛рд░: рдЖрдк рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп рд╕рднреА <style>...</style> рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдореИрдВ рд▓рдЧрднрдЧ рд╡рд╣рд╛рдБ рд╣реВрдБред рд╡реЗрдмрдкреИрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
'style-loader/useable' instead of 'style-loader',

рдпрд╣ рдЖрдкрдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝рддрд╛ рд╣реИред .use () рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рдпреБрдХреНрдд ()ред рдЕрдкрдиреА рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреА рдлрд╛рдЗрд▓ рдореЗрдВ рдореИрдВ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ:

.addDecorator((c) => <ReactStylesheet stylesheets={[require('./stories.scss')]}>{ c() }</ReactStylesheet> )

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

рдЖрдпрд╛рдд * 'рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛' рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ;

export class ReactStylesheet extends React.Component{

    componentWillUnmount(){
        let stylesheets = Array.isArray(this.props.stylesheets) ? this.props.stylesheets : [this.props.stylesheets];
        stylesheets.forEach((stylesheet) => {
            console.log("Unmounting....");
            stylesheet.unuse();
        });

    }

    componentDidMount(){
         let stylesheets = Array.isArray(this.props.stylesheets) ? this.props.stylesheets : [this.props.stylesheets];
        stylesheets.forEach((stylesheet) => {
            console.log("Mounting....");
            stylesheet.use();
        });
    }

    render(){
        return this.props.children;
    }
}

рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрджрд▓рдиреЗ рд╕реЗ рд╕реНрдЯрд╛рдЗрд▓ рдкреБрдирдГ рд▓реЛрдб рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рдЕрдкреНрд░рдпреБрдХреНрдд () рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЛ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдпрд╣ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ рдЯреВрдЯ рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдХреЗ рдЧреИрд░-рдШрдВрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЛрдИ рднреА рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рднреА рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ:

Uncaught (in promise) TypeError: Cannot read property 'refs' of undefined
    at update (webpack:///./~/style-loader/addStyles.js?:63:4)
    at eval (webpack:///./src/Component/stories.scss?:32:4)
    at Object.hotApply [as apply] (http://dev.test:6006/static/preview.bundle.js:499:14)
    at cb (webpack:///(webpack)-hot-middleware/process-update.js?:52:36)
    at eval (webpack:///(webpack)-hot-middleware/process-update.js?:68:13)
    at <anonymous>

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

рд╢рд╛рдирджрд╛рд░ рдЦреЛрдЬреА рдХрд╛рдо! рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦрд╛, рдФрд░ рдЗрд╕реЗ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред

рдХреБрдЫ рднреА рд╣рдо рдЗрд╕ рддрд░рдл @ConneXNL рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рд╕рдорд╛рдзрд╛рди рдХрд░реАрдм рдЖ рд░рд╣реЗ рд╣реИрдВред stylesheet.use() рдФрд░ unuse рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реЗ рд▓рд┐рдП рд╡рд┐рджреЗрд╢реА рдерд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ рд╕реНрдЯреЛрд░реАрдмреБрдХ https://github.com/Wildhoney/ReactShadow рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рд╣реИ

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ! рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдпрджрд┐ рдЕрднреА рднреА рдкреНрд░рд╢реНрди, рдЯрд┐рдкреНрдкрдгреА рдпрд╛ рдмрдЧ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЪрд░реНрдЪрд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд░ рдореБрджреНрджреЗ рдкрд░ рдЖрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред рд╣рдо рд╣рдореЗрд╢рд╛ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд░рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ рдЕрдЧрд░ рдЖрдк рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред 60 рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдХреНрд░рд┐рдп рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП @ConneXNL , рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдбреЙрдХреНрд╕ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

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

ЁЯЩЗ

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ! рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдпрджрд┐ рдЕрднреА рднреА рдкреНрд░рд╢реНрди, рдЯрд┐рдкреНрдкрдгреА рдпрд╛ рдмрдЧ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЪрд░реНрдЪрд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд░ рдореБрджреНрджреЗ рдкрд░ рдЖрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред рд╣рдо рд╣рдореЗрд╢рд╛ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд░рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ рдЕрдЧрд░ рдЖрдк рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред 60 рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдХреНрд░рд┐рдп рдореБрджреНрджреЛрдВ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рдж!

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

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛, рд╕реНрдЯреЛрд░реАрдмреБрдХ рдкреНрд░рддреНрдпреЗрдХ рдХрд╣рд╛рдиреА рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХрд┐рд╕реА рднреА рджреГрд╢реНрдп рдкрд░реАрдХреНрд╖рдг / рд╕реНрд╡реАрдХреГрддрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИред

рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдЫрд╛рдпрд╛ рдХреА рдЬрдбрд╝ рдбрд╛рд▓рдХрд░ @ndelangen рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рддреБрд░рдВрдд рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

@bennypowers рджрд┐рд▓рдЪрд╕реНрдк! рдЖрдк рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХреЛрдб рдирдореВрдирд╛ рд╣реЛрдЧрд╛? ЁЯЩЗ

@Shilman рдХреЗ рд▓рд┐рдП рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдирдорд╕реНрддреЗред рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдХреНрдпрд╛ рдпрд╣ рддрдп рдерд╛ рдпрд╛ рдХреЛрдИ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ?

@ndelangen

рдпрд╣рд╛рдБ рд╕рдВрддреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд░рд╛рд╕реНрддрд╛ рд╢рд╛рдпрдж @mimikey рдХрд╛ ReactShadow рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ

рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд░рдгрдиреАрддрд┐ рдПрдХ ReactShadow рдШрдЯрдХ рдореЗрдВ рдЬрдбрд╝ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддреА рд╣реИ, рдлрд┐рд░ рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ adoptedStyleSheets (рдпрд╛ <style> рдЧреИрд░-рд╕рд╣рд╛рдпрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рддрддреНрд╡) рдХреЗ рд╕рд╛рде рд▓рд╛рдПрдВ

https://github.com/storybookjs/storybook/blob/ba74d889fcfd87849a6ae9369f5e4176e8149d33/lib/core/clrc/client/preview/start.js#L2533

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

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдзрдиреНрдпрд╡рд╛рдж !!!

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рд░реНрдЪ 21, 2020 рддрдХ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@moimikey рдЗрд╕ рдкрд░ рд▓реЗрдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ? рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд┐рдерд┐ ...

IMO рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рдПрдбрдСрди рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реИ рдХрд┐ "рдЕрд▓рдЧрд╛рд╡" рдХреИрд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдореИрдВрдиреЗ рдРрдбреЛрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рдкреАрдУрд╕реА рд▓рд┐рдЦрд╛ рдерд╛, рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИред
https://github.com/pocka/storybook-addon-css

@pocka рдЖрдк рднрдпрд╛рдирдХ рд╣реИрдВ! ЁЯТп

рдпрдЬрд╝реНрдЬрд╝реНрдЬрд╝реНрдЬрд╝ред рдЪреАрдпрд░реНрд╕ @ рдкрдХреНрдХрд╛

рдЕрдЧрд░ рдЖрдк MDX рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ mdx -js / mdx # 894 рдкрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рд╡рд░реНрде рдиреЛрдЯрд┐рдВрдЧ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореЗрд░рд╛ рдмреБрд░рд╛, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИ! рдЖрдкрдХреЛ рд╕реНрдЯрд╛рдЗрд▓-рд▓реЛрдбрд░ 1.x + рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░реЗрдВ:

--- a/components/grid/GridChild.stories.mdx
+++ b/components/grid/GridChild.stories.mdx
@@ -1,7 +1,9 @@
 import { Meta, Story, Preview } from '@storybook/addon-docs/blocks';
 import { GridContainer, GridRow, GridChild } from './';
 import '../../shared/critical-path.scss';
-import 'o-grid/demos/src/scss/_demos.scss';
+import demoStylesModule from '!!style-loader?injectType=lazyStyleTag!css-loader!sass-loader!o-grid/demos/src/scss/_demos.scss?story';
+
+export const demoStyles = Promise.resolve(demoStylesModule);

 <Meta title="Core|Grid/GridChild" component={GridChild} />

@@ -37,7 +39,12 @@ You supply it a `colspan` prop in one of the following formats:
     ```

 <Preview>
-  <Story name="Default unresponsive columns">
+  <Story
+    name="Default unresponsive columns"
+    parameters={{
+      styles: [demoStyles],
+    }}
+  >
     <GridContainer>
       <GridRow>
         <GridChild colspan="1">

@ рднреЗрдЬ рджрд┐рдпрд╛
рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ MDX рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЧрдпрд╛: no_mouth:
рдореИрдВрдиреЗ PoC рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ MDX рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝реЗ ред

Addon рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдкреНрд░рддрд┐ рдХрд╣рд╛рдиреА рд╢реИрд▓рд┐рдпреЛрдВ) рдХреЗ рд╕рд╛рде, рдлрд╝рд╛рдЗрд▓-рд╕реНрдХреВрдкрд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдкреНрд░рддрд┐ рдлрд╝рд╛рдЗрд▓ рд╢реИрд▓рд┐рдпреЛрдВ) рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбреЙрдХреНрд╕ рдЯреИрдм рдХреЛ рд╣рд░ рдХрд╣рд╛рдиреА рдХреЗ рд╕рднреА рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдорд┐рд▓реЗрдВрдЧреЗред рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ , "рдлреВ" рдФрд░ "рдмрд╛рдЬ" рдХрд╣рд╛рдиреА foo.css рдФрд░ "рдмрд╛рд░" рдХрд╣рд╛рдиреА рдХрд╛ рдЖрдпрд╛рдд bar.css рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИ, рддреЛ рдбреЙрдХреНрд╕ рдЯреИрдм рдХреЛ foo.css рдФрд░ bar.css рджреЛрдиреЛрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВред

@pocka рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг https://github.com/storybookjs/storybook/tree/next/addons/cssresources WDYT рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

@ndelangen
рдЖрд╣, рдпрд╣ рд╕рд╣реА рд╣реИ!

foo.story = {
  parameters: {
    cssresources: [
      {
        id: 'foo',
        code: `<style>${require('!to-string-loader!css-loader!./foo.css')}</style>`,
        picked: true
      }
    ]
  }
}

рдПрдХ рдЪрд┐рдВрддрд╛: рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╣реБрдд рдмрдбрд╝реА рд╕реНрдЯрд╛рдЗрд▓рд╢реАрдЯ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ "рд╕реАрдПрд╕рдПрд╕ рд╕рдВрд╕рд╛рдзрди" рдЯреИрдм рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

@pocka рд╕рд╣реА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ cssresources addon рдХреЛ рдЙрд╕ рд╡рд┐рднрд╛рдЧ рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ?

@ndelangen
рд╣рд╛рдБ: рд╕реНрдорд╛рдЗрд▓реА:

рд╡реИрд╕реЗ, рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд░реЙ-рд╡реЗрдмрдкреИрдХ-рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ? ( !to-string-loader!... ) рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдПрдбрдСрди рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд▓реЗ рдЬрд╛рджреВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмреИрдмреЗрд▓ -рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐, рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВрдЧрд╛!

рдирдорд╕реНрддреЗ рд╡рд╣рд╛рдБ, рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рдпрд╛рд╕


@ndelangen рдореИрдВрдиреЗ рдореИрдХреНрд░реЛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ to-string-loader (рдпрд╛ file-loader ) рдХреЗ рд╕рд╛рде CSS рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ CSS рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░ рд╕рдХреЗ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдПрдбрдСрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗред

// adding a rule like this
{
  test: /\.css$/,
  resourceQuery: /cssresources/,
  use: ['to-string-loader', 'css-loader', 'postcss-loader']
}

рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд▓рд┐рдП, test рдФрд░ use рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╢реИрд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдо рдЪреБрдирдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдлрд┐рд░ рдЗрд╕реЗ oneOf рд╕рд╛рде рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реЛрдЧрд╛ ...

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ?

@ рдкрдХреНрдХрд╛ рд╣рд╛рдБ рдЬреЛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ!

рдирдорд╕реНрддреЗ, рдЕрдЧрд░ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ? рдореБрдЭреЗ рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рдХрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдлрд┐рдХреНрд╕ рдЬрд▓реНрдж рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдЖрдк Vue рд╕реНрдЯреЛрд░реА рдХреЗ рд╕рд╛рде рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдБ, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЕрднреА рднреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреГрд╢реНрдп рдХреЗ рдмрд╛рдж рд╕реНрдЯреИрдХрд╢реАрдЯ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдпрджрд┐ рдЖрдк рдбреЙрдХреНрд╕ рдРрдб-рдСрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред ЁЯШХ

рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдирд╛рджрд░ рдХреЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @pocka рдХреЗ рдРрдбреЛрди рдЕрдкреНрд░реЛрдЪ рдореЗрдВ рдХрдореА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрди рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдШрдЯрдХ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЖрдпрд╛рдд рдХреА рдЧрдИ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреЛрд░реА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рд╣реИред рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдЪреНрдЫрд╛-рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдПрдХ рд╣реИ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдзрд╛рдЧрд╛ рд╣реИ import './Button.css' рдХреЗ рдЕрдВрджрд░ Button.jsx рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдХрд╣рд╛рдиреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ Button.jsx рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддрд┐-рдХрд╣рд╛рдиреА рд╕реНрдЯрд╛рдЗрд▓, @pocka рдиреЗ рдЬрд┐рд╕ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рдореЗрд░реЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдЙрддрдирд╛ рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рдХреЛрдИ рднреА рдШрдЯрдХ рдЬреЛ рд╕реНрд╡рдпрдВ Button рдЖрдпрд╛рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ) рдЗрд╕рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ Button.css рд╕реЗ рдХреЛрдИ рднреА CSS рдирд┐рдпрдоред (рдпрд╣рд╛рдБ рдЪрд┐рдВрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ OtherWidget.css рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреА рдХрдореА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ Button.css рдЦрддреНрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ - рд╢рд╛рдпрдж рд╡реЗ рдПрдХ refactoring рдпрд╛ рдХреБрдЫ рдореЗрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЧрд╛рдпрдм рд╣реИ) рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ OtherWidget рдХреА рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкреВрд░реНрдг рдРрдк рдХреЗ рд╕рднреА рд╕реНрдЯреИрдЯрд┐рдХрд▓реА-рдЖрдпрд╛рддрд┐рдд рд╕реАрдПрд╕рдПрд╕ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП OtherWidget рдЕрднреА рднреА рд╕реНрдЯреЛрд░реАрдмреБрдХ рдореЗрдВ рдареАрдХ рджрд┐рдЦрддрд╛ рд╣реИред)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп lazyStyleTag рд╕рд╛рде рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА CSS рд▓реЛрдбрд░ рдХреЛ рдмрджрд▓ рджреВрдВрдЧрд╛, рдФрд░ рдлрд┐рд░ рд╡реЗрдмрдкреИрдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╕реАрдПрд╕рдПрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрд╣рд╛рдиреА рдлрд╛рдЗрд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрддрдГ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдХрд╣рд╛рдиреА рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдЙрдЪрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛рдПрдВред
рдХреНрдпрд╛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдкрд╣рд▓реЗ рд╣реА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЕрднреА рджреЗрдЦрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣ рд╕рдм рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЗ рдРрдбрдСрди рдореЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЛ рдПрдХ рдХреЛрд░ рдлреАрдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдпрд╣ рдХреНрд▓реАрдирд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдордЬрдмреВрдд рд╕реНрдЯрд╛рдЗрд▓ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЕрдкрдиреА рдЦреБрдж рдХреА рдЕрдЬреНрдЮрд╛рдирддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдореЗрдВ, рдореБрдЭреЗ рдЕрднреА рднреА рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд▓реИрдВрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЗрд╕рдХреА рд╕рдВрдмрдВрдзрд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рдХреА рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде) рдХреБрдЫ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

рдХреНрдпреЛрдВ рди рдХреЗрд╡рд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╛рдпрд╛ рдореЗрдВ рдореВрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрд╣рд╛рдиреА рдХреЗ рдбреЛрдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛

customElements.define('encapsulated-story', class EncapsulatedStory extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({ mode: 'open' });
  }

  /* not sure why we'd need this getter, but let's say */
  get storyHTML() {
    return this.shadowRoot.innerHTML;
  }

  set storyHTML(string) {
    this.shadowRoot.innerHTML = storyHTML;
  }
});

рдФрд░ рдЬрдм рднреА рдХрд╣рд╛рдиреА рдмрджрд▓рддреА рд╣реИ

encapsulatedStory.storyHTML = theStoryDOMStringWithAllStyleTags;

рдФрд░ рд╣реЛ рдЧрдпрд╛? рдпрд╣рд╛рдБ, theStoryDOMStringWithAllStyleTags рд╕рд┐рд░реНрдл рдПрдХ рдХрд╣рд╛рдиреА рдХреЗ HTML рдХреЗ рд╕рднреА рд╕рдВрдмрджреНрдз рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдореНрдорд┐рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрдирд▓рд╛рдЗрди <style> рдЯреИрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред рдХрд╣рд╛рдиреА рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд░реВрдк рдореЗрдВ :host рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдореЗрдЬрдмрд╛рди рддрддреНрд╡ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░ рд╕рдХрддреА рд╣реИред

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

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

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

рдореБрдЭреЗ рднреА рдЗрд╕ рддрдпрд╢реБрджрд╛ рдпрд╛ рдмрд╛рдж рдореЗрдВ рджреЗрдЦрдиреЗ рдХрд╛ рд╢реМрдХ рд╣реИред

рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛, рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рднреА рдмреБрд░рд╛ рд╣реЛрдЧрд╛ред

рдирдП рдЖрдЗрдлреНрд░реЗрдо рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдкреЛрд╕реНрдЯрдореЗрд╕реЗрдЬ-рдЪреИрдирд▓ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╡реЗрдмрд╕реНрдХреИрдЯ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиред

@ndelangen 2017 рд╕реЗ рдЖрдкрдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рдХрд┐ рдПрдХ рдЖрдЗрдлреНрд░реЗрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рдВрдЧрд╛ рд╣реИ? рдмреНрд░рд╛рдЙрдЬрд░ рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ; рд╡реЗ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдкреЗрдЬ рд▓реЛрдб рд╕реЗ рднреА рддреЗрдЬ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред

рдореЗрд░реЗ рд▓рд┐рдП, рд▓рд╛рдн рд▓рд╛рдЧрдд рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рдЬрд╛ iframe рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд▓рдХреНрдЬрд░реА рдХреЗ рд▓рд┐рдП 600ms рдХреА рджреЗрд░реА рдХреЛ рдмрд░реНрджрд╛рд╢реНрдд рдХрд░реВрдВрдЧрд╛ред

(рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд░рд╛рд╕рдд angularjs рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЪрд▓реЛ рдмрд╕ рдЗрддрдирд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдШрдЯрдХ рдмрд╣реБрдд рд╢реБрджреНрдз рдирд╣реАрдВ рд╣реИрдВред рд╡реЗ рдмрд╣реБрдд рд╣реА рд╕реНрдЯреЗрдЯрдлреБрд▓ рд╣реИрдВ; рдЙрдирдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рд╣реИрдВ рдФрд░ рдПрдВрдЧреБрд▓рд░рдЬ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрд╣реБрдд рд╕реНрдЯреЗрдЯрдлреБрд▓ рд╣реИред рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЪреАрдЬреЗрдВ рдЯреВрдЯрддреА рд╣реИрдВред)

рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдЪрд╛рд░ .storybook/manager.js рдореЗрдВ рд╕реНрдЯреЛрд░реАрдмреБрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реИред

addons.setConfig({
  refreshBetweenStories: true,
})

рдЗрд╕реЗ рдпреВрдЖрдИ рд╕реЗрдЯрд┐рдВрдЧ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЭреБрдХрд╛рддреЗ рд╣реИрдВред

рдРрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЧрдд рдирд╣реАрдВ рд╣реЛрдЧреА рдЬреЛ рдЗрд╕ рдзреНрд╡рдЬ рдХреЛ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬреЛ рд▓реЛрдЧ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП _really_ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕реА рдХреЛрдИ рднреА рджреЗрд░реА рдмрд░реНрджрд╛рд╢реНрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдПрдХ, рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рдмрдврд╝рд╛рдПрдВред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ!

.addecorator ((getStory) => {
рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ('./ story.sass');
рд╡рд╛рдкрд╕реА getStory ();
})

рдирдорд╕реНрддреЗ!!!!
рдореИрдВ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВ? !!!

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

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

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

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

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

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

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