File tree Expand file tree Collapse file tree 3 files changed +25
-1
lines changed Expand file tree Collapse file tree 3 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,7 @@ import type { EventProps } from 'make-event-props';
3737import type {
3838 ClassName ,
3939 CustomRenderer ,
40+ CustomTextLayerRenderer ,
4041 CustomTextRenderer ,
4142 NodeOrRenderer ,
4243 OnGetAnnotationsError ,
@@ -67,6 +68,7 @@ export type PageProps = {
6768 children ?: React . ReactNode ;
6869 className ?: ClassName ;
6970 customRenderer ?: CustomRenderer ;
71+ customTextLayerRenderer ?: CustomTextLayerRenderer ;
7072 customTextRenderer ?: CustomTextRenderer ;
7173 devicePixelRatio ?: number ;
7274 error ?: NodeOrRenderer ;
@@ -120,6 +122,7 @@ const Page: React.FC<PageProps> = function Page(props) {
120122 children,
121123 className,
122124 customRenderer : CustomRenderer ,
125+ customTextLayerRenderer,
123126 customTextRenderer,
124127 devicePixelRatio,
125128 error = 'Failed to load the page.' ,
@@ -298,6 +301,7 @@ const Page: React.FC<PageProps> = function Page(props) {
298301 ? {
299302 _className,
300303 canvasBackground,
304+ customTextLayerRenderer,
301305 customTextRenderer,
302306 devicePixelRatio,
303307 onGetAnnotationsError : onGetAnnotationsErrorProps ,
@@ -324,6 +328,7 @@ const Page: React.FC<PageProps> = function Page(props) {
324328 [
325329 _className ,
326330 canvasBackground ,
331+ customTextLayerRenderer ,
327332 customTextRenderer ,
328333 devicePixelRatio ,
329334 onGetAnnotationsErrorProps ,
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ export default function TextLayer() {
2323 invariant ( pageContext , 'Unable to find Page context.' ) ;
2424
2525 const {
26+ customTextLayerRenderer,
2627 customTextRenderer,
2728 onGetTextError,
2829 onGetTextSuccess,
@@ -206,7 +207,15 @@ export default function TextLayer() {
206207
207208 const layerChildren = layer . querySelectorAll ( '[role="presentation"]' ) ;
208209
209- if ( customTextRenderer ) {
210+ if ( customTextLayerRenderer ) {
211+ customTextLayerRenderer ( {
212+ layerChildren,
213+ layerElement : layer ,
214+ pageIndex,
215+ pageNumber,
216+ textContentItems : textContent . items ,
217+ } ) ;
218+ } else if ( customTextRenderer ) {
210219 let index = 0 ;
211220 textContent . items . forEach ( ( item , itemIndex ) => {
212221 if ( ! isTextItem ( item ) ) {
@@ -240,6 +249,7 @@ export default function TextLayer() {
240249 }
241250
242251 useLayoutEffect ( renderTextLayer , [
252+ customTextLayerRenderer ,
243253 customTextRenderer ,
244254 onRenderError ,
245255 onRenderSuccess ,
Original file line number Diff line number Diff line change @@ -67,6 +67,14 @@ export type UnregisterPage = (pageIndex: number) => void;
6767/* Complex types */
6868export type CustomRenderer = React . FunctionComponent | React . ComponentClass ;
6969
70+ export type CustomTextLayerRenderer = ( props : {
71+ layerChildren : NodeListOf < Element > ;
72+ layerElement : HTMLDivElement ;
73+ pageIndex : number ;
74+ pageNumber : number ;
75+ textContentItems : TextContent [ 'items' ] ;
76+ } ) => void ;
77+
7078export type CustomTextRenderer = (
7179 props : { pageIndex : number ; pageNumber : number ; itemIndex : number } & TextItem ,
7280) => string ;
@@ -139,6 +147,7 @@ export type DocumentContextType = {
139147export type PageContextType = {
140148 _className ?: string ;
141149 canvasBackground ?: string ;
150+ customTextLayerRenderer ?: CustomTextLayerRenderer ;
142151 customTextRenderer ?: CustomTextRenderer ;
143152 devicePixelRatio ?: number ;
144153 onGetAnnotationsError ?: OnGetAnnotationsError ;
You can’t perform that action at this time.
0 commit comments