implement outbox for items
This commit is contained in:
Vendored
+11
@@ -132,6 +132,7 @@
|
|||||||
}
|
}
|
||||||
// list
|
// list
|
||||||
set(key, item) {
|
set(key, item) {
|
||||||
|
this.remove(key);
|
||||||
this.value.set(key, item);
|
this.value.set(key, item);
|
||||||
this.additionHandlers.forEach((handler) => handler(item));
|
this.additionHandlers.forEach((handler) => handler(item));
|
||||||
this.callSubscriptions();
|
this.callSubscriptions();
|
||||||
@@ -404,6 +405,9 @@
|
|||||||
outbox(id) {
|
outbox(id) {
|
||||||
return id + "outbox";
|
return id + "outbox";
|
||||||
},
|
},
|
||||||
|
itemOutbox(id) {
|
||||||
|
return id + "item-outbox";
|
||||||
|
},
|
||||||
composingMessage(id) {
|
composingMessage(id) {
|
||||||
return id + "composing-message";
|
return id + "composing-message";
|
||||||
}
|
}
|
||||||
@@ -420,6 +424,7 @@
|
|||||||
messages;
|
messages;
|
||||||
items;
|
items;
|
||||||
outbox;
|
outbox;
|
||||||
|
itemOutbox;
|
||||||
isOutBoxEmpty;
|
isOutBoxEmpty;
|
||||||
composingMessage;
|
composingMessage;
|
||||||
primaryChannelInput;
|
primaryChannelInput;
|
||||||
@@ -448,6 +453,7 @@
|
|||||||
this.messages = restoreListState(storageKeys.messages(id));
|
this.messages = restoreListState(storageKeys.messages(id));
|
||||||
this.items = restoreMapState(storageKeys.items(id));
|
this.items = restoreMapState(storageKeys.items(id));
|
||||||
this.outbox = restoreListState(storageKeys.outbox(id));
|
this.outbox = restoreListState(storageKeys.outbox(id));
|
||||||
|
this.itemOutbox = restoreListState(storageKeys.itemOutbox(id));
|
||||||
this.isOutBoxEmpty = createProxyState(
|
this.isOutBoxEmpty = createProxyState(
|
||||||
[this.outbox],
|
[this.outbox],
|
||||||
() => this.outbox.value.size == 0
|
() => this.outbox.value.size == 0
|
||||||
@@ -563,6 +569,7 @@
|
|||||||
const messageString = JSON.stringify(chatMessage);
|
const messageString = JSON.stringify(chatMessage);
|
||||||
UDN.sendMessage(chatMessage.channel, messageString);
|
UDN.sendMessage(chatMessage.channel, messageString);
|
||||||
} else {
|
} else {
|
||||||
|
if (chatMessage.itemData) return this.itemOutbox.add(chatMessage);
|
||||||
this.outbox.add(chatMessage);
|
this.outbox.add(chatMessage);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -571,6 +578,10 @@
|
|||||||
this.sendMessage(message);
|
this.sendMessage(message);
|
||||||
this.outbox.remove(message);
|
this.outbox.remove(message);
|
||||||
});
|
});
|
||||||
|
this.itemOutbox.value.forEach((message) => {
|
||||||
|
this.sendMessage(message);
|
||||||
|
this.itemOutbox.remove(message);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
clearMessages = () => {
|
clearMessages = () => {
|
||||||
this.messages.clear();
|
this.messages.clear();
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bloatless-react": "^1.3.3",
|
"bloatless-react": "^1.3.4",
|
||||||
"esbuild": "latest",
|
"esbuild": "latest",
|
||||||
"udn-frontend": "^1.0.7-beta1"
|
"udn-frontend": "^1.0.7-beta1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ export class Chat {
|
|||||||
messages: React.ListState<ChatMessage>;
|
messages: React.ListState<ChatMessage>;
|
||||||
items: React.MapState<Item>;
|
items: React.MapState<Item>;
|
||||||
outbox: React.ListState<ChatMessage>;
|
outbox: React.ListState<ChatMessage>;
|
||||||
|
itemOutbox: React.ListState<ChatMessage>;
|
||||||
isOutBoxEmpty: React.State<boolean>;
|
isOutBoxEmpty: React.State<boolean>;
|
||||||
|
|
||||||
composingMessage: React.State<string>;
|
composingMessage: React.State<string>;
|
||||||
@@ -83,6 +84,7 @@ export class Chat {
|
|||||||
this.messages = React.restoreListState(storageKeys.messages(id));
|
this.messages = React.restoreListState(storageKeys.messages(id));
|
||||||
this.items = React.restoreMapState(storageKeys.items(id));
|
this.items = React.restoreMapState(storageKeys.items(id));
|
||||||
this.outbox = React.restoreListState(storageKeys.outbox(id));
|
this.outbox = React.restoreListState(storageKeys.outbox(id));
|
||||||
|
this.itemOutbox = React.restoreListState(storageKeys.itemOutbox(id));
|
||||||
this.isOutBoxEmpty = React.createProxyState(
|
this.isOutBoxEmpty = React.createProxyState(
|
||||||
[this.outbox],
|
[this.outbox],
|
||||||
() => this.outbox.value.size == 0
|
() => this.outbox.value.size == 0
|
||||||
@@ -236,6 +238,7 @@ export class Chat {
|
|||||||
const messageString = JSON.stringify(chatMessage);
|
const messageString = JSON.stringify(chatMessage);
|
||||||
UDN.sendMessage(chatMessage.channel, messageString);
|
UDN.sendMessage(chatMessage.channel, messageString);
|
||||||
} else {
|
} else {
|
||||||
|
if (chatMessage.itemData) return this.itemOutbox.add(chatMessage);
|
||||||
this.outbox.add(chatMessage);
|
this.outbox.add(chatMessage);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -245,6 +248,10 @@ export class Chat {
|
|||||||
this.sendMessage(message);
|
this.sendMessage(message);
|
||||||
this.outbox.remove(message);
|
this.outbox.remove(message);
|
||||||
});
|
});
|
||||||
|
this.itemOutbox.value.forEach((message) => {
|
||||||
|
this.sendMessage(message);
|
||||||
|
this.itemOutbox.remove(message);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
clearMessages = (): void => {
|
clearMessages = (): void => {
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ export const storageKeys = {
|
|||||||
return id + "outbox";
|
return id + "outbox";
|
||||||
},
|
},
|
||||||
|
|
||||||
|
itemOutbox(id: string): string {
|
||||||
|
return id + "item-outbox";
|
||||||
|
},
|
||||||
|
|
||||||
composingMessage(id: string): string {
|
composingMessage(id: string): string {
|
||||||
return id + "composing-message";
|
return id + "composing-message";
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user