Это было хорошее начало моей первой недели на Hacktoberfest. Я решил взломать Telescope, чья кодовая база мне знакома, так как я уже вносил свой вклад в прошлом.
Проблема
Проблема была #2223, остановка анимации навигационной панели при переключении темы. Вопрос был открыт мной после комментария Дэвида по связанному вопросу.
После расследования проблема, похоже, заключается в том, как React отображает компоненты. В интерфейсе Telescope все компоненты функциональны; при изменении реквизита запускается повторный рендеринг. В этом случае при смене темы навбар перерисовывается и его анимация перезапускается. Чтобы избежать этого, я подключил популярную библиотеку React, react-transition-group
. Преимущество react-transition-group
в том, что он показывает этапы перехода и применяет классы полезными способами, делая визуальные переходы программируемыми и более согласованными.
Пиар
PR удалил существующие анимации CSS и указал стили для каждого состояния перехода.
const slideTransition = useMemo( () => ({ entered: { ... }, entering: { ... }, exited: { ... }, exiting: { ... }, }), [desktop] ); return ( <Transition in={!disabled} timeout={300} unmountOnExit> {(state) => ( <div style={{ ...slideTransition[state] }} className={classes.root}> <AppBar className={classes.appBar} position="static"> .... </AppBar> </div> )} </Transition> )
Ближайшие недели
Цель Hacktoberfest — повысить свой опыт, компетентность и уверенность в себе. Следующий PR должен быть построен на предыдущем. На следующей неделе я хотел бы заняться более крупным проектом, который займет у меня больше времени, чтобы начать.