Feliz: рддреГрддреАрдп рдкрдХреНрд╖ рдЧрд╛рдЗрдб

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЕрдЧре░ 2019  ┬╖  25рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: Zaid-Ajaj/Feliz

рдпрд╣ рд╢рд╛рдирджрд╛рд░ рдЖрдИрдПрдордПрдЪрдУ рджрд┐рдЦрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдЬреИрд╕реЗ рддреГрддреАрдп рдкрдХреНрд╖ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ?

рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред :)

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

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

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

рдпрд╣ рд╢рд╛рдирджрд╛рд░ рдЖрдИрдПрдордПрдЪрдУ рджрд┐рдЦрддрд╛ рд╣реИред

рд╢реБрдХреНрд░рд┐рдпрд╛! рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ: рдореБрд╕реНрдХрд╛рди:

рдХреНрдпрд╛ рдпрд╣ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рдЬреИрд╕реА рддреГрддреАрдп рдкрдХреНрд╖ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ?

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

  • 1) рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде prop рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ
  • 2) рдПрдХ рд╕рдорд╛рди prop рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдПрдВ, рдЬреЛ рдЖрдкрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ (рд╢рд╛рдпрдж Mui ) рдЬрд┐рд╕рдореЗрдВ рдореБрдИ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЧреБрдг рд╣реЛрдВред рдЖрдк prop рдХреЛ Mui $ рдХреЗ рд╕рд╛рде рдЙрдкрдирд╛рдо рднреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореБрдИ-рд╡рд┐рд╢рд┐рд╖реНрдЯ (рдУрд╡рд░рд▓реЛрдбреЗрдб) рдЧреБрдгреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде Mui рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЙрддрдирд╛ рд╣реА рд╕рд░рд▓ рд╣реИ:

type prop with
  static member hello (value: string) = Interop.mkAttr "hello" value 

рдХреНрдпрд╛ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ "рдЕрдВрддрд┐рдо рд░реВрдк" рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЕрднреА рднреА рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ

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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВрдиреЗ рдореМрдЬреВрджрд╛ prop рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рджреВрд╕рд░реЗ рдиреЗрдорд╕реНрдкреЗрд╕ ( Feliz.MaterialUI ) рдореЗрдВ рдПрдХ рдЕрд▓рдЧ prop рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ рдЖрдк Feliz рдФрд░ Feliz.MaterialUI рджреЛрдиреЛрдВ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдорд┐рд▓рд╛рди рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рд╕рднреА рд╕рджрд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдХрд╛рд░ Mui рд╣реИ рдЬреЛ Html рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

(рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВрдиреЗ рдШрдЯрдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдкреНрд╕ рдХреЛ prop рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ #13 рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред)

рдлрд╝реЗрд▓рд┐рдЬрд╝ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдмрд┐рдВрджреБ reactElement рдФрд░ createElement рд╣реИ рдЬреЛ string рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ReactElementType (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)ред рддрд╛рдХрд┐ рд╣рдо createElement (importDefault "@material-ui/core/Button") рдкрд░ рдХреЙрд▓ рдХрд░ рд╕рдХреЗрдВред рдЗрди рджреЛрдиреЛрдВ рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЛ рдореИрдВрдиреЗ рдлрд┐рд▓рд╣рд╛рд▓ рдЦреБрдж рдмрдирд╛рдпрд╛ рд╣реИред

рд╡реИрд╕реЗ, рдХреНрдпрд╛ рд╕рднреА рд╕рджрд╕реНрдп inline рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП? рдкрдХреНрд╖/рд╡рд┐рдкрдХреНрд╖ рдХреНрдпрд╛ рд╣реИрдВ? рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдКрдкрд░ inline рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд╝реЗрд▓рд┐рдЬрд╝ рдореЗрдВ рд╕рдм рдХреБрдЫ inline рд╣реИред

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

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдк рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдк рдкреНрд░рдХрд╛рд░ рдХреЛ рджреВрд╕рд░реЗ рдирд╛рдорд╕реНрдерд╛рди (Feliz.MaterialUI) рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдпрджрд┐ рдЖрдк Feliz рдФрд░ Feliz.MaterialUI рджреЛрдиреЛрдВ рдХреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдорд┐рд▓рд╛рди рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рд╕рднреА рд╕рджрд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореБрдИ рд╣реИ рдЬреЛ рдПрдЪрдЯреАрдПрдордПрд▓ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВред

рдпрд╣реА рдореИрдВ Mui . рдХреЗ рд▓рд┐рдП рдХрд░реВрдБрдЧрд╛

(рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВрдиреЗ рдШрдЯрдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдкреНрд╕ рдХреЛ рдкреНрд░реЛрдк рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд░рдЦрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ #13 рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред)

рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рддрдиреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдпрд╣ рдореБрдИ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ

рдлрд╝реЗрд▓рд┐рдЬрд╝ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдмрд┐рдВрджреБ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ createElement рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ReactElementType (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ)ред рддрд╛рдХрд┐ рд╣рдо createElement (importDefault "@ material-ui/core/Button") рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХреЗрдВред рдЗрди рджреЛрдиреЛрдВ рд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЛ рдореИрдВрдиреЗ рдлрд┐рд▓рд╣рд╛рд▓ рдЦреБрдж рдмрдирд╛рдпрд╛ рд╣реИред

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

рд╡реИрд╕реЗ, рдХреНрдпрд╛ рд╕рднреА рд╕рджрд╕реНрдп рдЗрдирд▓рд╛рдЗрди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП? рдкрдХреНрд╖/рд╡рд┐рдкрдХреНрд╖ рдХреНрдпрд╛ рд╣реИрдВ? рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдКрдкрд░ рдЗрдирд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝реЗрд▓рд┐рдЬрд╝ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЗрдирд▓рд╛рдЗрди рд╣реИред

рдореБрдЭреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рджрд╕реНрдп рдХреЛ рдЗрдирд▓рд╛рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛!

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

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

рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ! рд▓реЗрдХрд┐рди (рдХрдерд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ) рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдЗрдирд▓рд╛рдЗрди рдХреНрдпреЛрдВ? "рд╕рд░рд▓" рдлрд╝рдВрдХреНрд╢рди/рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИ?

  • рдмрдВрдбрд▓ рдЖрдХрд╛рд░: рдпрджрд┐ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ 100 рд╣реИрдВ), рддреЛ рд╡реЗ рдЕрднреА рднреА рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВ, рдмрдВрдбрд▓ рдЖрдХрд╛рд░ AFAIK рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ (рдкреНрд░рднрд╛рд╡ рдЕрднреА рднреА рдЖрд╡реЗрджрди рдХреЗ рдХреБрд▓ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реИ)
  • рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ: рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓реЗрдХрд┐рди рдлреИрдмрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдордВрддреНрд░рдг рдХреА рдЬрдЧрд╣ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдирд╣реАрдВ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рд╕рдордп рдкрд░ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ) рдЬрд╣рд╛рдВ рдЖрдк [<Inject>] ITypeResolver<'t> рдХреЛ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХреЗрд╡рд▓ рдЕрддреНрдпрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, Fable.SimpleJson/Thoth.Json рджреЗрдЦреЗрдВ)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдкреНрд░реЛрдбрдХреНрд╢рди рдмрдВрдбрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдмреЗрдмреЗрд▓ рдЯреНрд░реА-рд╢реЗрдХрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкреНрд░рдпреБрдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рдЙрд╕реЗ рд╣рд░рд╛ рджреЗрдЧреАред

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

@ рд▓реБрдЗрдЬрд╝-рдореЛрдирд╛рдб рдЖрдк рдЬреЛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдХрдорд╛рд▓ рд╣реЛрдЧрд╛! рдХрдо рд╕реЗ рдХрдо рдЕрдЧрд░ рд╕рдВрдХрд▓рди рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЖрд░рдИрдкреАрдПрд▓ рдХреЗ рд╕рд╛рде рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:

module App

type prop = 
  // does useless stuff
  static member f() = 
    [ 1 .. 100 ]
    |> List.map (fun x -> x * 20)
    |> List.collect (fun n -> [n; n])
    |> List.fold (+) 0

  // does useless stuff
  static member inline k() = 
    [ 1 .. 100 ]
    |> List.map (fun x -> x * 20)
    |> List.collect (fun n -> [n; n])
    |> List.fold (+) 0

  static member g() = 1

let value = prop.g()

printfn "%d" value

рдЬрд╣рд╛рдВ prop рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • f() рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреА рд╣реИ -> рдЗрдирд▓рд╛рдЗрди рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  • k() рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмреЙрдбреА рд╢рд╛рдорд┐рд▓ рд╣реИ -> рдЗрдирд▓рд╛рдЗрди рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛
  • g() рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ -> рдЗрдирд▓рд╛рдЗрди рдирд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ f() рдФрд░ g() рджреЛрдиреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, f() (рдЗрдирд▓рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛) рд╡реИрд╕реЗ рднреА рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди k() (рдЗрдирд▓рд╛рдЗрди, рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛) рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдмрдВрдбрд▓ рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ

import { fold, collect, map, ofSeq, ofArray } from "fable-library/List.js";
import { type } from "fable-library/Reflection.js";
import { rangeNumber } from "fable-library/Seq.js";
import { toConsole, printf } from "fable-library/String.js";
import { declare } from "fable-library/Types.js";
export const prop = declare(function App_prop() {});
export function prop$reflection() {
  return type("App.prop");
}
export function prop$$$f() {
  return fold(function folder(x$$1, y) {
    return x$$1 + y;
  }, 0, collect(function mapping$$1(n) {
    return ofArray([n, n]);
  }, map(function mapping(x) {
    return x * 20;
  }, ofSeq(rangeNumber(1, 1, 100)))));
}
export function prop$$$g() {
  return 1;
}
export const value = prop$$$g();
toConsole(printf("%d"))(value);

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП webpack рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЯреНрд░реА-рд╣рд┐рд▓рд┐рдВрдЧ рд╕реНрд╡рдпрдВ рдХрд▓реНрдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдкрд╣рд▓реЗ

/// Library.fs
module Library

type prop = 
    // does useless stuff
    static member f() = 
      [ 1 .. 100 ]
      |> List.map (fun x -> x * 20)
      |> List.collect (fun n -> [n; n])
      |> List.fold (+) 0

    // does useless stuff
    static member inline k() = 
      [ 1 .. 100 ]
      |> List.map (fun x -> x * 20)
      |> List.collect (fun n -> [n; n])
      |> List.fold (+) 0


type AppMain =
    static member g() = 1

//// App.fs
module App

let value = Library.AppMain.g ()

printfn "%d" value

рдмрд╛рдж рдореЗрдВ

  declare(function Library_prop() { 
     // see its empty, this weren't removed too because of `keep_classnames: true, keep_fnames: true ` in the terser plugin
  });
  declare(function Library_AppMain() {
  });
  !function toConsole(arg) {
    return arg.cont(function (x) {
      console.log(x)
    })
  }(printf('%d')) (1),
  __webpack_require__.d(__webpack_exports__, 'value', function () {
    return 1
  })

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

рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЬреЛ рднрдВрдбрд╛рд░ рдмрдирд╛рдпрд╛ рд╣реИ рдЙрд╕реЗ рджреЗрдЦреЗрдВ https://github.com/Luiz-Monad/test-tree-shaking

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

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрдирд▓рд╛рдЗрдирд┐рдВрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдлреЗрд▓рд┐рдЬрд╝ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдХреБрдЫ рднреА рдХрд░ рд░рд╣реА рд╣реИ рдпрд╛ рдирд╣реАрдВ

рдмрдврд╝рд┐рдпрд╛, рдЖрдкрдХреЛ рдЬреЛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдЙрд╕реЗ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ :)

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

рдХреГрдкрдпрд╛ cmeren/fable-elmish-electron-material-ui-demo рдкрд░ feliz рд╢рд╛рдЦрд╛ рджреЗрдЦреЗрдВ ред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб (рдПрдЪрдЯреАрдПрдордПрд▓) рдПрдкреАрдЖрдИ рдбреЙрдХреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рддрдГ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЬреЗрдирд░реЗрдЯрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИ (рдмрджрд╕реВрд░рдд рдФрд░ рд╣реИрдХреА, рд▓реЗрдХрд┐рди рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред рд░реЗрдВрдбрд░рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдХреЗрд╡рд▓ App.fs рдХреЛ рдирдИ рдлрд╝реЗрд▓рд┐рдЬрд╝-рд╢реИрд▓реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рджреЗрдЦреЗрдВ рдЬрдм рдЖрдкрдХреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗ, рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВред

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

Mui.appBar [
  prop.className c.appBar
  prop.appBar.position.fixed'
  prop.children [
    Mui.toolbar [
      prop.children [
        Mui.typography [
          prop.typography.variant.h6
          prop.typography.color.inherit'
          prop.text (pageTitle model.Page)
        ]
      ]
    ]
  ]
]

рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдореЗрд░рд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

Mui.appBar [
  AppBar.className c.appBar
  AppBar.position.fixed'
  AppBar.children [
    Mui.toolbar [
      Toolbar.children [
        Mui.typography [
          Typography.variant.h6
          Typography.color.inherit'
          Typygraphy.text (pageTitle model.Page)
        ]
      ]
    ]
  ]
]

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореБрдИ рддрддреНрд╡реЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдореБрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЗрд╡рд▓ "рдбреЙрдЯ рдереНрд░реВ" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдХреЛ рдЕрдкрдирд╛ рддрддреНрд╡ ( appBar ) рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдирд╛рдо ( AppBar ) рдХреЛ "рдбреЙрдЯ рдереНрд░реВ" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЧреБрдгреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдРрд╕реЗ

рд╢рд╛рдпрдж AppBar рдХреЛ рд▓реЛрдЕрд░рдХреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд░рдЦреЗрдВ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд╣рд╛рдВ {Element} рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрддреНрд╡ рд╣реИ:

Mui.{element} [
  {Element}.{propName}.{propValue}
  {Element}.children [
    Mui.{otherElem} [
      {OtherElem}.{propName}.{propValue}
      // etc.
    ]
  ]
]

рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ? рдпрджрд┐ рдЖрдк рдПрдХ рдареЛрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рдПрдкреАрдЖрдИ рдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╢рд╛рдирджрд╛рд░-рд╕рд░рд▓-рддрддреНрд╡реЛрдВ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рднреА рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХрджрдо рд╕рд╣реА рд╣реИ, рдФрд░ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдХреА рдЪреАрдЬрд╝ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдЖрдкрдХреА рд░рд╛рдп рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ prop рдХреЗ рддрд╣рдд рд╕рдм рдХреБрдЫ рдЪреБрдирд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЦреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдШрдЯрдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдк рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдПрдордпреВрдЖрдИ рдореЗрдВ рдХреЗрд╡рд▓ рдШрдЯрдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдк рдХрдо рд╣реИрдВред

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

рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рд╕рд╛рдорд╛рди рдХреЛ рд╕реНрд╡рддрдГ рдЙрддреНрдкрдиреНрди рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рдмрд╛рдд рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдореИрдВ рд░рд╛рдп рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдпрд╣ ClassName рд╕рд╛рдорд╛рди рд╣реИред makeStyles рд╣реБрдХ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЙрд╕реА рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ (рдЬреЗрдПрд╕рдПрд╕) рддрддреНрд╡ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд╣реИ (рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ prop.className )ред

рдЕрдм, рдЗрд╕реЗ F# рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдЬреЛ рд╣реИ рдЙрд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред рдЖрдо рддреМрд░ рдкрд░ рд╕реНрдЯрд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдкреНрд░реЙрдкреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ IStyleAttribute list ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ prop.className рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рднрд╛рд░ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ IStyleAttribute list рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЭреВрда рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ IStyleAttribute list рдкрд╛рд╕ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред prop.className рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рднреА classes.<element>.<classesName> ( <element>.classes [ ... ] рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд) рдХреЗ рд▓рд┐рдП рднреА рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо (рд╕реНрдЯреНрд░рд┐рдВрдЧ) рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдЯрд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА IStyleAttribute list рдЧреБрдгреЛрдВ рдХреЛ "рдЖрд╡рд╢реНрдпрдХрддрд╛" рджреЗрдирд╛ рд╣реИ asClassName , рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЕрдирдмреЙрдХреНрд╕ рдХрд░рддрд╛ рд╣реИ IClassName (рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ string рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдХреНрд╕реА)ред рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ prop.className рдореЗрдВ IClassName $ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЕрдзрд┐рднрд╛рд░ рдЬреЛрдбрд╝рд╛ рд╣реИ, рдФрд░ рд╕рднреА classes рдкреНрд░реЙрдкреНрд╕ рдХреЛ IClassName рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ( asClassName рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рд╕реАрдПрд╕рдПрд╕ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП)ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдВрдХрд▓рдХ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдирд╣реАрдВ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрднреА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реЛрд░ рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЗрдирдкреБрдЯ рд╣реИ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрд╛:

f# listItem.divider ((page = Home))

рдпрд╣рд╛рдВ, рдбрдмрд▓ рдкреИрд░реЗрдиреЗрдереЗрд╕рд┐рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ F# рдЗрд╕реЗ listItem.divider (рдЧреИрд░-рдореМрдЬреВрдж) page рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде Home ( value рдХреЗ рдмрдЬрд╛рдп) рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред page = Home рдкрд░ рд╕реЗрдЯ рд╣реИ)ред рдХреНрдпрд╛ рдЖрдк рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рдЙрдкрд╛рдп рджреЗрдЦрддреЗ рд╣реИрдВ?

рд╣реИрд▓реЛ @cmeeren , рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЗрд╕ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдБ:

Mui.appBar [
  prop.className c.appBar
  appBar.position.fixed'
  appBar.children [
    Mui.toolbar [
      toolbar.children [
        Mui.typography [
          typography.variant.h6
          typography.color.inherit'
          prop.text (pageTitle model.Page)
        ]
      ]
    ]
  ]
]

рдпрд╣ рдЗрддрдирд╛ рд╕рд╛рдл рдФрд░ рдЗрддрдирд╛ рдЖрд╕рд╛рди рджрд┐рдЦрддрд╛ рд╣реИ! рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдореИрдВ рдЖрдк рд╣реЛрддреЗ, рддреЛ рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп prop рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдШрдЯрдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЙрдкреНрд╕ рдЬреИрд╕реЗ appBar.className рдХреЗ рдмрдЬрд╛рдп (рдпрд╛ рд╕рд╛рде рдореЗрдВ) prop.className рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░ рджреЗрддрд╛, рддрд╛рдХрд┐ рд╡реЗ рд╕рднреА рд╕рдордорд┐рдд рджрд┐рдЦрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп prop.className рдХреЗ рдмрдЬрд╛рдп рдореБрдИ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдШрдЯрдХ рдХреЛ IClassName рдЕрдзрд┐рднрд╛рд░ рджреЗрдирд╛ рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ makeStyles рднреА рдПрдХ рдореБрдИ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдореБрдИ рдШрдЯрдХреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ makeStyles рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдкрдЯрд╛рдпрд╛, рдХрдо рд╕реЗ рдХрдо рдЕрднреА рдореИрдВ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ asClassName рдХрд╛ рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ, рд╢рд╛рдпрдж Styles.createClass рдЗрд╕рдХреЗ рдмрдЬрд╛рдп? рдпрд╣ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ)ред

listItem.divider ((page = Home)) рдХреЗ рд▓рд┐рдП рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЖрдк рдПрдХ рдбрдореА рдлрд╝рдВрдХреНрд╢рди let when (x: bool) = x рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рд╢реЛрд░ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рдХрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдХрд┐ рдПрдл # рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЙрдЪрд┐рдд рдЕрдзрд┐рднрд╛рд░ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рд╕рдордп рдорд┐рд▓рдиреЗ рдкрд░ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЙрддреНрддрд░рджрд╛рдпреА рдирд╣реАрдВ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрднреА рдЫреБрдЯреНрдЯреА рдкрд░ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдм рдХреБрдЫ рдкрдврд╝рдиреЗ/рдЬрд╛рдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рди рд╣реЛред

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ makeStyles рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдирд┐рдкрдЯрд╛рдпрд╛, рдХрдо рд╕реЗ рдХрдо рдЕрднреА рдореИрдВ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ asClassName рдХрд╛ рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ, рд╢рд╛рдпрдж Styles.createClass рдЗрд╕рдХреЗ рдмрдЬрд╛рдп? рдпрд╣ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ)ред

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

listItem.divider ((page = Home)) рдХреЗ рд▓рд┐рдП рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЖрдк рдПрдХ рдбрдореА рдлрд╝рдВрдХреНрд╢рди let when (x: bool) = x рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рд╢реЛрд░ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рдХрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдХрд┐ рдПрдл # рдХрдВрдкрд╛рдЗрд▓рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЙрдЪрд┐рдд рдЕрдзрд┐рднрд╛рд░ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рд╕рдордп рдорд┐рд▓рдиреЗ рдкрд░ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХреА рд╣реИ: https://github.com/dotnet/fsharp/issues/7423

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЙрддреНрддрд░рджрд╛рдпреА рдирд╣реАрдВ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрднреА рдЫреБрдЯреНрдЯреА рдкрд░ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдм рдХреБрдЫ рдкрдврд╝рдиреЗ/рдЬрд╛рдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рди рд╣реЛред

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

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╢рд╛рдпрдж рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░реЗрдкреЛ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп?

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

рдпрд╣ рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдХрд▓реНрдкрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣рд░ рд╕рдордп рдЯрд╛рдЗрдк-рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдзреЛрдЦрд╛ рджреЗрддреЗ рд╣реИрдВ;)

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХреА рд╣реИ: dotnet/fsharp#7423

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╢рд╛рдпрдж рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░реЗрдкреЛ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп?

рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдЧ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг #27) рдореИрдВ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рд╕рдордЭреВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рддрдм рддрдХ рд╡рд╣рд╛рдВ рд░рдЦреВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рддреИрдпрд╛рд░ рди рд╣реЛ рдЬрд╛рдП nuget рдкрд░ рдПрдХ рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП (рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред

@ Zaid-Ajaj рдореИрдВ рдЕрднреА Feliz.MaterialUI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЬрд▓реНрдж рд╣реА рдПрдХ рдЕрд▓рдЧ рд░реЗрдкреЛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред рдХреБрдЫ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд┐рд░реНрдгрдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдлрд╝реЗрд▓рд┐рдЬрд╝ рдХреЗ рд╕рд╛рде рдирд┐рд░рдВрддрд░рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╛рдордЧреНрд░реА рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ (рдЬреИрд╕реЗ, рдХреНрдпрд╛ рдореИрдВ рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЖрдВрддрд░рд┐рдХ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдпрд╛ рдРрд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдореИрдВ рдореИрдВ рдлреЗрд▓рд┐рдЬ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рдЬрдм рдореИрдВ рдирдпрд╛ рд░реЗрдкреЛ рдмрдирд╛рддрд╛ рд╣реВрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реИ рдЕрдЧрд░ рдореИрдВ рдпрд╣ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЖрдкрдХреЛ рдЯреИрдЧ рдХрд░рддрд╛ рд╣реВрдВ?

рдореИрдВрдиреЗ рдЕрдм Feliz.MaterialUI рдХрд╛ рдПрдХ рдорд╕реМрджрд╛ cmeeren/Feliz.MaterialUI рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЙрди рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рдореБрджреНрджреЗ рдмрдирд╛рдП рд╣реИрдВ рдЬрд┐рдирдХреА рдореИрдВ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

рдкреНрд░рддреНрдпреЗрдХ рдореБрджреНрджреЗ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ; рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рд░рд╛рдп рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореБрдЭреЗ рдорд╛рддрдо рдореЗрдВ рдЬрд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ "рдпрд╣ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ" рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдмреЗрд╢рдХ рдХреЛрдИ рдЬрд▓реНрджреА рдирд╣реАрдВ рд╣реИред :)

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо @cmeeren! рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрд╣реБрдд рд╕рд╛рдл рджрд┐рдЦрддреА рд╣реИ, рдореИрдВ рдЕрдЧрд▓реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реВрдВрдЧрд╛, рдореИрдВ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВ: рдореБрд╕реНрдХрд╛рди:

рдЕрд░реЗ! рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛? рдлрд┐рд░ рд╕реЗ рдЬрд▓реНрджреА рдордд рдХрд░реЛ, рдмрд╕ рдПрдХ рджреЛрд╕реНрддрд╛рдирд╛ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЖрдкрд╕реЗ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рд╕реЗ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ

рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдерд╛, рдПрдХ рдПрдкреАрдЖрдИ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдЕрд▓реНрдлрд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛ рд╕рдХреВрдВ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ рд╕рдордп рдЕрднреА рддрдХ рдРрд╕рд╛ рдХрд░реЗрдВ (рдпрд╣ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЗ рдкреАрдЫреЗ рд╣реИ: рдореБрд╕реНрдХрд╛рди :)

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

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

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

cmeeren picture cmeeren  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

l3m picture l3m  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Dzoukr picture Dzoukr  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Dzoukr picture Dzoukr  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cmeeren picture cmeeren  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ