{"version":3,"file":"static/components/7218-5ab1e758c2aea8c75220.mjs?cv=7","mappings":"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","sources":["webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/msgs/components/common/hooks.js"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useTimeout } from \"react-use\";\nimport useSWR, { mutate } from \"swr\";\nimport useSWRImmutable from \"swr/immutable\";\nimport useSWRInfinite from \"swr/infinite\";\nimport { validate as uuidValidate } from \"uuid\";\n\nimport axios from \"@agir/lib/utils/axios\";\nimport * as groupAPI from \"@agir/groups/utils/api\";\nimport { routeConfig } from \"@agir/front/app/routes.config\";\nimport { setBackLink } from \"@agir/front/globalContext/actions\";\nimport { useDispatch } from \"@agir/front/globalContext/GlobalContext\";\nimport { useCurrentLocation } from \"@agir/front/app/utils\";\n\nconst MESSAGES_PAGE_SIZE = 10;\nconst COMMENTS_PAGE_SIZE = 15;\nconst REFRESH_INTERVAL = 10 * 60 * 1000;\n\nexport const useUnreadMessageCount = () => {\n  const [isReady, setIsReady] = useState(false)\n  const { data: session } = useSWRImmutable(\"/api/session/\");\n  const { data } = useSWR(\n    isReady && \"/api/user/messages/unread_count/\",\n    {\n      refreshInterval: REFRESH_INTERVAL,\n      dedupingInterval: REFRESH_INTERVAL,\n      focusThrottleInterval: REFRESH_INTERVAL,\n      shouldRetryOnError: false,\n      revalidateIfStale: false,\n    },\n  );\n\n  useEffect(() => {\n    if (session?.user) {\n      setIsReady(true)\n    }\n  }, [session]);\n\n  return data?.unreadMessageCount && !isNaN(parseInt(data.unreadMessageCount))\n    ? parseInt(data.unreadMessageCount)\n    : 0;\n};\n\nexport const useCommentsSWR = (messagePk, autorefresh = false) => {\n  const { data, error, isValidating, mutate, size, setSize } = useSWRInfinite(\n    (index) =>\n      messagePk &&\n      `/api/groupes/messages/${messagePk}/comments/?page=${\n        index + 1\n      }&page_size=${COMMENTS_PAGE_SIZE}`,\n    autorefresh\n      ? {\n          refreshInterval: REFRESH_INTERVAL,\n          dedupingInterval: REFRESH_INTERVAL,\n          focusThrottleInterval: REFRESH_INTERVAL,\n          shouldRetryOnError: false,\n          revalidateIfStale: false,\n          revalidateAll: true,\n        }\n      : undefined,\n  );\n\n  const comments = useMemo(() => {\n    const comments = {};\n    const commentsIds = [];\n    if (Array.isArray(data)) {\n      data.forEach(({ results }) => {\n        if (Array.isArray(results)) {\n          results.forEach((comment) => {\n            if (!comments[comment.id]) {\n              comments[comment.id] = comment;\n              commentsIds.push(comment.id);\n            }\n          });\n        }\n      });\n    }\n    return commentsIds.reverse().map((id) => comments[id]);\n  }, [data]);\n\n  const isLoadingInitialData = !data && !error;\n  const isLoadingMore =\n    isLoadingInitialData ||\n    (size > 0 && data && typeof data[size - 1] === \"undefined\");\n\n  const commentsCount = (data && data[data.length - 1]?.count) || 0;\n  const isEmpty = commentsCount === 0;\n  const isReachingEnd =\n    isEmpty ||\n    comments.length === commentsCount ||\n    (data && data[data.length - 1]?.results?.length < COMMENTS_PAGE_SIZE);\n  const isRefreshing = isValidating && data && data.length === size;\n\n  const loadMore = useCallback(() => setSize(size + 1), [setSize, size]);\n  const isAutoRefreshPausedRef = useRef(false);\n\n  return {\n    comments,\n    commentsCount,\n    error,\n    isLoadingInitialData,\n    isLoadingMore,\n    isRefreshing,\n    loadMore: isEmpty || isReachingEnd ? undefined : loadMore,\n    mutate,\n    isAutoRefreshPausedRef,\n  };\n};\n\nexport const useMessageSWR = (messagePk) => {\n  const dispatch = useDispatch();\n  const pathname = useCurrentLocation();\n\n  const isAutoRefreshPausedRef = useRef(false);\n\n  const { data: session } = useSWRImmutable(\"/api/session/\");\n  const user = session?.user;\n\n  const {\n    data,\n    error: errorMessages,\n    isValidating: isValidatingMessages,\n    mutate: mutateMessages,\n    size,\n    setSize,\n  } = useSWRInfinite(\n    (index) =>\n      user &&\n      `/api/user/messages/?page=${index + 1}&page_size=${MESSAGES_PAGE_SIZE}`,\n    {\n      revalidateIfStale: false,\n      revalidateOnFocus: false,\n      revalidateOnReconnect: false,\n    },\n  );\n  const { data: messageRecipients } = useSWRImmutable(\n    data && \"/api/user/messages/recipients/\",\n  );\n  const {\n    data: currentMessage,\n    error,\n    isValidating,\n    mutate: mutateMessage,\n  } = useSWRImmutable(\n    data && messagePk && uuidValidate(messagePk)\n      ? `/api/groupes/messages/${messagePk}/`\n      : null,\n  );\n\n  const messages = useMemo(() => {\n    const messages = {};\n    const messageIds = [];\n    if (Array.isArray(data)) {\n      data.forEach(({ results }) => {\n        if (Array.isArray(results)) {\n          results.forEach((message) => {\n            if (!messages[message.id]) {\n              messages[message.id] = message;\n              messageIds.push(message.id);\n            }\n          });\n        }\n      });\n    }\n    return messageIds.map((id) => messages[id]);\n  }, [data]);\n\n  const isLoadingInitialData = !data && !errorMessages;\n  const isLoadingMore =\n    isLoadingInitialData ||\n    (size > 0 && data && typeof data[size - 1] === \"undefined\");\n\n  const messageCount = (data && data[data.length - 1]?.count) || 0;\n  const isEmpty = messageCount === 0;\n  const isReachingEnd =\n    isEmpty ||\n    messages.length === messageCount ||\n    (data && data[data.length - 1]?.results?.length < MESSAGES_PAGE_SIZE);\n  const isRefreshing = isValidatingMessages && data && data.length === size;\n\n  const loadMore = useCallback(() => setSize(size + 1), [setSize, size]);\n\n  const currentMessageId = currentMessage?.id;\n\n  const onSelectMessage = useSelectMessage();\n\n  useEffect(() => {\n    dispatch(\n      setBackLink(\n        currentMessageId\n          ? {\n              route: \"messages\",\n              label: \"Retour aux messages\",\n            }\n          : {\n              route: \"events\",\n              label: \"Retour à l'accueil\",\n            },\n      ),\n    );\n  }, [dispatch, currentMessageId, pathname]);\n\n  useEffect(() => {\n    !isValidating &&\n      error?.response?.status === 404 &&\n      onSelectMessage(null, true);\n  }, [error, isValidating, onSelectMessage]);\n\n  useEffect(() => {\n    if (isValidating || !Array.isArray(messages) || !currentMessage) {\n      return;\n    }\n    const updatedMessage = messages.find((m) => m.id === currentMessage.id);\n    if (\n      !updatedMessage ||\n      updatedMessage.lastUpdate === currentMessage.lastUpdate\n    ) {\n      return;\n    }\n    mutateMessage();\n  }, [isValidating, messages, currentMessage, mutateMessage]);\n\n  return {\n    user,\n    messages,\n    messageCount,\n    errorMessages,\n    isLoadingInitialData,\n    isLoadingMore,\n    isRefreshing,\n    loadMore: isEmpty || isReachingEnd ? undefined : loadMore,\n    mutateMessages,\n    messageRecipients,\n    currentMessage,\n    isAutoRefreshPausedRef,\n    onSelectMessage,\n  };\n};\n\nexport const useSelectMessage = () => {\n  const history = useHistory();\n  const handleSelect = useCallback(\n    (messagePk, doNotPush = false) => {\n      const fn = doNotPush ? history.replace : history.push;\n      fn(routeConfig.messages.getLink({ messagePk }), {\n        backLink: { route: \"messages\" },\n      });\n    },\n    [history],\n  );\n\n  return handleSelect;\n};\n\nexport const useMessageActions = (\n  user,\n  messageRecipients,\n  selectedMessage,\n  onSelectMessage,\n  mutateMessages,\n  mutateComments,\n) => {\n  const shouldDismissAction = useRef(false);\n\n  const [isLoading, setIsLoading] = useState(false);\n  const [selectedGroupEvents, setSelectedGroupEvents] = useState([]);\n  const [selectedComment, setSelectedComment] = useState(null);\n  const [messageAction, setMessageAction] = useState(\"\");\n  const [messageErrors, setMessageErrors] = useState(null);\n  const [commentErrors, setCommentErrors] = useState(null);\n\n  const canWriteNewMessage =\n    !!user && Array.isArray(messageRecipients) && messageRecipients.length > 0;\n\n  const canEditSelectedMessage = useMemo(\n    () =>\n      canWriteNewMessage &&\n      selectedMessage?.group &&\n      messageRecipients.some((r) => r.id === selectedMessage.group.id),\n    [canWriteNewMessage, messageRecipients, selectedMessage],\n  );\n\n  const isAuthor = useMemo(() => {\n    if (!user) {\n      return false;\n    }\n    if (!selectedMessage && !selectedComment) {\n      return false;\n    }\n    if (selectedComment) {\n      return selectedComment && selectedComment.author?.id === user.id;\n    }\n    return selectedMessage && selectedMessage.author?.id === user.id;\n  }, [user, selectedMessage, selectedComment]);\n\n  const getSelectedGroupEvents = useCallback(async (group) => {\n    shouldDismissAction.current = false;\n    setIsLoading(true);\n    setSelectedGroupEvents([]);\n    try {\n      const { data: events } = await axios.get(\n        `/api/groupes/${group.id}/evenements/`,\n      );\n      setIsLoading(false);\n      setSelectedGroupEvents(events);\n    } catch (e) {\n      setIsLoading(false);\n    }\n  }, []);\n\n  const saveMessage = useCallback(\n    async (message) => {\n      setIsLoading(true);\n      setMessageErrors(null);\n      shouldDismissAction.current = false;\n      try {\n        const { data, error } = message.id\n          ? await groupAPI.updateMessage(message)\n          : await groupAPI.createMessage(message.group.id, message);\n\n        if (error) {\n          typeof error === \"string\"\n            ? setMessageErrors({ details: \"Une erreur est survenue\" })\n            : setMessageErrors(error);\n          setIsLoading(false);\n          return;\n        }\n        shouldDismissAction.current = true;\n        setIsLoading(false);\n        mutateMessages();\n        if (message.id) {\n          mutate(`/api/groupes/messages/${message.id}/`, () => data, false);\n        } else {\n          onSelectMessage(data.id);\n        }\n      } catch (e) {\n        setIsLoading(false);\n        setMessageErrors({ details: e.message });\n      }\n    },\n    [onSelectMessage, mutateMessages],\n  );\n\n  const writeNewComment = useCallback(\n    async (comment) => {\n      setIsLoading(true);\n      setCommentErrors(null);\n      try {\n        const { error } = await groupAPI.createComment(\n          selectedMessage.id,\n          comment,\n        );\n        if (error) {\n          typeof error === \"string\"\n            ? setCommentErrors({ details: \"Une erreur est survenue\" })\n            : setCommentErrors(error);\n          setIsLoading(false);\n          return;\n        }\n        setIsLoading(false);\n        mutateComments();\n        onSelectMessage(selectedMessage.id);\n      } catch (e) {\n        setIsLoading(false);\n        setCommentErrors({ details: e.message });\n      }\n    },\n    [selectedMessage, onSelectMessage, mutateComments],\n  );\n\n  const onDelete = useCallback(async () => {\n    if (!selectedMessage && !selectedComment) {\n      return;\n    }\n    setIsLoading(true);\n    try {\n      selectedComment\n        ? await groupAPI.deleteComment(selectedComment, selectedMessage)\n        : await groupAPI.deleteMessage(selectedMessage);\n      setIsLoading(false);\n    } catch (e) {\n      setIsLoading(false);\n    }\n  }, [selectedMessage, selectedComment]);\n\n  const onReport = useCallback(async () => {\n    if (!selectedMessage && !selectedComment) {\n      return;\n    }\n    setIsLoading(true);\n    try {\n      selectedComment\n        ? await groupAPI.reportComment(selectedComment)\n        : await groupAPI.reportMessage(selectedMessage);\n      setIsLoading(false);\n    } catch (e) {\n      setIsLoading(false);\n    }\n  }, [selectedMessage, selectedComment]);\n\n  const writeNewMessage = useCallback(() => {\n    setMessageAction(\"create\");\n  }, []);\n\n  const editMessage = useCallback(() => {\n    getSelectedGroupEvents(selectedMessage.group);\n    setMessageAction(\"edit\");\n  }, [getSelectedGroupEvents, selectedMessage]);\n\n  const confirmDelete = useCallback(() => {\n    setMessageAction(\"delete\");\n  }, []);\n\n  const confirmReport = useCallback(() => {\n    setMessageAction(\"report\");\n  }, []);\n\n  const confirmReportComment = useCallback((comment) => {\n    setSelectedComment(comment);\n    setMessageAction(\"report\");\n  }, []);\n\n  const confirmDeleteComment = useCallback((comment) => {\n    setSelectedComment(comment);\n    setMessageAction(\"delete\");\n  }, []);\n\n  const dismissMessageAction = useCallback(() => {\n    if (messageAction === \"delete\" && selectedMessage && selectedComment) {\n      mutateComments();\n    } else if (messageAction === \"delete\") {\n      onSelectMessage(null);\n      mutateMessages();\n    }\n    setMessageAction(\"\");\n    setSelectedComment(null);\n    shouldDismissAction.current = false;\n  }, [\n    messageAction,\n    selectedComment,\n    selectedMessage,\n    onSelectMessage,\n    mutateMessages,\n    mutateComments,\n  ]);\n\n  useEffect(() => {\n    !isLoading && shouldDismissAction.current && dismissMessageAction();\n  }, [isLoading, dismissMessageAction]);\n\n  return {\n    isLoading,\n\n    messageAction,\n    selectedGroupEvents,\n    selectedComment,\n\n    messageErrors,\n    commentErrors,\n\n    writeNewMessage: canWriteNewMessage ? writeNewMessage : undefined,\n    writeNewComment,\n    editMessage: canEditSelectedMessage ? editMessage : undefined,\n    confirmDelete: canEditSelectedMessage ? confirmDelete : undefined,\n    confirmReport,\n    confirmDeleteComment,\n    confirmReportComment,\n\n    getSelectedGroupEvents,\n    saveMessage,\n    onDelete:\n      messageAction === \"delete\" || canEditSelectedMessage\n        ? onDelete\n        : undefined,\n    onReport:\n      messageAction === \"report\" || (canEditSelectedMessage && !isAuthor)\n        ? onReport\n        : undefined,\n    dismissMessageAction,\n  };\n};\n"],"names":["REFRESH_INTERVAL","useUnreadMessageCount","_useState","useState","_useState2","_slicedToArray","isReady","setIsReady","session","useSWRImmutable","data","useSWR","refreshInterval","dedupingInterval","focusThrottleInterval","shouldRetryOnError","revalidateIfStale","useEffect","user","unreadMessageCount","isNaN","parseInt","useCommentsSWR","messagePk","_data","_data2","autorefresh","arguments","length","undefined","_useSWRInfinite","useSWRInfinite","index","concat","revalidateAll","error","isValidating","mutate","size","setSize","comments","useMemo","commentsIds","Array","isArray","forEach","_ref","results","comment","id","push","reverse","map","isLoadingInitialData","isLoadingMore","commentsCount","count","isEmpty","isReachingEnd","isRefreshing","loadMore","useCallback","isAutoRefreshPausedRef","useRef","useMessageSWR","_data3","_data4","dispatch","useDispatch","pathname","useCurrentLocation","_useSWRInfinite2","revalidateOnFocus","revalidateOnReconnect","errorMessages","isValidatingMessages","mutateMessages","messageRecipients","_useSWRImmutable4","uuidValidate","currentMessage","mutateMessage","messages","messageIds","_ref2","message","messageCount","currentMessageId","onSelectMessage","useSelectMessage","setBackLink","route","label","_error$response","response","status","updatedMessage","find","m","lastUpdate","history","useHistory","handleSelect","replace","routeConfig","getLink","backLink","useMessageActions","selectedMessage","mutateComments","shouldDismissAction","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","selectedGroupEvents","setSelectedGroupEvents","_useState7","_useState8","selectedComment","setSelectedComment","_useState9","_useState0","messageAction","setMessageAction","_useState1","_useState10","messageErrors","setMessageErrors","_useState11","_useState12","commentErrors","setCommentErrors","canWriteNewMessage","canEditSelectedMessage","group","some","r","isAuthor","_selectedMessage$auth","_selectedComment$auth","author","getSelectedGroupEvents","_ref3","_asyncToGenerator","_regeneratorRuntime","_callee","_yield$axios$get","events","_context","prev","next","current","axios","get","sent","stop","_x","apply","this","saveMessage","_ref4","_callee2","_ref5","_t2","_t3","_context2","groupAPI","details","abrupt","_x2","writeNewComment","_ref6","_callee3","_yield$groupAPI$creat","_t4","_context3","_x3","onDelete","_callee4","_context4","onReport","_callee5","_context5","writeNewMessage","editMessage","confirmDelete","confirmReport","confirmReportComment","confirmDeleteComment","dismissMessageAction"],"sourceRoot":""}