cowbell/splittypie

View on GitHub
app/helpers/transition-to.js

Summary

Maintainability
A
0 mins
Test Coverage
import Helper from "@ember/component/helper";
import { assert } from "@ember/debug";
import { getOwner } from "@ember/application";
import { get, computed } from "@ember/object";

export default Helper.extend({
    router: computed(function () {
        return getOwner(this).lookup("router:main");
    }).readOnly(),
    compute([routeName, ...params]) {
        const router = get(this, "router");

        assert("[ember-transition-helper] Unable to lookup router", router);

        return function (...invocationArgs) {
            const args = params.concat(invocationArgs);
            const transitionArgs = params.length ? [routeName, ...params] : [routeName];

            router.transitionTo(...transitionArgs);

            return args;
        };
    },
});