diff --git a/src/components/Sidebar/index.jsx b/src/components/Sidebar/index.jsx index dcd4e91..5398397 100644 --- a/src/components/Sidebar/index.jsx +++ b/src/components/Sidebar/index.jsx @@ -2,9 +2,10 @@ import React, { useRef, useEffect } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Send } from 'react-feather'; import PropTypes from 'prop-types'; -import Disclosure from '../Disclosure'; +import { sendTrackEvent } from '@edx/frontend-platform/analytics'; import { Button, Icon } from '@edx/paragon'; import { Close } from '@edx/paragon/icons'; +import Disclosure from '../Disclosure'; import ChatBox from '../ChatBox'; import APIError from '../APIError'; import './Sidebar.scss'; @@ -82,13 +83,16 @@ const Sidebar = ({ const handleSubmitMessage = (event) => { event.preventDefault(); if (currentMessage) { - dispatch(addChatMessage('user', currentMessage)); + dispatch(addChatMessage('user', currentMessage, courseId)); dispatch(getChatResponse(courseId)); } }; const handleClearMessages = () => { dispatch(clearMessages()); + sendTrackEvent('edx.ui.lms.learning_assistant.clear', { + course_id: courseId, + }); }; const getSidebar = () => ( diff --git a/src/components/ToggleXpertButton/index.jsx b/src/components/ToggleXpertButton/index.jsx index 892345f..be7f0b0 100644 --- a/src/components/ToggleXpertButton/index.jsx +++ b/src/components/ToggleXpertButton/index.jsx @@ -1,4 +1,3 @@ -import { ChevronRight } from 'react-feather'; import PropTypes from 'prop-types'; import { sendTrackEvent } from '@edx/frontend-platform/analytics'; import { ReactComponent as NewXeySvg } from '../../assets/new_xey.svg'; diff --git a/src/data/thunks.js b/src/data/thunks.js index 49eaba4..54efdfb 100644 --- a/src/data/thunks.js +++ b/src/data/thunks.js @@ -1,4 +1,5 @@ import { sendTrackEvent } from '@edx/frontend-platform/analytics'; +import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; import fetchChatResponse from './api'; import { setCurrentMessage, @@ -11,7 +12,7 @@ import { setDisclosureAcknowledged, } from './slice'; -export function addChatMessage(role, content) { +export function addChatMessage(role, content, courseId) { return (dispatch, getState) => { const { messageList, conversationId } = getState().learningAssistant; @@ -28,8 +29,12 @@ export function addChatMessage(role, content) { dispatch(setMessageList({ messageList: updatedMessageList })); dispatch(clearCurrentMessage()); dispatch(resetApiError()); + + const { userId } = getAuthenticatedUser(); sendTrackEvent('edx.ui.lms.learning_assistant.message', { id: conversationId, + course_id: courseId, + user_id: userId, timestamp: message.timestamp, role: message.role, content: message.content, @@ -45,7 +50,7 @@ export function getChatResponse(courseId) { try { const message = await fetchChatResponse(courseId, messageList); dispatch(setApiIsLoading(false)); - dispatch(addChatMessage(message.role, message.content)); + dispatch(addChatMessage(message.role, message.content, courseId)); } catch (error) { dispatch(setApiError()); dispatch(setApiIsLoading(false));