Giter VIP home page Giter VIP logo

Comments (1)

nuclearspike avatar nuclearspike commented on July 20, 2024

Another options is to just have a LOGIN_ACTION (or something) action (and get rid of all the rest), which just takes the params from the action and puts them in app state. Then just have the actions define the isAuthenticated value, etc. This would remove 3/4 of the case statements and only have one const needed for all login actions. I don't see any gains from all of the extra code and frankly, when I first looked at this as an example of redux it made me think I'd traveled back in time with how tedious it is to do very simple tasks and if it takes all of that just for login, my apps would be huge to extrapolate that pattern for everything they do.

Just do this for the reducer.

const { type, ...rest } = action;
switch (type) {
    case LOGIN_ACTION:
      return Object.assign({}, state, rest)
    default:
      return state
  }

Then have functions like this where the params are actually read:

export function receiveLogin(user) {
  return {
    type: LOGIN_ACTION,
    isAuthenticated:true,
    isFetching: false,
    user
  }
}

export function logout() {
  return {
    type: LOGIN_ACTION,
    isAuthenticated:false,
    isFetching:false,
    user:null
  }
}

I don't see the use for the way it's done in this repo other than making more work for devs. I still feel like the React ecosystem has a long way to go with some of this to make it quick and terse to set up complex interactions let alone simple ones like this.

from redux-auth.

Related Issues (17)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.