Files
project-work/worker-toolkit-flaredown/repo/frontend/app/components/checkin-navigation.js

48 lines
1.1 KiB
JavaScript

import Ember from 'ember';
const {
$,
get,
computed,
Component,
run: { scheduleOnce },
computed: { alias },
} = Ember;
export default Component.extend({
classNames: ['checkin-navigation'],
checkinId: alias('checkin.id'),
steps: computed('stepsService.steps', function() {
let result = [];
const steps = get(this, 'stepsService.steps');
Object.keys(steps).forEach(key => {
let step = steps[key];
if (step.priority && step.prefix === 'checkin.show') {
result.pushObject(step);
}
});
return result.sortBy('priority');
}),
didRender() {
scheduleOnce('afterRender', this, () => {
const $activeLink = $('.checkin-navigation .active');
if (!$activeLink.length) {
return;
}
const $checkinNavigation = $('.checkin-navigation');
const offsetedCenter = ($checkinNavigation.width() - $activeLink.width()) / 2;
const absoluteScrollTo = - (offsetedCenter - $checkinNavigation.scrollLeft() - $activeLink.offset().left);
$checkinNavigation.animate({ scrollLeft: absoluteScrollTo }, 0);
});
},
});