2021-08-19 17:00:31 +01:00
|
|
|
import { Injectable } from '@angular/core';
|
2021-08-24 14:07:27 +01:00
|
|
|
import { localstoreService } from '../localstore.service'
|
2021-08-19 17:00:31 +01:00
|
|
|
import { SHA1 } from 'crypto-js'
|
|
|
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
|
providedIn: 'root'
|
|
|
|
|
})
|
|
|
|
|
export class ChatMessageService {
|
|
|
|
|
|
|
|
|
|
private _message = []
|
|
|
|
|
// local storage keyName
|
|
|
|
|
private keyName: string;
|
|
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
|
|
2023-01-12 15:27:09 +01:00
|
|
|
this.keyName = (SHA1('chat'+"ChatMessageService")).toString()
|
2021-08-19 17:00:31 +01:00
|
|
|
|
|
|
|
|
setTimeout(()=> {
|
|
|
|
|
let restore = localstoreService.get(this.keyName, {})
|
|
|
|
|
this._message = restore.message || {}
|
|
|
|
|
}, 10)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-24 14:07:27 +01:00
|
|
|
get message() {
|
|
|
|
|
return this._message
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-19 17:00:31 +01:00
|
|
|
getMessages(roomId) {
|
|
|
|
|
return this._message[roomId] || []
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-24 14:07:27 +01:00
|
|
|
add(roomId:string, message: any[]) {
|
2021-08-19 17:00:31 +01:00
|
|
|
this._message[roomId] = message
|
|
|
|
|
|
|
|
|
|
setTimeout(()=> {
|
|
|
|
|
localstoreService.set(this.keyName, {
|
|
|
|
|
message: this._message
|
|
|
|
|
})
|
2021-08-24 14:07:27 +01:00
|
|
|
}, 10)
|
2021-08-19 17:00:31 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export const ChatMessageStore = new ChatMessageService()
|