Skip to content
Prev Previous commit
Next Next commit
minor clean up
  • Loading branch information
nmetulev committed Dec 21, 2019
commit 44c6f70eca309f3283b4edc5ff3b905ea3ee5e9c
4 changes: 4 additions & 0 deletions .storybook/env.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
export const CLIENTID = 'a974dfa0-9f57-49b9-95db-90f04ce2111a';

export const GETPROVIDER_EVENT = 'mgt/getProvider';
export const SETPROVIDER_EVENT = 'mgt/setProvider';
7 changes: 4 additions & 3 deletions .storybook/manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,12 @@ import { STORIES_CONFIGURED, STORY_MISSING } from '@storybook/core-events';
import { AddonPanel } from '@storybook/components';
import { useParameter, useChannel } from '@storybook/api';
import { Providers, MsalProvider, LoginType, ProviderState } from '../dist/commonjs';
import { CLIENTID, GETPROVIDER_EVENT, SETPROVIDER_EVENT } from './env';

const PARAM_KEY = 'signInAddon';

const msalProvider = new MsalProvider({
clientId: 'a974dfa0-9f57-49b9-95db-90f04ce2111a',
clientId: CLIENTID,
loginType: LoginType.Popup
});

Expand All @@ -30,13 +31,13 @@ const SignInPanel = () => {
STORY_RENDERED: id => {
console.log('storyRendered', id);
},
'mgt/getProvider': params => {
[GETPROVIDER_EVENT]: params => {
emitProvider(state);
}
});

const emitProvider = loginState => {
emit('mgt/setProvider', { state: loginState });
emit(SETPROVIDER_EVENT, { state: loginState });
};

Providers.onProviderUpdated(() => {
Expand Down
10 changes: 4 additions & 6 deletions .storybook/signInAddon.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Providers } from '../dist/es6/Providers';
import { ProviderState } from '../dist/es6/providers/IProvider';
import { MsalProvider } from '../dist/es6/providers/MsalProvider';
import { MockProvider } from '../dist/es6/mock/MockProvider';
import { CLIENTID, SETPROVIDER_EVENT, GETPROVIDER_EVENT } from './env';

export const withSignIn = makeDecorator({
name: `withSignIn`,
Expand All @@ -13,23 +14,20 @@ export const withSignIn = makeDecorator({

const channel = addons.getChannel();

channel.on('mgt/setProvider', params => {
console.log('setProvider', params);
channel.on(SETPROVIDER_EVENT, params => {
const currentProvider = Providers.globalProvider;
if (params.state === ProviderState.SignedIn && (!currentProvider || currentProvider === mockProvider)) {
Providers.globalProvider = new MsalProvider({
clientId: 'a974dfa0-9f57-49b9-95db-90f04ce2111a'
clientId: CLIENTID
});
console.log('setting msal');
} else if (params.state !== ProviderState.SignedIn && currentProvider !== mockProvider) {
Providers.globalProvider = mockProvider;
console.log('setting mock');
}
});

// Our simple API above simply sets the notes parameter to a string,
// which we send to the channel
channel.emit('mgt/getProvider', { type: 'getProvider' });
channel.emit(GETPROVIDER_EVENT, { type: 'getProvider' });
// we can also add subscriptions here using channel.on('eventName', callback);

return getStory(context);
Expand Down