diff --git a/api/lib/utils/misc.js b/api/lib/utils/misc.js index 3d971751fc..91982947f5 100644 --- a/api/lib/utils/misc.js +++ b/api/lib/utils/misc.js @@ -1,6 +1,6 @@ const cleanUpPrimaryKeyValue = (value) => { // For Bing convoId handling - return value.replace(/--/g, '-'); + return value.replace(/--/g, '|'); }; function replaceSup(text) { diff --git a/api/lib/utils/reduceHits.js b/api/lib/utils/reduceHits.js index 8c93f72404..63ca0491ff 100644 --- a/api/lib/utils/reduceHits.js +++ b/api/lib/utils/reduceHits.js @@ -1,4 +1,5 @@ const mergeSort = require('./mergeSort'); +const { cleanUpPrimaryKeyValue } = require('./misc'); function reduceMessages(hits) { const counts = {}; @@ -29,15 +30,16 @@ function reduceHits(hits, titles = []) { const convos = [...hits, ...titles]; for (const convo of convos) { - if (!counts[convo.conversationId]) { - counts[convo.conversationId] = 1; + const currentId = cleanUpPrimaryKeyValue(convo.conversationId); + if (!counts[currentId]) { + counts[currentId] = 1; } else { - counts[convo.conversationId]++; + counts[currentId]++; } if (convo.title) { - // titleMap[convo.conversationId] = convo._formatted.title; - titleMap[convo.conversationId] = convo.title; + // titleMap[currentId] = convo._formatted.title; + titleMap[currentId] = convo.title; } } diff --git a/api/models/Conversation.js b/api/models/Conversation.js index 732005b968..b5716add01 100644 --- a/api/models/Conversation.js +++ b/api/models/Conversation.js @@ -1,6 +1,5 @@ // const { Conversation } = require('./plugins'); const Conversation = require('./schema/convoSchema'); -const { cleanUpPrimaryKeyValue } = require('../lib/utils/misc'); const { getMessages, deleteMessages } = require('./Message'); const getConvo = async (user, conversationId) => { @@ -90,7 +89,7 @@ module.exports = { promises.push( Conversation.findOne({ user, - conversationId: cleanUpPrimaryKeyValue(convo.conversationId) + conversationId: convo.conversationId, }).exec() ) ); diff --git a/api/server/routes/search.js b/api/server/routes/search.js index 5583efeabc..076e4093c9 100644 --- a/api/server/routes/search.js +++ b/api/server/routes/search.js @@ -15,7 +15,8 @@ router.get('/sync', async function (req, res) { router.get('/', async function (req, res) { try { - const user = req?.session?.user?.username; + let user = req?.session?.user?.username; + user = user ?? null; const { q } = req.query; const pageNumber = req.query.pageNumber || 1; const key = `${user || ''}${q}`; @@ -50,8 +51,10 @@ router.get('/', async function (req, res) { }; }); const titles = (await Conversation.meiliSearch(q)).hits; - console.log('message hits:', messages.length, 'convo hits:', titles.length); const sortedHits = reduceHits(messages, titles); + // debugging: + // console.log('user:', user, 'message hits:', messages.length, 'convo hits:', titles.length); + // console.log('sorted hits:', sortedHits.length); const result = await getConvosQueried(user, sortedHits, pageNumber); const activeMessages = []; diff --git a/client/src/components/Messages/Content/Content.jsx b/client/src/components/Messages/Content/Content.jsx index 03f565175d..e240c9986f 100644 --- a/client/src/components/Messages/Content/Content.jsx +++ b/client/src/components/Messages/Content/Content.jsx @@ -8,8 +8,8 @@ import rehypeRaw from 'rehype-raw' import CodeBlock from './CodeBlock'; import { langSubset } from '~/utils/languages'; -const Content = React.memo(({ content, isCreatedByUser = false }) => { - const rehypePlugins = [ +const Content = React.memo(({ content, isCreatedByUser = true }) => { + let rehypePlugins = [ [rehypeKatex, { output: 'mathml' }], [ rehypeHighlight, @@ -20,12 +20,15 @@ const Content = React.memo(({ content, isCreatedByUser = false }) => { } ], [rehypeRaw], - ] + ]; + + rehypePlugins = isCreatedByUser ? rehypePlugins.slice(0, -1) : rehypePlugins; + return ( <>