Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3631 | Rev 3638 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3631 Rev 3633
Línea 1... Línea 1...
1
import React, { useEffect, useRef, useState } from 'react';
1
import React, { useEffect, useRef, useState } from 'react';
Línea 2... Línea 2...
2
 
2
 
3
import { useAlert, useApi, useModal, usePagination } from '@shared/hooks';
3
import { useAlert, useApi, useModal, usePagination } from '@shared/hooks';
4
import { saveMessage } from '@inmail/services';
4
import { saveMessage, reportMessage } from '@inmail/services';
Línea 5... Línea 5...
5
import { ReportModal } from '@shared/components';
5
import { ReportModal } from '@shared/components';
6
 
6
 
7
export const useMessages = (conversation) => {
7
export const useMessages = (conversation) => {
8
  const [messages, setMessages] = useState([]);
8
  const [messages, setMessages] = useState([]);
Línea 9... Línea 9...
9
  const [reportedUuid, setReportedUuid] = useState(null);
9
  const [reportedUrl, setReportedUrl] = useState(null);
Línea 10... Línea 10...
10
  const messagesEndRef = useRef(null);
10
  const messagesEndRef = useRef(null);
Línea 25... Línea 25...
25
 
25
 
26
  const { execute: executeReport } = useApi(reportMessage, {
26
  const { execute: executeReport } = useApi(reportMessage, {
27
    onSuccess: (data) => {
27
    onSuccess: (data) => {
28
      setMessages((prevMessages) =>
28
      setMessages((prevMessages) =>
29
        prevMessages.map((message) =>
29
        prevMessages.map((message) =>
30
          message.uuid === reportedUuid
30
          message.abuse_report_url === reportedUrl
31
            ? { ...message, content: 'Contenido reportado', contentType: 'text' }
31
            ? { ...message, content: 'Contenido reportado', contentType: 'text' }
32
            : message
32
            : message
33
        )
33
        )
34
      );
34
      );
35
      closeModal();
35
      closeModal();
36
      showSuccess(data);
36
      showSuccess(data);
37
      setReportedUuid(null);
37
      setReportedUrl(null);
38
    },
38
    },
39
    onError: (error) => {
39
    onError: (error) => {
40
      showError(error.message);
40
      showError(error.message);
41
      setReportedUuid(null);
41
      setReportedUrl(null);
42
    }
42
    }
Línea 43... Línea 43...
43
  });
43
  });
44
 
44
 
Línea 49... Línea 49...
49
      behavior: 'smooth',
49
      behavior: 'smooth',
50
      block: 'end'
50
      block: 'end'
51
    });
51
    });
52
  };
52
  };
Línea 53... Línea -...
53
 
-
 
54
  const reportMessage = async (report) => {
-
 
55
    if (!conversation?.abuse_report_url) return;
-
 
56
    executeReport(conversation.abuse_report_url, report);
-
 
57
  };
-
 
58
 
53
 
59
  const handleReport = (uuid) => {
-
 
60
    setReportedUuid(uuid);
54
  const handleReport = (url) => {
61
    showModal(
55
    showModal(
62
      'Reportar mensaje',
56
      'Reportar mensaje',
63
      <ReportModal onSubmit={(report) => reportMessage(report, uuid)} />
57
      <ReportModal onSubmit={(report) => executeReport(url, report)} />
64
    );
58
    );
Línea 65... Línea 59...
65
  };
59
  };
66
 
60