@@ -3,6 +3,7 @@ import { motion } from 'motion/react';
3
3
import { useMemo , useRef , useState } from 'react' ;
4
4
import { GrValidate } from 'react-icons/gr' ;
5
5
import { IoClose , IoShareSocialOutline } from 'react-icons/io5' ;
6
+ import { useShallow } from 'zustand/react/shallow' ;
6
7
7
8
import { useModal } from '@/features/modal' ;
8
9
import { postSessionTerminate , useSessionStore } from '@/features/session' ;
@@ -15,14 +16,19 @@ import QuestionSection from '@/components/qna/QuestionSection';
15
16
import SessionSettingsDropdown from '@/components/qna/SessionSettingsDropdown' ;
16
17
17
18
function QuestionList ( ) {
18
- const isHost = useSessionStore ( ( state ) => state . isHost ) ;
19
- const expired = useSessionStore ( ( state ) => state . expired ) ;
20
- const questions = useSessionStore ( ( state ) => state . questions ) ;
21
- const sessionId = useSessionStore ( ( state ) => state . sessionId ) ;
22
- const sessionTitle = useSessionStore ( ( state ) => state . sessionTitle ) ;
23
- const sessionToken = useSessionStore ( ( state ) => state . sessionToken ) ;
24
- const setExpired = useSessionStore ( ( state ) => state . setExpired ) ;
25
- const setSelectedQuestionId = useSessionStore ( ( state ) => state . setSelectedQuestionId ) ;
19
+ const { isHost, expired, questions, sessionId, sessionTitle, sessionToken, setExpired, setSelectedQuestionId } =
20
+ useSessionStore (
21
+ useShallow ( ( state ) => ( {
22
+ isHost : state . isHost ,
23
+ expired : state . expired ,
24
+ questions : state . questions ,
25
+ sessionId : state . sessionId ,
26
+ sessionTitle : state . sessionTitle ,
27
+ sessionToken : state . sessionToken ,
28
+ setExpired : state . setExpired ,
29
+ setSelectedQuestionId : state . setSelectedQuestionId ,
30
+ } ) ) ,
31
+ ) ;
26
32
27
33
const addToast = useToastStore ( ( state ) => state . addToast ) ;
28
34
0 commit comments