@@ -3,6 +3,7 @@ import { motion } from 'motion/react';
33import { useMemo , useRef , useState } from 'react' ;
44import { GrValidate } from 'react-icons/gr' ;
55import { IoClose , IoShareSocialOutline } from 'react-icons/io5' ;
6+ import { useShallow } from 'zustand/react/shallow' ;
67
78import { useModal } from '@/features/modal' ;
89import { postSessionTerminate , useSessionStore } from '@/features/session' ;
@@ -15,14 +16,19 @@ import QuestionSection from '@/components/qna/QuestionSection';
1516import SessionSettingsDropdown from '@/components/qna/SessionSettingsDropdown' ;
1617
1718function 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+ ) ;
2632
2733 const addToast = useToastStore ( ( state ) => state . addToast ) ;
2834
0 commit comments