62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
import Immerable from '@Models/GeneralImmer';
|
|
import cloneDeep from 'lodash/cloneDeep';
|
|
import {
|
|
MessageDialogObject,
|
|
MessageDialogList,
|
|
MessageConfirmObject,
|
|
MessageConfirmList,
|
|
} from './types';
|
|
|
|
class Message extends Immerable {
|
|
public messageDialogList: MessageDialogList;
|
|
|
|
public messageConfirmList: MessageConfirmList;
|
|
|
|
public constructor() {
|
|
super();
|
|
this.messageDialogList = {
|
|
list: [],
|
|
};
|
|
this.messageConfirmList = {
|
|
list: [],
|
|
};
|
|
}
|
|
|
|
public initialize(): void {
|
|
this.messageDialogList = {
|
|
list: [],
|
|
};
|
|
this.messageConfirmList = {
|
|
list: [],
|
|
};
|
|
}
|
|
|
|
public updateMessageDialogList(newMessageDialogObject: MessageDialogObject): void {
|
|
const newCloneMessageDialogObject = cloneDeep(newMessageDialogObject);
|
|
const newCloneMessageDialogList = cloneDeep(this.messageDialogList);
|
|
newCloneMessageDialogList.list.push(newCloneMessageDialogObject);
|
|
this.messageDialogList = newCloneMessageDialogList;
|
|
}
|
|
|
|
public removeMessageDialog(): void {
|
|
const newCloneMessageDialogList = cloneDeep(this.messageDialogList.list);
|
|
const newSliceDialogList = newCloneMessageDialogList.slice(1);
|
|
this.messageDialogList.list = newSliceDialogList;
|
|
}
|
|
|
|
public updateMessageConfirmList(newMessageConfirmObject: MessageConfirmObject): void {
|
|
const newCloneMessageConfirmObject = cloneDeep(newMessageConfirmObject);
|
|
const newCloneMessageConfirmList = cloneDeep(this.messageConfirmList);
|
|
newCloneMessageConfirmList.list.push(newCloneMessageConfirmObject);
|
|
this.messageConfirmList = newCloneMessageConfirmList;
|
|
}
|
|
|
|
public removeMessageConfirm(): void {
|
|
const newCloneMessageConfirmList = cloneDeep(this.messageConfirmList.list);
|
|
const newSliceConfirmList = newCloneMessageConfirmList.slice(1);
|
|
this.messageConfirmList.list = newSliceConfirmList;
|
|
}
|
|
}
|
|
|
|
export default Message;
|