1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import type {StoreDefinition} from 'reflux';
- import {createStore} from 'reflux';
- import {OnboardingTaskKey} from 'sentry/types/onboarding';
- interface DemoWalkthroughStoreDefinition extends StoreDefinition {
- activateGuideAnchor(guide: string): void;
- get(guide: string): boolean;
- }
- const storeConfig: DemoWalkthroughStoreDefinition = {
- issueGuideAnchor: false,
- sidebarGuideAnchor: false,
- init() {
- // XXX: Do not use `this.listenTo` in this store. We avoid usage of reflux
- // listeners due to their leaky nature in tests.
- },
- activateGuideAnchor(task: OnboardingTaskKey) {
- switch (task) {
- case OnboardingTaskKey.ISSUE_GUIDE:
- this.issueGuideAnchor = true;
- this.trigger(this.issueGuideAnchor);
- break;
- case OnboardingTaskKey.SIDEBAR_GUIDE:
- this.sidebarGuideAnchor = true;
- this.trigger(this.sidebarGuideAnchor);
- break;
- default:
- }
- },
- get(guide: string) {
- switch (guide) {
- case 'issue':
- return this.issueGuideAnchor;
- case 'sidebar':
- return this.sidebarGuideAnchor;
- default:
- return false;
- }
- },
- };
- /**
- * This store is used to hold local user preferences
- * Side-effects (like reading/writing to cookies) are done in associated actionCreators
- */
- const DemoWalkthroughStore = createStore(storeConfig);
- export default DemoWalkthroughStore;
|