1
1
/* eslint-disable max-lines */
2
2
/* eslint-disable react/no-multi-comp */
3
- import React , { useMemo , useRef , useState } from 'react' ;
3
+ import { useMemo , useRef , useState } from 'react' ;
4
4
5
5
import dynamic from 'next/dynamic' ;
6
6
import { Virtuoso , VirtuosoHandle } from 'react-virtuoso' ;
7
7
8
8
import onCopyQuranWords from '../onCopyQuranWords' ;
9
9
import QueryParamMessage from '../QueryParamMessage' ;
10
10
11
+ import useGetVersesCount from './hooks/useGetVersesCount' ;
11
12
import useScrollToVirtualizedVerse from './hooks/useScrollToVirtualizedVerse' ;
12
13
import styles from './TranslationView.module.scss' ;
13
14
import TranslationViewVerse from './TranslationViewVerse' ;
@@ -63,6 +64,14 @@ const TranslationView = ({
63
64
} : { value : string ; isQueryParamDifferent : boolean } = useGetQueryParamOrReduxValue (
64
65
QueryParam . WBW_LOCALE ,
65
66
) ;
67
+
68
+ const versesCount = useGetVersesCount ( {
69
+ resourceId,
70
+ quranReaderDataType,
71
+ initialData,
72
+ quranReaderStyles,
73
+ } ) ;
74
+
66
75
const virtuosoRef = useRef < VirtuosoHandle > ( null ) ;
67
76
useScrollToVirtualizedVerse (
68
77
quranReaderDataType ,
@@ -75,7 +84,7 @@ const TranslationView = ({
75
84
useQcfFont ( quranReaderStyles . quranFont , verses ) ;
76
85
77
86
const itemContentRenderer = ( verseIdx : number ) => {
78
- if ( verseIdx === initialData . metaData . numberOfVerses ) {
87
+ if ( verseIdx === versesCount ) {
79
88
return (
80
89
< EndOfScrollingControls
81
90
quranReaderDataType = { quranReaderDataType }
@@ -88,7 +97,7 @@ const TranslationView = ({
88
97
return (
89
98
< TranslationViewVerse
90
99
verseIdx = { verseIdx }
91
- totalVerses = { initialData . metaData . numberOfVerses }
100
+ totalVerses = { versesCount }
92
101
quranReaderDataType = { quranReaderDataType }
93
102
quranReaderStyles = { quranReaderStyles }
94
103
setApiPageToVersesMap = { setApiPageToVersesMap }
@@ -123,7 +132,7 @@ const TranslationView = ({
123
132
< Virtuoso
124
133
ref = { virtuosoRef }
125
134
useWindowScroll
126
- totalCount = { initialData . metaData . numberOfVerses + 1 }
135
+ totalCount = { versesCount + 1 }
127
136
increaseViewportBy = { INCREASE_VIEWPORT_BY_PIXELS }
128
137
initialItemCount = { 1 } // needed for SSR.
129
138
itemContent = { itemContentRenderer }
0 commit comments