@jessedvrs

Jesse de Vries

One day, I encountered a problem

@jessedvrs

@jessedvrs

The problem

@jessedvrs

@jessedvrs

The expected flow

lifelynl:intent

Enable users to continue an interrupted flow.

@jessedvrs

Don't lose users.

Return to route

@jessedvrs

Example #1

Demo time!

@jessedvrs

Return to route

Example #1

Return to route

@jessedvrs

Example #1

Intent.go({route: 'login'});
Intent.return('login');

Return to route, with callback

@jessedvrs

Example #2

Demo time!

@jessedvrs

Return to route, with callback

Example #2

Return to route, with callback

@jessedvrs

Example #2

// if no user is signed in...
Intent.go({route: 'login'}, function(user) {
    if (!user) return;
    postComment();
});
// if the sign-in was successful
Intent.return('login', {
    arguments: [user]
});

Restricted routes

@jessedvrs

Example #3

Restricted routes

@jessedvrs

Example #3

Demo time!

Restricted routes

@jessedvrs

Example #3

Router.onBeforeAction(function(req, res, next) {

    // if user is not signed in...
        Intent.go({route: 'login'}, function(user) {
            if (user) next();
            else this.back();            
        }, {prevent_going_back: true});

}, {
    only: ['new-article']
});

@jessedvrs

Jesse de Vries

Thanks!

@jessedvrs

Jesse de Vries

github.com/lifelynl/meteor-intent

meteor add lifelynl:intent

Tips, pull requests and issues are welcome!

Repo & docs:

Made with Slides.com