Wix CMS — це платформа для керування контентом Wix-сайтів. Складний продукт для просунутих користувачів та агенцій, де критичні стабільність, перфоманс і якість архітектури.
Тут є детальний опис - link
А тут відео, з основним флоу роботи - link.
Привіт. Наш колега перейшов в іншу команду, тож ми шукаємо фронтенд-інженера в нашу.
Наразі у нас 4 фронт-енд розробники. Всі дуже досвідчені, кожен в чомусь крутий і всі добре доповнюють один одного. Ідеальні умови для професійного зросту :)
No assholes policy, всі адекватні. Працюємо віддалено, іноді збираємось разом, особливо на свята. Вся команда в Києві.
| # EditorConfig | |
| # https://EditorConfig.org | |
| # top-most EditorConfig file | |
| root = true | |
| # Unix-style newlines with a newline ending every file | |
| [*] | |
| charset = utf-8 | |
| end_of_line = lf |
| import React from 'react' | |
| import './index.css' | |
| class Input extends React.Component { | |
| onChange = (evt) => { | |
| const { onChange, disabled } = this.props | |
| const { value } = evt.target | |
| if (!disabled && onChange) { | |
| onChange(value) |
| .input { | |
| padding: 8px 16px; | |
| font-size: 16px; | |
| border-radius: 4px; | |
| outline: none; | |
| border: 1px solid #e2e2e2; | |
| } | |
| .input.error { | |
| border-color: red; |
| import React from 'react' | |
| class Input extends React.Component { | |
| onChange = (evt) => { | |
| const { onChange, disabled } = this.props | |
| const { value } = evt.target | |
| if (!disabled && onChange) { | |
| onChange(value) | |
| } |
| it('has a disabled state', () => { | |
| const value = 'hellotest' | |
| const newValue = 'newvalue' | |
| const onChange = jest.fn() | |
| const component = shallow( | |
| <Input | |
| value={value} | |
| onChange={onChange} |
| import React from 'react' | |
| class Input extends React.Component { | |
| onChange = (evt) => { | |
| const { onChange } = this.props | |
| const { value } = evt.target | |
| if (onChange) { | |
| onChange(value) | |
| } |
| it('has an error state', () => { | |
| const component = shallow( | |
| <Input | |
| error | |
| /> | |
| ); | |
| expect(component.hasClass('error')).toBe(true) | |
| }); |
| class Input extends React.Component { | |
| onChange = (evt) => { | |
| const { onChange } = this.props | |
| const { value } = evt.target | |
| if (onChange) { | |
| onChange(value) | |
| } | |
| } |