rework tgui say long message handling (#17184)

* rework tgui say long message handling

* .

* Fix

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Selis
2025-02-18 18:46:22 +01:00
committed by GitHub
co-authored by Kashargul
parent 0364d69964
commit 494205604c
2 changed files with 19 additions and 8 deletions
@@ -130,4 +130,8 @@
if(type == "entry" || type == "force")
handle_entry(type, payload)
return TRUE
if(type == "lenwarn")
var/mlen = payload["length"]
var/maxlen = payload["maxlength"]
to_chat(client, span_warning(span_bold("Warning") + ": Message with [mlen] exceeded the maximum length of [maxlen]."))
return FALSE
+15 -8
View File
@@ -51,7 +51,7 @@ export function TguiSay() {
keyof typeof RADIO_PREFIXES | null
>(null);
const [size, setSize] = useState(WindowSize.Small);
const [maxLength, setMaxLength] = useState(1024);
const [maxLength, setMaxLength] = useState(4096);
const [minimumHeight, setMinimumHeight] = useState(WindowSize.Small);
const [minimumWidth, setMinimumWidth] = useState(WindowSize.Width);
const [lightMode, setLightMode] = useState(false);
@@ -117,14 +117,21 @@ export function TguiSay() {
const iterator = channelIterator.current;
const prefix = currentPrefix ?? '';
if (value?.length && value.length < maxLength) {
chatHistory.current.add(value);
Byond.sendMessage('entry', {
channel: iterator.current(),
entry: iterator.isSay() ? prefix + value : value,
});
if (value?.length) {
if (value.length < maxLength) {
chatHistory.current.add(value);
Byond.sendMessage('entry', {
channel: iterator.current(),
entry: iterator.isSay() ? prefix + value : value,
});
} else {
Byond.sendMessage('lenwarn', {
length: value.length,
maxlength: maxLength,
});
return;
}
}
handleClose();
}