@pubuduth-aplicy/chat-ui 2.1.68 → 2.1.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,4 +27,49 @@ export const fetchMessages = async (chatId: string|undefined, userid: string,pag
27
27
  console.error("Error fetching messages:", error);
28
28
  return []; // Return a default empty array on error
29
29
  }
30
- };
30
+ };
31
+
32
+ export const setEditMessage = async ({
33
+ messageId,
34
+ userId,
35
+ newMessage
36
+ }: {
37
+ messageId: string;
38
+ userId: string;
39
+ newMessage: string;
40
+ }) => {
41
+ const apiClient = getApiClient();
42
+ try {
43
+ const response = await apiClient.put(`${Path.editMessage}/${messageId}`, {
44
+ userId,
45
+ newMessage
46
+ });
47
+ return response.data;
48
+ } catch (error) {
49
+ console.error("Error editing message:", error);
50
+ throw error;
51
+ }
52
+ };
53
+
54
+
55
+ export const deleteMessage = async ({
56
+ messageId,
57
+ userId
58
+ }: {
59
+ messageId: string;
60
+ userId: string;
61
+ }) => {
62
+ const apiClient = getApiClient();
63
+ try {
64
+ const response = await apiClient.delete(
65
+ `${Path.deleteMessage}/${messageId}`,
66
+ {
67
+ data: { userId } // Sending userId in the request body
68
+ }
69
+ );
70
+ return response.data;
71
+ } catch (error) {
72
+ console.error("Error deleting message:", error);
73
+ throw error;
74
+ }
75
+ };
@@ -36,8 +36,8 @@
36
36
  display: inline-flex;
37
37
  padding-top: 2.4125rem;
38
38
  padding-bottom: 2.45rem;
39
- /* padding-left: 1rem; */
40
39
  padding-right: 1rem;
40
+ padding-left: 1rem;
41
41
  gap: 1rem;
42
42
  border-bottom: 0.5px solid lightgray;
43
43
  width: 100%;
@@ -49,16 +49,15 @@
49
49
 
50
50
  .chatSidebarSearchbarContainer {
51
51
  display: flex;
52
- padding-top: 0.5rem;
53
- padding-bottom: 0.5rem;
52
+ padding: 0.5rem 1rem;
54
53
  width: 100%;
55
- padding-left: 1rem;
56
- /* flex-basis: 0px; */
57
- shrink: 1;
54
+ border: 1px solid #ccc; /* Consistent border color */
55
+ border-radius: 4px;
58
56
  gap: 1rem;
59
57
  justify-content: flex-start;
60
58
  align-items: center;
61
59
  height: 2.5rem;
60
+ background-color: rgb(248, 249, 249); /* Move bg color here */
62
61
  }
63
62
 
64
63
  .chatSidebarSearchbarImg {
@@ -67,41 +66,36 @@
67
66
  align-items: center;
68
67
  width: 1.5rem;
69
68
  height: 1.5rem;
70
- padding-left: 2.50px;
71
- padding-right: 3px;
72
- padding-top: 2.50px;
73
- padding-bottom: 3px;
74
- }
75
-
76
- .loader-wrapper {
77
- display: flex;
78
- align-items: center;
79
- justify-content: center;
80
- height: 100%;
81
- width: 100%;
69
+ padding: 2.5px 3px;
82
70
  }
83
71
 
84
72
  .chatSidebarInput {
85
73
  outline: none;
86
74
  padding: 8px 4px;
87
- /* Keep original padding */
88
75
  font-size: 1rem;
89
- border-radius: 4px;
90
76
  line-height: 1.5rem;
91
77
  font-weight: 400;
92
- border: 1px solid #ccc;
93
78
  width: 100%;
94
- /* Ensure full width */
95
- /* min-width: 400px; */
96
79
  max-width: 600px;
80
+ border: none !important; /* Force no border */
81
+ background: transparent; /* Inherit from container */
82
+ box-shadow: none !important; /* Remove any shadow */
97
83
  }
98
84
 
99
- .chatSidebarInput:focus {
100
- border: 1px solid #12bbb5 !important;
85
+ .chatSidebarSearchbarContainer:focus-within {
86
+ border: 1px solid #12bbb5;
101
87
  box-shadow: 0 0 5px rgba(18, 187, 181, 0.5);
102
88
  transition: border-color 0.3s ease-in-out;
103
89
  }
104
90
 
91
+ .loader-wrapper {
92
+ display: flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ height: 100%;
96
+ width: 100%;
97
+ }
98
+
105
99
  .chatSidebarConversations {
106
100
  display: flex;
107
101
  overflow: auto;
@@ -380,19 +374,38 @@
380
374
  }
381
375
 
382
376
  .chatMessageInputSubmit {
383
- /* display: flex;
384
- position: absolute;
385
- top: 0;
386
- bottom: 0;
387
- align-items: center; */
388
- padding: 8px;
389
- border-radius: 100%;
390
- background: #12bbb5;
377
+ background-color: #12bbb5;
378
+ border: none;
379
+ width: 40px;
380
+ height: 40px;
381
+ padding: 0;
382
+ border-radius: 6px; /* or 0px for sharp corners */
383
+ cursor: pointer;
384
+ display: inline-flex;
385
+ align-items: center;
386
+ justify-content: center;
387
+ transition: background-color 0.3s ease;
388
+ }
389
+
390
+ .chatMessageInputSubmit:hover {
391
+ background-color: #0d9a94;
392
+ }
393
+
394
+ /* .chatMessageInputSubmit:disabled {
395
+ background-color: #cbd5e1;
396
+ cursor: not-allowed;
397
+ } */
398
+
399
+ .icon {
400
+ height: 18px;
401
+ width: 18px;
391
402
  }
392
403
 
404
+
393
405
  .chat-container {
394
406
  width: 100%;
395
407
  font-family: Arial, sans-serif;
408
+ margin-bottom: 8px;
396
409
  }
397
410
 
398
411
  .message-row {
@@ -402,6 +415,7 @@
402
415
  gap: 10px;
403
416
  word-break: break-all;
404
417
  max-width: 100%;
418
+ width: 100%;
405
419
 
406
420
  }
407
421
 
@@ -418,27 +432,44 @@
418
432
  display: flex;
419
433
  flex-direction: column;
420
434
  max-width: 70%;
435
+ position: relative;
436
+ }
437
+
438
+ .amk7{
439
+ position: absolute;
440
+ top: 0;
441
+ display: block;
442
+ width: 8px;
443
+ height: 13px;
444
+ right: -8px;
445
+ }
446
+
447
+ :root{
448
+ font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
421
449
  }
422
450
 
423
451
  .chat-bubble {
424
452
 
425
453
  background-color: #f3f4f6;
426
- border-radius: 0.5rem;
427
- padding: 0.5rem;
454
+ border-radius: 0.5rem ;
455
+ /* padding: 0.5rem; */
428
456
  font-size: 14px;
429
457
  max-width: 20rem;
430
458
  margin-bottom: 5px;
459
+ position: relative;
460
+ word-break: break-word;
461
+ padding: 8px 12px;
431
462
  }
432
463
 
433
464
  .outgoing .chat-bubble {
434
- background-color: #12bbb5;
435
- color: white;
465
+ background-color: #aef7e883;
466
+ color: #595c61;
436
467
 
437
468
  }
438
469
 
439
470
  .incoming .chat-bubble {
440
- background-color: #dedee4b9;
441
- color: black;
471
+ background-color: #EBEDF0;
472
+ color: #595c61;
442
473
  }
443
474
 
444
475
  .timestamp_incomeing {
@@ -463,7 +494,7 @@
463
494
  align-items: center;
464
495
  float: right;
465
496
  position: relative;
466
- justify-content: end;
497
+ justify-content: flex-end;
467
498
  }
468
499
 
469
500
  .status-icon {
@@ -472,6 +503,7 @@
472
503
  margin-left: 10px;
473
504
  right: 10px;
474
505
  font-size: 12px;
506
+ display: inline-flex;
475
507
  }
476
508
 
477
509
  .read {
@@ -507,16 +539,21 @@
507
539
  .grid-container {
508
540
  height: 550px;
509
541
  grid-template-columns: repeat(9, minmax(0, 1fr));
542
+ gap: 1rem;
510
543
  }
511
544
 
512
545
  .sidebarContainer {
513
546
  /* display: grid; */
514
- grid-column: span 4;
547
+ grid-column: span 3;
548
+ background-color: rgb(248, 249, 249);
549
+ border-radius: 1%;
515
550
  }
516
551
 
517
552
  .messageContainer {
518
553
  display: grid;
519
- grid-column: span 5;
554
+ grid-column: span 6;
555
+ border: 1px solid #ddd;
556
+ border-radius: 1%;
520
557
  }
521
558
 
522
559
  .chatMessageContainerInnerDiv_button {
@@ -753,7 +790,6 @@
753
790
  width: 12px;
754
791
  height: 12px;
755
792
  border-radius: 50%;
756
- border: 2px solid white;
757
793
  /* Border for a neat appearance */
758
794
  }
759
795
 
@@ -764,9 +800,9 @@
764
800
  }
765
801
 
766
802
  /* For offline status */
767
- .chatSidebarStatusDot.offline {
803
+ /* .chatSidebarStatusDot.offline {
768
804
  background-color: rgba(179, 170, 170, 0.712);
769
- }
805
+ } */
770
806
 
771
807
  .conversation-container {
772
808
  display: flex;
@@ -775,14 +811,18 @@
775
811
  padding: 12px;
776
812
  /* border-radius: 8px; */
777
813
  border-bottom: .5px solid lightgray;
778
- background-color: white;
814
+ background-color: rgb(248, 249, 249);
779
815
  /* box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); */
780
816
  cursor: pointer;
781
817
  transition: background-color 0.3s ease-in-out;
782
818
  }
783
819
 
784
820
  .conversation-container:hover {
785
- background-color: #f5f5f5;
821
+ background-color: rgb(255, 255, 255);
822
+ }
823
+
824
+ .conversation-container.selected {
825
+ background-color: rgb(255, 255, 255);
786
826
  }
787
827
 
788
828
  .conversation-avatar {
@@ -815,9 +855,10 @@
815
855
  }
816
856
 
817
857
  .conversation-name {
818
- font-size: 14px;
858
+ font-size: 1rem;
819
859
  font-weight: bold;
820
- color: #333;
860
+ color: #1f2937;
861
+ font-weight: 500;
821
862
  }
822
863
 
823
864
  .conversation-time {
@@ -1150,16 +1191,113 @@
1150
1191
  /* margin-top: 0.5rem; */
1151
1192
  }
1152
1193
 
1153
- .media-item {
1194
+ .media-item {
1154
1195
  background: #f3f4f6;
1155
1196
  border-radius: 0.375rem;
1156
1197
  /* reduced from 0.75rem */
1157
- padding: 0.5rem;
1198
+ padding: 0.5rem;
1158
1199
  overflow: hidden;
1159
1200
  display: flex;
1160
1201
  flex-direction: column;
1161
1202
  align-items: start;
1162
1203
  width: 246px;
1204
+ }
1205
+
1206
+ /* .media-grid {
1207
+ display: grid;
1208
+ gap: 2px;
1209
+ border-radius: 8px;
1210
+ overflow: hidden;
1211
+ width: 246px;
1212
+ margin: 4px 0;
1213
+ }
1214
+
1215
+ /* Single media item */
1216
+ /* .media-grid.single-media {
1217
+ grid-template-columns: 1fr;
1218
+ } */
1219
+
1220
+ /* Two media items */
1221
+ /* .media-grid.two-media {
1222
+ grid-template-columns: 1fr 1fr;
1223
+ } */
1224
+
1225
+ /* Three media items */
1226
+ /* .media-grid.three-media {
1227
+ grid-template-columns: 1fr 1fr;
1228
+ grid-template-rows: 1fr 1fr;
1229
+ } */
1230
+
1231
+ /* .media-grid.three-media .media-item:first-child {
1232
+ grid-row: span 2;
1233
+ } */
1234
+
1235
+ /* Four media items */
1236
+ /* .media-grid.four-media {
1237
+ grid-template-columns: 1fr 1fr;
1238
+ grid-template-rows: 1fr 1fr;
1239
+ } */
1240
+
1241
+ /* Media item styling */
1242
+ /* .media-item {
1243
+ position: relative;
1244
+ width: 246px;
1245
+ height: 100%; */
1246
+ /* aspect-ratio: 1; */
1247
+ /* overflow: hidden;
1248
+ } */
1249
+
1250
+ /* .media-item img {
1251
+ width: 100%;
1252
+ height: 100%;
1253
+ object-fit: cover; */
1254
+ /* display: block; */
1255
+ /* } */
1256
+
1257
+ /* Adjust aspect ratio for single media */
1258
+ /* .single-media .media-item {
1259
+ aspect-ratio: auto;
1260
+ max-height: 300px;
1261
+ } */
1262
+
1263
+ /* For more than 4 items */
1264
+ /* .media-grid.multi-media:not(.two-media):not(.three-media):not(.four-media) {
1265
+ grid-template-columns: repeat(2, 1fr);
1266
+ }
1267
+
1268
+ .two-media-item{
1269
+ width: 123px;
1270
+ }
1271
+
1272
+ .three-media-item
1273
+ {
1274
+ width: 82px;
1275
+ }
1276
+
1277
+ .four-media-item
1278
+ {
1279
+ width: 100%;
1280
+ } */ */
1281
+
1282
+ /* Optional: Add overlay for additional items count */
1283
+ .media-item.count-overlay {
1284
+ position: relative;
1285
+ }
1286
+
1287
+ .media-item.count-overlay::after {
1288
+ content: "+" attr(data-count);
1289
+ position: absolute;
1290
+ top: 0;
1291
+ left: 0;
1292
+ right: 0;
1293
+ bottom: 0;
1294
+ background: rgba(0, 0, 0, 0.5);
1295
+ color: white;
1296
+ display: flex;
1297
+ align-items: center;
1298
+ justify-content: center;
1299
+ font-size: 24px;
1300
+ font-weight: bold;
1163
1301
  }
1164
1302
 
1165
1303
  .media-content {
@@ -1190,7 +1328,7 @@
1190
1328
 
1191
1329
  .chat-bubble {
1192
1330
  background-color: #e5e7eb;
1193
- /* padding: 0.5rem 0.75rem; */
1331
+ /* padding: 0.5rem 0.75rem; */
1194
1332
  border-radius: 0.375rem;
1195
1333
  margin-top: 0.5rem;
1196
1334
  max-width: 100%;
@@ -1213,7 +1351,7 @@
1213
1351
 
1214
1352
  .document-preview {
1215
1353
  position: relative;
1216
- width: 246px;
1354
+ width: 226px;
1217
1355
  height: 60px;
1218
1356
  /* Increased height to accommodate filename */
1219
1357
  border-radius: 12px;
@@ -1308,78 +1446,117 @@
1308
1446
  background: rgba(255, 255, 255, 1);
1309
1447
  }
1310
1448
 
1449
+ .message-options {
1450
+ position: absolute;
1451
+ top: 24px;
1452
+ right: 8px;
1453
+ display: flex;
1454
+ gap: 8px;
1455
+ background-color: #ffffff;
1456
+ border-radius: 18px;
1457
+ padding: 4px;
1458
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
1459
+ z-index: 10;
1460
+ transition: opacity 0.2s ease;
1461
+ }
1311
1462
 
1312
-
1313
- .circular-progress-container {
1314
- position: relative;
1315
- width: 100%;
1316
- height: 200px;
1463
+ .message-option-btn {
1317
1464
  display: flex;
1318
- justify-content: center;
1319
1465
  align-items: center;
1466
+ justify-content: center;
1467
+ width: 28px;
1468
+ height: 28px;
1469
+ border-radius: 50%;
1470
+ border: none;
1471
+ background-color: transparent;
1472
+ color: #54656f;
1473
+ cursor: pointer;
1474
+ transition: background-color 0.2s ease;
1475
+ }
1476
+
1477
+ .message-option-btn:hover {
1478
+ background-color: #f0f2f5;
1479
+ }
1480
+
1481
+ .more-options-container {
1482
+ position: relative;
1320
1483
  }
1321
1484
 
1322
- .media-preview-background {
1485
+ .delete-option {
1323
1486
  position: absolute;
1324
- width: 100%;
1325
- height: 100%;
1326
- filter: blur(5px);
1327
- opacity: 0.7;
1487
+ top: -36px;
1488
+ right: 0;
1489
+ background-color: #ffffff;
1490
+ border-radius: 8px;
1491
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
1492
+ padding: 8px;
1493
+ z-index: 20;
1494
+ min-width: 120px;
1328
1495
  }
1329
1496
 
1330
- .blurred-preview {
1497
+ .delete-btn {
1498
+ display: flex;
1499
+ align-items: center;
1500
+ gap: 8px;
1331
1501
  width: 100%;
1332
- height: 100%;
1333
- object-fit: cover;
1502
+ padding: 8px;
1503
+ border: none;
1504
+ background-color: transparent;
1505
+ color: #ea4335;
1506
+ cursor: pointer;
1507
+ border-radius: 4px;
1508
+ transition: background-color 0.2s ease;
1334
1509
  }
1335
1510
 
1336
- .circular-progress {
1337
- position: relative;
1338
- width: 80px;
1339
- height: 80px;
1511
+ .delete-btn:hover {
1512
+ background-color: #f0f2f5;
1340
1513
  }
1341
1514
 
1342
- .circular-progress-svg {
1343
- width: 100%;
1344
- height: 100%;
1345
- transform: rotate(-90deg);
1515
+
1516
+ .edited-label {
1517
+ color: #999;
1518
+ font-size: 0.8em;
1519
+ margin-left: 5px;
1520
+ font-style: italic;
1346
1521
  }
1347
1522
 
1348
- .circular-progress-track {
1349
- fill: none;
1350
- stroke: #eee;
1351
- stroke-width: 4;
1523
+ .deleted-message {
1524
+ color: #999;
1525
+ font-style: italic;
1352
1526
  }
1353
1527
 
1354
- .circular-progress-bar {
1355
- fill: none;
1356
- stroke: #4CAF50;
1357
- stroke-width: 4;
1358
- stroke-linecap: round;
1359
- transition: stroke-dasharray 0.3s ease;
1528
+ .edit-message-container {
1529
+ width: 100%;
1530
+ margin-bottom: 8px;
1360
1531
  }
1361
1532
 
1362
- .circular-progress-text {
1363
- position: absolute;
1364
- top: 50%;
1365
- left: 50%;
1366
- transform: translate(-50%, -50%);
1367
- font-size: 16px;
1368
- font-weight: bold;
1369
- color: #333;
1533
+ .edit-message-input {
1534
+ width: 100%;
1535
+ padding: 8px;
1536
+ border: 1px solid #ddd;
1537
+ border-radius: 4px;
1538
+ margin-bottom: 5px;
1370
1539
  }
1371
1540
 
1372
- /* Error message (on top of blurred background) */
1373
- .upload-error {
1374
- position: relative;
1541
+ .edit-actions {
1375
1542
  display: flex;
1376
- justify-content: center;
1377
- align-items: center;
1378
- width: 100%;
1379
- height: 100%;
1380
- color: #f44336;
1381
- font-weight: bold;
1382
- background-color: rgba(0, 0, 0, 0.3);
1543
+ gap: 5px;
1383
1544
  }
1384
1545
 
1385
- /* Rest of the CSS remains the same as previous implementation */
1546
+ .save-edit,
1547
+ .cancel-edit {
1548
+ padding: 4px 8px;
1549
+ border: none;
1550
+ border-radius: 4px;
1551
+ cursor: pointer;
1552
+ }
1553
+
1554
+ .save-edit {
1555
+ background-color: #4CAF50;
1556
+ color: white;
1557
+ }
1558
+
1559
+ .cancel-edit {
1560
+ background-color: #f44336;
1561
+ color: white;
1562
+ }