John Cowen 2b8273bc6e
ui: Support for SSO with Admin Partitions (#11604)
* Upgrade AuthForm and document current state a little better
* Hoist SSO out of the AuthForm
* Bare minimum admin partitioned SSO

also:

ui: Tabbed Login with Token or SSO interface (#11619)

- I upgraded our super old, almost the first ember component I wrote, to use glimmer/almost template only. This should use slots/contextual components somehow, but thats a bigger upgrade so I didn't go that far.
- I've been wanting to upgrade the shape of our StateChart component for a very long while now, here its very apparent that it would be much better to do this sooner rather than later. I left it as is for now, but there will be a PR coming soon with a slight reshaping of this component.
- Added a did-upsert modifier which is a mix of did-insert/did-update
- Documentation added/amended for all the new things.
2021-11-24 14:53:12 +00:00

47 lines
1.5 KiB
JavaScript

import { setModifierManager, capabilities } from '@ember/modifier';
import { gte } from 'ember-compatibility-helpers';
const createEventLike = state => {
return {
target: state.element,
currentTarget: state.element,
};
};
export default setModifierManager(
() => ({
capabilities: capabilities(gte('3.22.0') ? '3.22' : '3.13', { disableAutoTracking: true }),
createModifier() {
return { element: null };
},
installModifier(state, element, args) {
state.element = element;
if (gte('3.22.0')) {
// Consume individual properties to entangle tracking.
// https://github.com/emberjs/ember.js/issues/19277
// https://github.com/ember-modifier/ember-modifier/pull/63#issuecomment-815908201
args.positional.forEach(() => {});
args.named && Object.values(args.named);
}
const [fn, ...positional] = args.positional;
fn(createEventLike(state), positional, args.named);
},
updateModifier(state, args) {
if (gte('3.22.0')) {
// Consume individual properties to entangle tracking.
// https://github.com/emberjs/ember.js/issues/19277
// https://github.com/ember-modifier/ember-modifier/pull/63#issuecomment-815908201
args.positional.forEach(() => {});
args.named && Object.values(args.named);
}
const [fn, ...positional] = args.positional;
fn(createEventLike(state), positional, args.named);
},
destroyModifier() {},
}),
class DidUpsertModifier {}
);