# @focuson/redux

> The tools needed to bind to redux, doesn't actually have a version of redux

Latest version **1.23.16** (published 2022-07-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install @focuson/redux
pnpm add @focuson/redux
yarn add @focuson/redux
bun add @focuson/redux
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.23.16 |
| Published | 2022-07-04 |
| First published | 2022-05-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 11 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Maintainers | phil-rice |
| Keywords | functionalprogramming, lens, optics |

## Links

- npm: https://www.npmjs.com/package/@focuson/redux
- Repository: https://github.com/focuson-ts/focuson
- npm.io page: https://npm.io/package/@focuson/redux

## Dependencies (3)

- [react-redux](https://npm.io/package/react-redux.md) ^8.0.2
- [@focuson/focuson](https://npm.io/package/@focuson/focuson.md) 1.23.16
- [@reduxjs/toolkit](https://npm.io/package/@reduxjs/toolkit.md) ^1.8.2

## Recent versions

- 1.23.16 (latest) — 2022-07-04
- 1.23.15 — 2022-07-01
- 1.23.14 — 2022-07-01
- 1.23.13 — 2022-06-30
- 1.23.12 — 2022-06-30
- 1.23.11 — 2022-06-30
- 1.23.10 — 2022-06-30
- 1.23.9 — 2022-06-29
- 1.23.8 — 2022-06-29
- 1.23.7 — 2022-06-29
- 1.23.6 — 2022-06-29
- 1.23.5 — 2022-06-29
- 1.23.4 — 2022-06-29
- 1.23.3 — 2022-06-28
- 1.23.2 — 2022-06-28
- … 110 more at https://npm.io/package/@focuson/redux/versions

## README

# Embedding into redux applications

When we embed ourselves into redux applications

* Redux
  * Initialisation
  * We need a selector to extract our state
  * We need a dispatcher to send state changes to
  * We need a reducer that updates the state
* Page management
  * We need to be able to display our pages
  * We need other people to be able to select our page
  * We need to select other people's pages
  
## Initialisation

We need our starting state to be initiated. Things like messages/etc. Debug state... 

## Selector

* We need to get our 'common ids' out of the redux state
    * These are information such as 'customer id', 'account id', 'application id'... etc
    * They could change at any time. We need a local copy in our state
    * So... we need some optioneering here
      * Do we point our common lens at redux. We just use names for them, so we can centralise this
      * Do we copy into our state every time? This is quite simple and the default
      * Whatever we do we should 'information hide' it... check the design of the common lens...
* Messages
  * Probably we are just using simple messages. Check if there is an existing message structure

## Dispatcher

* We just send 'our new state' which gets embedded back into the main.
  * Note that at this point we will put things like common ids in the global state. This should be fine and allows performance optimisation in the selector

## Reducer

* Pretty much just a lens... takes our new state, stuffs it in the global

## Display  pages

* Our 'SelectedPage' is almost what we need
  * Might need a ReduxPage

##Select our page

* We need a React component to select our pages (one per team probably)

## Select other people's page

* We will need to find out how to do this, and then make a Depedency injection point for it.

# Multiple teams
* We will have multiple teams making our components. We need to make sure we know how we can work with multiple teams stuff...
* We could merge code bases (easy but dangerous)
* We could have a separate <SelectedPage> for each ... this feels the best... Because javascript is quite good at name spaces..
* Experimentation will be needed

# Observations

So the only awkward bit is

---
_Source: https://npm.io/package/@focuson/redux · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
