51 lines
924 B
TypeScript
51 lines
924 B
TypeScript
|
import { TActionsShare } from '../actions/share';
|
||
|
import { SHARE } from '../actions/actionsTypes';
|
||
|
|
||
|
export interface IShareServer {
|
||
|
server: string;
|
||
|
version: string;
|
||
|
}
|
||
|
|
||
|
export type TShareSettings = Record<string, string | number | boolean>;
|
||
|
|
||
|
export interface IShareUser {
|
||
|
id: string;
|
||
|
token: string;
|
||
|
username: string;
|
||
|
roles: string[];
|
||
|
}
|
||
|
|
||
|
export interface IShare {
|
||
|
user: IShareUser | {};
|
||
|
server: IShareServer | {};
|
||
|
settings: TShareSettings;
|
||
|
}
|
||
|
|
||
|
export const initialState: IShare = {
|
||
|
user: {},
|
||
|
server: {},
|
||
|
settings: {}
|
||
|
};
|
||
|
|
||
|
export default function share(state = initialState, action: TActionsShare): IShare {
|
||
|
switch (action.type) {
|
||
|
case SHARE.SELECT_SERVER:
|
||
|
return {
|
||
|
...state,
|
||
|
server: action.server
|
||
|
};
|
||
|
case SHARE.SET_USER:
|
||
|
return {
|
||
|
...state,
|
||
|
user: action.user
|
||
|
};
|
||
|
case SHARE.SET_SETTINGS:
|
||
|
return {
|
||
|
...state,
|
||
|
settings: action.settings
|
||
|
};
|
||
|
default:
|
||
|
return state;
|
||
|
}
|
||
|
}
|