Git Product home page Git Product logo

moleculas's People

Contributors

barabaiiika avatar cosmount avatar dmitry-shishkin avatar krutoo avatar olime avatar pahanini avatar pakvakun avatar popovisima avatar robertsh8 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moleculas's Issues

ProductInfo: картинка не показывается в Safari 14

Ситуация

В Safari версии 14 не выводится картинка

Связано с тем что не поддерживается используемое CSS-свойство aspect-ratio

Необходимо

Исправить, убрать использование aspect-ratio

Вынести из ProductCarousel компонент ProductCard

Вынести в новый компонент desktop/ProductCard визуальное оформление всплывающей при наведении карточки из ProductCarousel

Также переименовать mobile/ProductCard в mobile/ProductRow

SearchBar: добавить проброс ref для текстового поля

Ситуация

Иногда надо формировать кнопки рядом с полем в SearchBar в зависимости от того что происходит с полем

Необходимо

Добавить проброс ref'а поля чтобы можно было напрямую с ним работать и при этом не сильно расширять интерфейс пропсов

PromotionCard: добавить data-testid атрибуты

Для удобства приемочного тестирования необходимо добавить атрибуты data-testid для основных составляющих компонента карточки акции:

  • сама карточка акции
  • тип акции в правом нижнем углу
  • оставшееся время в левом нижнем углу
  • таймер обратного отчёта в карточках акций типа "Спецпредложение"
  • плашка "Скидки до X%" в карточках акций типа "Скидка за объём"

InteractiveImage: добавить ref forwarding

Обернуть в forwardRef компонент InteractiveImage. Это нужно для корректной работы IntersectionObserver (threshold) в автономном компоненте баннера.

ProductCard: добавить возможность показывать состояния товаров для взрослых и недоступных товаров

Ситуация

Всплывающие карточки товаров могут содержать информацию о разных товарах, например товарах для взрослых, товарах которых нет в наличии, недоступных товарах и тд

Необходимо

Реализовать возможность выводить карточки для товаров:

  • для взрослых
  • недоступен в регионе
  • нет в наличии

необходимо придумать как удобно выводить такие товары в компонентах, зависимых от ProductCard, например ProductCarousel

desktop/ProductCard: добавить возможность задавать z-index

Ситуация

Сейчас ProductCard имеет состояние при наведении, в котором появляется всплывающая карточка.
Эта карточка не имеет указанного значения z-index в следствии чего при всплытии над элементами у которых есть z-index всплювающая карточка ими перекрывается.

Пример:
photo_2022-01-18 18 05 39

Необходимо

В компоненте HoverCard (src/desktop/components/product-card/index.tsx) использовать useLayer из @sima-land/ui-nucleons/helpers/layer для того чтобы задать z-index всплывающей карточке

Таким образом при необходимости можно будет использовать LayerProvider из @sima-land/ui-nucleons/helpers/layer чтобы "поднимать" карточку на нужный уровень z-index

Восстановить работу react-docgen-typescript

В .storybook/main.js есть закомментированный код конфигурации генератора документации на основе типов TS и JSDoc

Надо обновить пакет и востановить работоспоособность генератора, чтобы в Storybook во вкладке Docs выводилось описание свойств компонентов.

Рекомендации: добавить возможность пользовательского вывода блока контроля корзины

Необходимо добавить возможность указывать, каким образом выводить блок добавления в корзину так, чтобы фиксировать слотами позицию основных элементов но не фиксировать структуру данных, необходимых для передачи

Удалить устаревшие компоненты ItemImage (mobile и desktop)

Ситуация

Компоненты ItemImage почти не используются в проектах а оставшиеся места использования планируют переписать

Также у компонента есть ряд проблем, например использования img.complete в componentDidMount

Необходимо

Убрать компонент из библиотеки

mobile/SelectScreen: пересмотреть компонент

Ситуация

Практика показала, что вывод списков подобным образом:

render(
  <SelectScreen
    title='Районы'
    items={[
      'Верх-Исетский',
      'Чкаловский',
      'Железнодорожный',
      'Кировский',
      'Орджоникидзевский',
      'Октябрьский',
      'Ленинский',
    ]}
    getItemName={String}
    onItemClick={() => {}}
    isItemSelected={item => item === 'Кировский'}
  />,
);

скорее является антипаттерном так как в данном случае список разделен с тем что его формирует: обработчиками событий и callback'ми, определяющими как именно вывести элемент списка

В коде очень плохо читается и JSX-слоты в этом плане куда лучше

Необходимо

Придумать как переделать компонент таким образом чтобы его легко можно было использовать совместно со Screen из @sima-land/ui-nucleons

Возможно стоит оставить только компонент кнопки и назвать его <SelectScreen.Option />

Удалить раздел __temp__

Раздел содержал компоненты из старых версих @sima-land/ui-nucleons и на данный момент эти компоненты не используются в рамках библиотеки

Необходимо полностью удалить раздел

SelectScreen: доработать компонент опции

Ситуация

Обновились гайды, описывающие опции на экране выбора, теперь они подразумевают что у опции может быть несколько вариантов высоты, произвольное наполнение и тд

Необходимо

Доработать компоненты SelectScreen.* так чтобы учесть обновления дизайн-гайдов

Сделать компонент интерактивного изображения

Необходимо реализовать компонент интерактивного изображения: на изображении будут выводиться точки в определенных местах.

Данные для позиций точек будут предоставляться в виде процентов от левой и верхней границ

При нажатии на кнопку нужно иметь возможность сделать что-либо

Добавить возможность копирования URL большого фото в GalleryModal.

Проблема:

При постановке задачи на реализацию компонента не было выдвинуто и как следствие учтено требование о необходимости поддержки возможности копирования URL большого фото через стандартное контекстное меню браузера.

Необходимо:

  • Добавить возможность отображения стандартного контекстного меню браузера при клике правой кнопкой мыши по большому изображению в галерее.
  • Проверить, что есть возможность скопировать через данное контекстное меню ссылку на изображение.

BadgeList: убрать z-index

Ситуация

У корневого элемента в компоненте BadgeList указан z-index: 2

Необходимо

Убрать или добавить коммент с описанием того, зачем указан z-index: 2

ProductCarousel: исправить ошибку при удалении контента при показанной всплывающей карточке

Ситуация

Если навести на элемент карусели ProductCarousel и в этот момент удалить все элементы карусели, упадет ошибка

TypeError

Cannot read properties of undefined (reading 'props')

Необходимо

Исправить данное поведение добавив проверку в код и зафиксировать поведение unit-тестами

ModifiersGroup: исправить отсутствие пропа needShowAll в интерфейсе пропсов

Ситуация

На данный момент компонент ModifiersGroup поддерживает проп needShowAll однако в интерфейсе ModifiersGroupProps он не указан

Необходимо

Исправить интерфейс ModifiersGroupProps так чтобы в нем были указаны все поддерживаемые свойства

ProductCard: добавить состояние загрузки для слота управления количеством в корзине

В гайды добавили состояние загрузки для блока управления количеством в корзине:
https://www.figma.com/file/EwAsXveLVRWvfUtJTZPgAs/Desktop-Ui-Kit?node-id=15426%3A18301

Необходимо доработать слот таким образом чтобы ему можно было передавать признак необходимости выводить состояние загрузки по гайдам

ProductCarousel: попробовать добавить принудительный rerender HoverCard

Сейчас если очень быстро перемещать курсор над каруселью то иногда картинка с одного товара запаздывает и некоторое время показывается над другим

Это проихсодит из-за того что React пропускает render'ы между очень быстрыми сменами состояния

Необходимо попробовать заставить React принудительно полностью удалять реальный DOM-узел и рисовать новый при перемещении курсора

ProductCard: Периодически не скрывается карточка при убирании курсора

Ситуация

Если быстро водить курсором по нескольким карточкам, возникает проблема: иногда всплывающие карточки не скрываются, хотя курсор уже не над ними

Воспроизвести удалось только в Chrome, в Safari/Firefox работает нормально

Необходимо

Выяснить в чем проблема, исправить

Обновить @sima-land/ui-nucleons до версии 43

Ситуация

В новой версии нуклонов обновились константы цветов в скриптах и переменные в стилях

Необходимо

Обновить библиотеку и исправить использование компонентов и цветов

ModifiersGroup: переделать на слоты

Ситуация

Слоты (фильтрация пропа children) хорошо себя зарекомендовали и удобней работать с компонентом на слотах вместо callback'ов в духе onItemClick

Необходимо

Переписать компонент ModifiersGroup на слоты по аналогии с ProductCarousel

Поправить логику работы таймеров и вывод дат в компоненте PromotionCard в соответствии с изменениями в гайдах.

В гайдах:

  • Убрали вывод таймера в левом нижнем углу если до окончания акции осталось менее одного дня.
  • Таймер теперь может выводиться только поверх изображения в формате дд:чч:мм.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.