fix: remove inject
This commit is contained in:
parent
031461f998
commit
918f705c5c
|
|
@ -9,13 +9,12 @@ import {CurrentUser} from './CurrentUser';
|
||||||
import {AppStore} from './application/AppStore';
|
import {AppStore} from './application/AppStore';
|
||||||
import {WebSocketStore} from './message/WebSocketStore';
|
import {WebSocketStore} from './message/WebSocketStore';
|
||||||
import {SnackManager} from './snack/SnackManager';
|
import {SnackManager} from './snack/SnackManager';
|
||||||
import {InjectProvider, StoreMapping} from './inject';
|
|
||||||
import {UserStore} from './user/UserStore';
|
import {UserStore} from './user/UserStore';
|
||||||
import {MessagesStore} from './message/MessagesStore';
|
import {MessagesStore} from './message/MessagesStore';
|
||||||
import {ClientStore} from './client/ClientStore';
|
import {ClientStore} from './client/ClientStore';
|
||||||
import {PluginStore} from './plugin/PluginStore';
|
import {PluginStore} from './plugin/PluginStore';
|
||||||
import {registerReactions} from './reactions';
|
import {registerReactions} from './reactions';
|
||||||
import {StoreContext} from './stores';
|
import {StoreContext, StoreMapping} from './stores';
|
||||||
|
|
||||||
const {port, hostname, protocol, pathname} = window.location;
|
const {port, hostname, protocol, pathname} = window.location;
|
||||||
const slashes = protocol.concat('//');
|
const slashes = protocol.concat('//');
|
||||||
|
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
||||||
import * as React from 'react';
|
|
||||||
import {UserStore} from './user/UserStore';
|
|
||||||
import {SnackManager} from './snack/SnackManager';
|
|
||||||
import {MessagesStore} from './message/MessagesStore';
|
|
||||||
import {CurrentUser} from './CurrentUser';
|
|
||||||
import {ClientStore} from './client/ClientStore';
|
|
||||||
import {AppStore} from './application/AppStore';
|
|
||||||
import {inject as mobxInject, Provider} from 'mobx-react';
|
|
||||||
import {WebSocketStore} from './message/WebSocketStore';
|
|
||||||
import {PluginStore} from './plugin/PluginStore';
|
|
||||||
|
|
||||||
export interface StoreMapping {
|
|
||||||
userStore: UserStore;
|
|
||||||
snackManager: SnackManager;
|
|
||||||
messagesStore: MessagesStore;
|
|
||||||
currentUser: CurrentUser;
|
|
||||||
clientStore: ClientStore;
|
|
||||||
appStore: AppStore;
|
|
||||||
pluginStore: PluginStore;
|
|
||||||
wsStore: WebSocketStore;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type AllStores = Extract<keyof StoreMapping, string>;
|
|
||||||
export type Stores<T extends AllStores> = Pick<StoreMapping, T>;
|
|
||||||
|
|
||||||
export const inject =
|
|
||||||
<I extends AllStores>(...stores: I[]) =>
|
|
||||||
<P extends object>(
|
|
||||||
node: React.ComponentType<P>
|
|
||||||
): React.ComponentType<Pick<P, Exclude<keyof P, I>>> =>
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
mobxInject(...stores)(node) as any;
|
|
||||||
|
|
||||||
export const InjectProvider: React.FC<{stores: StoreMapping}> = ({children, stores}) => (
|
|
||||||
<Provider {...stores}>{children}</Provider>
|
|
||||||
);
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import {StoreMapping} from './inject';
|
|
||||||
import {reaction} from 'mobx';
|
import {reaction} from 'mobx';
|
||||||
import * as Notifications from './snack/browserNotification';
|
import * as Notifications from './snack/browserNotification';
|
||||||
|
import {StoreMapping} from './stores';
|
||||||
|
|
||||||
export const registerReactions = (stores: StoreMapping) => {
|
export const registerReactions = (stores: StoreMapping) => {
|
||||||
const clearAll = () => {
|
const clearAll = () => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue