vue-wiguet-chatweb 0.1.9 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue-wiguet-chatweb",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -29,8 +29,9 @@
29
29
  ref="textAreaRef"
30
30
  @input="() => autoAdjustHeight()"
31
31
  @keydown.enter.prevent
32
- @keyup.enter.prevent="submitMessage"
32
+ @keyup.enter="saltoDeLineaOEnviar"
33
33
  />
34
+
34
35
  <button type="submit" class="pointer btn-primary">
35
36
  <IconSend style="width: 20px; height: 20px" />
36
37
  </button>
@@ -127,6 +128,17 @@ watch(
127
128
  }
128
129
  );
129
130
 
131
+ function saltoDeLineaOEnviar(event: KeyboardEvent) {
132
+ if (event.key === "Enter" && event.shiftKey) {
133
+ const val = (event.target as any)?.value || '';
134
+ (event.target as any).value = val + "\n";
135
+ autoAdjustHeight()
136
+ return
137
+ }
138
+
139
+ submitMessage(event);
140
+ }
141
+
130
142
  const submitMessage = async (event: Event) => {
131
143
  if (message.value?.length > 300) {
132
144
  emit("show-toast", {
@@ -26,9 +26,7 @@
26
26
  <div class="chat-message">
27
27
  <div class="bubble" :class="message.esCliente ? 'right' : 'left'">
28
28
  <div :class="message.esCliente ? 'content-right' : 'content-left'">
29
- <div class="message-text">
30
- {{ message.message }}
31
- </div>
29
+ <div class="message-text" style="white-space: pre-line" v-html="convertUrlsToLinks(message.message)"></div>
32
30
  <div class="detail-message flex justify-content-between">
33
31
  <span class="mr-5" v-if="message.sender?.nombreCompleto">
34
32
  {{
@@ -99,6 +97,16 @@ watch(
99
97
  pause();
100
98
  }
101
99
  );
100
+
101
+ function convertUrlsToLinks(content:string) {
102
+ // Expresión regular para detectar URLs
103
+ const urlRegex = /(https?:\/\/[^\s]+)/g;
104
+
105
+ // Reemplazar las URLs con etiquetas <a>
106
+ return content.replace(urlRegex, (url) => {
107
+ return `<a href="${url}" target="_blank">${url}</a>`;
108
+ });
109
+ }
102
110
  </script>
103
111
 
104
112
  <style scoped>
@@ -31,7 +31,7 @@
31
31
  <div class="new-message-badge" v-if="newMessages" >
32
32
  {{ newMessages > 9 ? "9+" : newMessages }}
33
33
  </div>
34
- <a href="javascript:;" @click="toggleButtonsChats = !toggleButtonsChats">
34
+ <a href="javascript:;" @click="props.tokenAuth.length > 10 && toggleChat()">
35
35
  <IconWidget />
36
36
  </a>
37
37
  </div>