1.1.24 • Published 5 years ago

@app-elements/connect v1.1.24

Weekly downloads
31
License
ISC
Repository
github
Last release
5 years ago

connect

deprecated in favour of useMappedState and useRequest

Convenience HoC that connects withState and withRequest. Also offers a way to create actions and a reducer.

Installation

npm install --save @app-elements/connect

Usage

import connect from '@app-elements/connect'

// Here is are view for rendering that data
const PeopleList = ({ result }) =>
  <div>
    // Do something with `result`
  </div>

// Now we use connect to wrap the PeopleList component
// in a Higher order Component (HoC) that, in this case,
// will sync state changes and perform an API request.
const enhance = connect({
  // Let's say we have another Component somewhere that let's
  // the user specify filter options for what people to display.
  withState: ({ peopleFilters }) => ({ peopleFilters }),
  withRequest: {
    // We will use the state property we accessed with `withState`
    // to modify the endpoint we want to request.
    endpoint: ({ peopleFilters }) => ({
      endpoint: `users?${qs.stringify(peopleFilters, '', true)}`
    })
  }  
})

// Since connect is a HoC, it returns a function that expects
// to be called with a Component as its only param.
export default enhance(PeopleList)

withActions

A convenient way to define actions and automatically create a reducer that handles them. The reducer is only defined once and passed to the store once.

const Dropdown = connect({
  // Each property on this object will result in a function of the same name
  // being created and included in the props given to the PassedComponent.
  withActions: {
    // Each value should be a function that accepts `(currentState, [...args])`
    // `args` will be any arguments you provide when you call the function in
    // your PassedComponent. For example, on a click handler you would call:
    // `toggle(this.props.uid)`
    toggle: ({dropdown}, uid) => {
      const isOpen = dropdown === uid
      return {dropdown: isOpen ? null : uid}
    }
  },
  
})(DropdownView)

Props

PropTypeDefaultDescription
withActionsObjectNoneAn object where each child is a function that returns an object to mutate state with
withStateFunctionNoneA function that accepts (state, props) and returns an object
withRequestObjectNoneAn object that accepts the props { endpoint, parse }, where endpoint is the url to call, or a function that returns a the url to call
1.1.24

5 years ago

1.1.23

5 years ago

1.1.22

5 years ago

1.1.21

5 years ago

1.1.19

5 years ago

1.1.18

5 years ago

1.1.20

5 years ago

1.1.17

5 years ago

1.1.16

5 years ago

1.1.15

5 years ago

1.1.14

5 years ago

1.1.13

5 years ago

1.1.12

5 years ago

1.1.11

5 years ago

1.1.10

5 years ago

1.1.9

5 years ago

1.1.8

5 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.21

6 years ago

1.0.20

6 years ago

1.0.19

6 years ago

1.0.18

6 years ago

1.0.17

6 years ago

1.0.16

6 years ago

1.0.15

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.3.8

6 years ago

0.3.7

6 years ago

0.3.6

6 years ago

0.3.5

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.0

7 years ago