# Styles:
- styles declared globally. Should be spitted per component. better to use styles-modules;
# Architecture:
- store config should be declared in separate file.
- redux action types should be declared as constants in separate file;
- `./components/common/` - APIRequest and all helper functions should be placed in utils dir.
- redux state architecture is very poor. Therefore almost all project keep state inside DOM elements and changing state in same behavior.
redux state should keep this state.
- `./components/grpc_service_files/` - should be placed in assets. looks like it vendor libs;
- Almost all components - are overloaded, should be splitted and reused where its possible.
- Redux async-middleware is absent. Recommend to use Thunk or Saga to manage async API calls;
# Code
- unused files: `./includes`
- very dirty code (comments, unused code, console.logs)
- code not formatted (prettier should be setup)
- no code standard:
* some object properties described with string, some w\o;
* some components using hooks, some classes
* variable declarations
- PropTypes doesn't covered in components
- very weird solution for managing modals. used document selectors to open/close modals inside components.
React allows to manipulate modals via Portals. (or use material-ui)
- very weird solution for managing custom <select>. used document selectors to open/close <selects> inside components.
- direct manipulation with DOM -- bad practice, react life-cycle should be used instead.
- `valueFormatter` - duplicated in several places. should be moved to utils and reused.
- `triggerResetModal, closeModal` - duplicated in several places. (see recommendation for modals above)
# Components:
- `BuySell` overloaded component (should be spitted).
direct manipulation with DOM -- bad practice, react life-cycle should be used instead.
- `CoinCard` - direct manipulation with DOM.
- `MarketAndPerformance` - props as array -- very weird solution. all calculations should be places in utils methods.
Component is overloaded.
- `DepositSummary` - overloaded component; can be slitted to different views.
- `DepositTwoFa` - direct manipulation with DOM.
- `TradeBuySell` - direct manipulation with DOM.
- `PortfolioTransactionsList` - direct manipulation with DOM. overloaded component;
- `ActivityLog` - unoptimized usage of useEffect, 2nd argument should be provided
- `BankAccountDeposit` - direct manipulation with DOM.
- `BankAccountWithdrawal` - direct manipulation with DOM.
- `BankAccount` - direct manipulation with DOM.
- `Profile` - direct manipulation with DOM.
- `Security` - direct manipulation with DOM.
- `SettingsNavbar` - better to build navbar with array;
- `SignIn` - overloaded component. direct manipulation with DOM
- `CellPhoneBind` - direct manipulation with DOM, unsafe JSON.parse
- `IdentityDetails` - direct manipulation with DOM. overloaded component;
- `Register` - direct manipulation with DOM. overloaded component;
- `UploadDoc` - direct manipulation with DOM. overloaded component;