diff --git a/api/.env.example b/api/.env.example index adf7588083..a6685f3d7d 100644 --- a/api/.env.example +++ b/api/.env.example @@ -26,4 +26,5 @@ BING_TOKEN= # global enable/disable the sample user system. # this is not a ready to use user system. # dont't use it, unless you can write your own code. +SEARCH= ENABLE_USER_SYSTEM= diff --git a/api/server/routes/search.js b/api/server/routes/search.js index 3ab8f2ad2f..f9e917092d 100644 --- a/api/server/routes/search.js +++ b/api/server/routes/search.js @@ -2,7 +2,7 @@ const express = require('express'); const router = express.Router(); const { Message } = require('../../models/Message'); const { Conversation, getConvosQueried } = require('../../models/Conversation'); -const { reduceMessages, reduceHits } = require('../../lib/utils/reduceHits'); +const { reduceHits } = require('../../lib/utils/reduceHits'); // const { MeiliSearch } = require('meilisearch'); const cache = new Map(); @@ -53,7 +53,7 @@ router.get('/', async function (req, res) { const result = await getConvosQueried(user, sortedHits, pageNumber); cache.set(q, result.cache); delete result.cache; - result.messages = messages.filter((message) => !result.filter.has(message.conversationId)); + result.messages = messages.filter(message => !result.filter.has(message.conversationId)); // console.log(result, messages.length); res.status(200).send(result); } catch (error) { @@ -78,4 +78,8 @@ router.get('/test', async function (req, res) { res.send(messages); }); +router.get('/enable', async function (req, res) { + res.send(!!process.env.SEARCH); +}); + module.exports = router; diff --git a/client/src/App.jsx b/client/src/App.jsx index 6ca299aa55..6ee3be2a6b 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -6,42 +6,34 @@ import Nav from './components/Nav'; import MobileNav from './components/Nav/MobileNav'; import useDocumentTitle from '~/hooks/useDocumentTitle'; import { useSelector, useDispatch } from 'react-redux'; +import userAuth from './utils/userAuth'; import { setUser } from './store/userReducer'; +import { setSearchState } from './store/searchSlice'; import axios from 'axios'; const App = () => { const dispatch = useDispatch(); - + const { messages, messageTree } = useSelector((state) => state.messages); const { user } = useSelector((state) => state.user); const { title } = useSelector((state) => state.convo); - const [ navVisible, setNavVisible ]= useState(false) + const [navVisible, setNavVisible] = useState(false); useDocumentTitle(title); - useEffect(async () => { - try { - const response = await axios.get('/api/me', { - timeout: 1000, - withCredentials: true - }); - const user = response.data; - if (user) { - dispatch(setUser(user)); - } else { - console.log('Not login!'); - window.location.href = '/auth/login'; - } - } catch (error) { - console.error(error); - console.log('Not login!'); - window.location.href = '/auth/login'; - } - }, []) + useEffect(() => { + axios.get('/api/search/enable').then((res) => { console.log(res.data); dispatch(setSearchState(res.data))}); + userAuth() + .then((user) => dispatch(setUser(user))) + .catch((err) => console.log(err)); + }, []); if (user) return (