@@ -29,6 +29,10 @@ type WaitingSession = {
2929 name : string | null ;
3030 image : string | null ;
3131 } | null ;
32+ partner ?: {
33+ id : string ;
34+ name : string | null ;
35+ } | null ;
3236} ;
3337
3438const POLL_INTERVAL_MS = 15_000 ;
@@ -37,7 +41,6 @@ export default function PartnerWaitingPage() {
3741 const router = useRouter ( ) ;
3842 const sessionState = useSession ( ) ;
3943 const { data : sessionData , isPending } = sessionState ;
40- const isPartner = ( sessionData ?. user as { role ?: string } | undefined ) ?. role === "partner" ;
4144
4245 const [ sessions , setSessions ] = useState < WaitingSession [ ] > ( [ ] ) ;
4346 const [ isLoading , setIsLoading ] = useState ( true ) ;
@@ -48,29 +51,34 @@ export default function PartnerWaitingPage() {
4851 const fetchWaitingSessions = useCallback ( async ( ) => {
4952 setError ( null ) ;
5053 try {
51- const response = await fetch ( "/api/partner/sessions/waiting" , {
52- cache : "no-store" ,
53- } ) ;
54+ const params = new URLSearchParams ( ) ;
55+ if ( sessionData ?. user ?. id ) {
56+ params . set ( "partnerId" , sessionData . user . id ) ;
57+ }
58+ const response = await fetch (
59+ `/api/partners/sessions/waiting${ params . size > 0 ? `?${ params . toString ( ) } ` : "" } ` ,
60+ {
61+ cache : "no-store" ,
62+ } ,
63+ ) ;
5464
5565 if ( ! response . ok ) {
56- if ( response . status === 401 ) {
57- setError ( "パートナーログインが必要です。" ) ;
58- } else if ( response . status === 403 ) {
59- setError ( "パートナー権限が必要です。" ) ;
60- } else {
61- const payload = await response . json ( ) . catch ( ( ) => ( { } ) ) ;
62- const message =
63- typeof payload ?. error === "string"
64- ? payload . error
65- : "待機中セッションの取得に失敗しました。" ;
66- setError ( message ) ;
67- }
66+ const payload = await response . json ( ) . catch ( ( ) => ( { } ) ) ;
67+ const message =
68+ typeof payload ?. error === "string"
69+ ? payload . error
70+ : "待機中セッションの取得に失敗しました。" ;
71+ setError ( message ) ;
6872 setSessions ( [ ] ) ;
6973 return ;
7074 }
7175
7276 const data = ( await response . json ( ) ) as { sessions : WaitingSession [ ] } ;
73- setSessions ( data . sessions ?? [ ] ) ;
77+ setSessions (
78+ data . sessions ?. filter ( ( session ) =>
79+ sessionData ?. user ?. id ? session . partner ?. id === sessionData . user . id : true ,
80+ ) ?? [ ] ,
81+ ) ;
7482 setLastUpdated ( new Date ( ) ) ;
7583 } catch ( err ) {
7684 console . error ( "Failed to load waiting sessions:" , err ) ;
@@ -79,7 +87,7 @@ export default function PartnerWaitingPage() {
7987 } finally {
8088 setIsLoading ( false ) ;
8189 }
82- } , [ ] ) ;
90+ } , [ sessionData ?. user ?. id ] ) ;
8391
8492 useEffect ( ( ) => {
8593 void fetchWaitingSessions ( ) ;
0 commit comments