refactor: re-write actions to typescript and implement new analytics API #626
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Что сделано?
Новое API для работы с аналитикой
При работе с Redux Middleware
Зачем: избавляемся от лишних хелперов, неочевидных названий в пользу более явного и краткого API.
В произвольных компонентах, когда не используются Redux Action'ы
Зачем: не все действия напрямую порождают какой-то redux action, нужно иметь возможность покрывать аналитикой компоненты, не связанные с redux.
NOT IMPLEMENTED
Строго типизированные action'ы
Зачем: углубляет type-checking на уровень redux store; ускоряет разработка за счет подсказок, понятности структуры данных; пререквизит к заезду на rtk-toolkit и сокращению boilerplate кода.
Рефакторинг Redux Action'ов
Удаление не используемых Action'ов
Удалил не используемые Action'ы, или те, которые использовались только для аналитики, но ничего не делали. Вместо этого можно использовать хук
useAnalytics
, по которому явно понятна суть действия.Зачем: фантомные action'ы путают тем, что ничего не меняют и плодят доп. логику в reducer'ах.
Ренейм и стандартизация Thunk'ов
Избавился от Thunk'ов, которые могут кидать произвольные Action'ы, произвел ренейм.
Зачем: четкое разграничение Action'ов и асинхронных Thunk'ов, по Thunk сразу ясно, что он делает и какой Action порождает.
Схлопнул многие дублирующиеся Action'ы и Thunk'и
Зачем: упрощение и сокращение кода.