Skip to content

Commit

Permalink
Add missing rootStore updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
SilasBerger committed Sep 13, 2024
1 parent a6489f2 commit 1f2e54e
Showing 1 changed file with 53 additions and 62 deletions.
115 changes: 53 additions & 62 deletions src/stores/rootStore.ts
Original file line number Diff line number Diff line change
@@ -1,75 +1,66 @@
import React from 'react';
import {DocumentRootStore} from './DocumentRootStore';
import {UserStore} from './UserStore';
import {SessionStore} from './SessionStore';
import {SocketDataStore} from './SocketDataStore';
import {action, reaction} from 'mobx';
import {StudentGroupStore} from './StudentGroupStore';
import PermissionStore from './PermissionStore';
import DocumentStore from './DocumentStore';
import {ToolsStore} from "@site/src/stores/ToolsStore";
import {PageStore} from "@site/src/stores/PageStore";
import { DocumentRootStore } from '@tdev-stores/DocumentRootStore';
import { UserStore } from '@tdev-stores/UserStore';
import { SessionStore } from '@tdev-stores/SessionStore';
import { SocketDataStore } from '@tdev-stores/SocketDataStore';
import { action } from 'mobx';
import { StudentGroupStore } from '@tdev-stores/StudentGroupStore';
import PermissionStore from '@tdev-stores/PermissionStore';
import DocumentStore from '@tdev-stores/DocumentStore';
import { PageStore } from '@tdev-stores/PageStore';
import {ToolsStore} from "./ToolsStore";

export class RootStore {
documentRootStore: DocumentRootStore;
userStore: UserStore;
sessionStore: SessionStore;
socketStore: SocketDataStore;
studentGroupStore: StudentGroupStore;
permissionStore: PermissionStore;
documentStore: DocumentStore;
pageStore: PageStore;
toolsStore: ToolsStore;
documentRootStore: DocumentRootStore;
userStore: UserStore;
sessionStore: SessionStore;
socketStore: SocketDataStore;
studentGroupStore: StudentGroupStore;
permissionStore: PermissionStore;
documentStore: DocumentStore;
pageStore: PageStore;
toolsStore: ToolsStore;

constructor() {
this.documentRootStore = new DocumentRootStore(this);
this.userStore = new UserStore(this);
this.sessionStore = new SessionStore(this);
this.socketStore = new SocketDataStore(this);
this.studentGroupStore = new StudentGroupStore(this);
this.permissionStore = new PermissionStore(this);
this.documentStore = new DocumentStore(this);
this.pageStore = new PageStore(this);
this.toolsStore = new ToolsStore(this);
// @observable accessor initialized = false;
constructor() {
this.documentRootStore = new DocumentRootStore(this);
this.sessionStore = new SessionStore(this);
this.userStore = new UserStore(this);
this.socketStore = new SocketDataStore(this);
this.studentGroupStore = new StudentGroupStore(this);
this.permissionStore = new PermissionStore(this);
this.documentStore = new DocumentStore(this);
this.pageStore = new PageStore(this);
this.toolsStore = new ToolsStore(this);

reaction(
() => this.sessionStore.isLoggedIn,
(isLoggedIn) => {
if (isLoggedIn) {
this.userStore.loadCurrent().then((user) => {
if (this.sessionStore.isLoggedIn) {
this.load();
}
}

@action
load() {
this.userStore.loadCurrent().then((user) => {
if (user) {
this.socketStore.reconnect();
this.socketStore.reconnect();
/**
* load stores
*/
this.userStore.load();
this.studentGroupStore.load();
}
});
} else {
this.cleanup();
}
}
);
}
});
}

@action
load() {
this.userStore.loadCurrent().then((user) => {
if (user) {
this.socketStore.reconnect();
@action
cleanup() {
/**
* load stores
* could be probably ignored since the page gets reloaded on logout?
*/
this.studentGroupStore.load();
}
});
}

@action
cleanup() {
/**
* could be probably ignored since the page gets reloaded on logout?
*/
this.userStore.cleanup();
this.socketStore.cleanup();
this.studentGroupStore.cleanup();
}
this.userStore.cleanup();
this.socketStore.cleanup();
this.studentGroupStore.cleanup();
}
}

export const rootStore = Object.freeze(new RootStore());
Expand Down

0 comments on commit 1f2e54e

Please sign in to comment.