@esvndev/es-react-template-chat 0.0.95 → 0.0.96

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.
package/dist/index.mjs CHANGED
@@ -91749,8 +91749,8 @@ const ADMINISTRATIVE_ITEMS = [
91749
91749
  const ChatLog = (props) => {
91750
91750
  // ** Props & Store
91751
91751
  //const clipboard = useClipboard()
91752
- useLexicalComposerContext();
91753
- useTranslation();
91752
+ const [editor] = useLexicalComposerContext();
91753
+ const { t } = useTranslation();
91754
91754
  useUploadFile();
91755
91755
  const { typeChat, contactId, chatRoomId, active, messageByGroup, pinnedMessages, setScroll, checkScroll, pinMessageChatRoom, deleteMessageApi, recallMessageApi, get_message_by_group_cursor_api, getPinMessageChatRoomApi, deletePinMessage,
91756
91756
  //updateGroupTagApi,
@@ -91826,8 +91826,8 @@ const ChatLog = (props) => {
91826
91826
  useState(true);
91827
91827
  const [expandedMessages, setExpandedMessages] = useState(new Set());
91828
91828
  const [clickedImageFile, setClickedImageFile] = useState(null);
91829
- useState(false);
91830
- useState(new Set());
91829
+ const [isMultiSelectMode, setIsMultiSelectMode] = useState(false);
91830
+ const [selectedMessages, setSelectedMessages] = useState(new Set());
91831
91831
  const BASE_CONTEXT_ITEMS = [
91832
91832
  "reply", "share", "pin", "bookmark",
91833
91833
  "selectMultiMessage", "detail", "other", "recall", "delete"
@@ -92584,59 +92584,62 @@ const ChatLog = (props) => {
92584
92584
  break;
92585
92585
  }
92586
92586
  }, [clickedImageFile, handleDelete, handleDownloadClick, handleRecall]);
92587
- // const handleFocus = useCallback(() => {
92588
- // editor.focus()
92589
- // }, [editor])
92590
- // const handleReply = useCallback((data: any) => {
92591
- // handleFocus()
92592
- // setReplyMessage({ id: "reply", currentMessage: data })
92593
- // }, [handleFocus])
92594
- // const handleEnterMultiSelectMode = useCallback((message: any) => {
92595
- // setIsMultiSelectMode(true)
92596
- // setSelectedMessages(new Set([message.id]))
92597
- // }, [])
92598
- // const handleExitMultiSelectMode = useCallback(() => {
92599
- // setIsMultiSelectMode(false)
92600
- // setSelectedMessages(new Set())
92601
- // }, [])
92602
- // const handleToggleMessageSelection = useCallback((messageId: string) => {
92603
- // setSelectedMessages(prev => {
92604
- // const newSet = new Set(prev)
92605
- // if (newSet.has(messageId)) {
92606
- // newSet.delete(messageId)
92607
- // } else {
92608
- // newSet.add(messageId)
92609
- // }
92610
- // return newSet
92611
- // })
92612
- // }, [])
92613
- // const handleBatchDelete = useCallback(async () => {
92614
- // if (selectedMessages.size === 0) { return }
92615
- // MySwal.fire({
92616
- // title: t("Confirm"),
92617
- // html: `Bạn có chắc muốn xóa ${selectedMessages.size} tin nhắn đã chọn?`,
92618
- // allowOutsideClick: false,
92619
- // showCancelButton: true,
92620
- // confirmButtonText: t("Delete"),
92621
- // cancelButtonText: t("Cancel"),
92622
- // customClass: {
92623
- // confirmButton: "btn btn-primary",
92624
- // cancelButton: "btn btn-danger ms-1"
92625
- // },
92626
- // buttonsStyling: false
92627
- // }).then(async (result) => {
92628
- // if (result.value) {
92629
- // try {
92630
- // const deletePromises = Array.from(selectedMessages).map(id => deleteMessageApi({ id, chatRoomId: groupChatUsers?.id })
92631
- // )
92632
- // await Promise.all(deletePromises)
92633
- // handleExitMultiSelectMode()
92634
- // } catch (error) {
92635
- // console.error('Error deleting messages:', error)
92636
- // }
92637
- // }
92638
- // })
92639
- // }, [selectedMessages, deleteMessageApi, groupChatUsers?.id, handleExitMultiSelectMode, t])
92587
+ const handleFocus = useCallback(() => {
92588
+ editor.focus();
92589
+ }, [editor]);
92590
+ useCallback((data) => {
92591
+ handleFocus();
92592
+ setReplyMessage({ id: "reply", currentMessage: data });
92593
+ }, [handleFocus]);
92594
+ useCallback((message) => {
92595
+ setIsMultiSelectMode(true);
92596
+ setSelectedMessages(new Set([message.id]));
92597
+ }, []);
92598
+ const handleExitMultiSelectMode = useCallback(() => {
92599
+ setIsMultiSelectMode(false);
92600
+ setSelectedMessages(new Set());
92601
+ }, []);
92602
+ useCallback((messageId) => {
92603
+ setSelectedMessages(prev => {
92604
+ const newSet = new Set(prev);
92605
+ if (newSet.has(messageId)) {
92606
+ newSet.delete(messageId);
92607
+ }
92608
+ else {
92609
+ newSet.add(messageId);
92610
+ }
92611
+ return newSet;
92612
+ });
92613
+ }, []);
92614
+ useCallback(async () => {
92615
+ if (selectedMessages.size === 0) {
92616
+ return;
92617
+ }
92618
+ MySwal$1.fire({
92619
+ title: t("Confirm"),
92620
+ html: `Bạn có chắc muốn xóa ${selectedMessages.size} tin nhắn đã chọn?`,
92621
+ allowOutsideClick: false,
92622
+ showCancelButton: true,
92623
+ confirmButtonText: t("Delete"),
92624
+ cancelButtonText: t("Cancel"),
92625
+ customClass: {
92626
+ confirmButton: "btn btn-primary",
92627
+ cancelButton: "btn btn-danger ms-1"
92628
+ },
92629
+ buttonsStyling: false
92630
+ }).then(async (result) => {
92631
+ if (result.value) {
92632
+ try {
92633
+ const deletePromises = Array.from(selectedMessages).map(id => deleteMessageApi({ id, chatRoomId: groupChatUsers?.id }));
92634
+ await Promise.all(deletePromises);
92635
+ handleExitMultiSelectMode();
92636
+ }
92637
+ catch (error) {
92638
+ console.error('Error deleting messages:', error);
92639
+ }
92640
+ }
92641
+ });
92642
+ }, [selectedMessages, deleteMessageApi, groupChatUsers?.id, handleExitMultiSelectMode, t]);
92640
92643
  // const handleBatchRecall = useCallback(async () => {
92641
92644
  // if (selectedMessages.size === 0) { return }
92642
92645
  // MySwal.fire({