Skip to content

Commit

Permalink
Implement onPageAdded callback (#461)
Browse files Browse the repository at this point in the history
* iOS implementation of onPageAdded

* onPageAdded implementation in DocumentView.tsx

* Add documentation for onPageAdded

* Updating JS files

* Added Android functionality for onPagesAdded event

* Updated onPageAdded to onPagesAdded for Android and Library

* Update prop name for iOS

* Bump version

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: eamon-mallon <[email protected]>
  • Loading branch information
3 people authored Jan 26, 2022
1 parent 9d8031b commit a00d39a
Show file tree
Hide file tree
Showing 14 changed files with 96 additions and 1 deletion.
19 changes: 19 additions & 0 deletions API.md
Original file line number Diff line number Diff line change
Expand Up @@ -872,6 +872,25 @@ pageNumber | int | the current page number
/>
```

#### onPagesAdded
function, optional

This function is called when pages are added to the document.

Parameters:

Name | Type | Description
--- | --- | ---
pageNumbers | array | An array of the page numbers that were added to the document

```js
<DocumentView
onPagesAdded = {({pageNumbers}) => {
console.log('Pages added:', pageNumbers);
}}
/>
```

### Zoom

#### onZoomChanged
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public final class Constants {
public static final String ON_TEXT_SEARCH_RESULT = "onTextSearchResult";
public static final String ON_UNDO_REDO_STATE_CHANGED = "onUndoRedoStateChanged";
public static final String ON_PAGE_MOVED = "onPageMoved";
public static final String ON_PAGES_ADDED = "onPagesAdded";
public static final String ON_TAB_CHANGED = "onTabChanged";
public static final String ON_ANNOTATION_FLATTENED = "onAnnotationFlattened";

Expand Down Expand Up @@ -332,6 +333,8 @@ public final class Constants {

public static final String KEY_BOOKMARK_JSON = "bookmarkJson";

public static final String KEY_PAGE_NUMBERS = "pageNumbers";

public static final String KEY_PREVIOUS_TOOL = "previousTool";
public static final String KEY_TOOL = "tool";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2496,7 +2496,12 @@ public void onPagesCropped() {

@Override
public void onPagesAdded(List<Integer> list) {
WritableMap params = Arguments.createMap();
WritableArray pageNumbers = Arguments.fromList(list);
params.putString(ON_PAGES_ADDED, ON_PAGES_ADDED);
params.putArray(KEY_PAGE_NUMBERS, pageNumbers);

onReceiveNativeEvent(params);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,14 @@ - (void)toolManager:(nonnull PTToolManager *)toolManager pageMovedFromPageNumber
}
}

- (void)toolManager:(PTToolManager *)toolManager pageAddedForPageNumber:(int)pageNumber
{
[super toolManager:toolManager pageAddedForPageNumber:pageNumber];
if ([self.delegate respondsToSelector:@selector(rnt_documentViewControllerPageAdded:pageNumber:)]) {
[self.delegate rnt_documentViewControllerPageAdded:self pageNumber:pageNumber];
}
}

#pragma mark - <PTPDFViewCtrlDelegate>

- (void)pdfViewCtrl:(PTPDFViewCtrl *)pdfViewCtrl onSetDoc:(PTPDFDoc *)doc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,14 @@ - (void)toolManager:(nonnull PTToolManager *)toolManager pageMovedFromPageNumber
}
}

- (void)toolManager:(PTToolManager *)toolManager pageAddedForPageNumber:(int)pageNumber
{
[super toolManager:toolManager pageAddedForPageNumber:pageNumber];
if ([self.delegate respondsToSelector:@selector(rnt_documentViewControllerPageAdded:pageNumber:)]) {
[self.delegate rnt_documentViewControllerPageAdded:self pageNumber:pageNumber];
}
}

#pragma mark - <PTAnnotationToolbarDelegate>

- (BOOL)toolShouldGoBackToPan:(PTAnnotationToolbar *)annotationToolbar
Expand Down
8 changes: 8 additions & 0 deletions ios/DocumentViewController/RNTPTDocumentController.m
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,14 @@ - (void)toolManager:(nonnull PTToolManager *)toolManager pageMovedFromPageNumber
}
}

- (void)toolManager:(PTToolManager *)toolManager pageAddedForPageNumber:(int)pageNumber
{
[super toolManager:toolManager pageAddedForPageNumber:pageNumber];
if ([self.delegate respondsToSelector:@selector(rnt_documentViewControllerPageAdded:pageNumber:)]) {
[self.delegate rnt_documentViewControllerPageAdded:self pageNumber:pageNumber];
}
}

#pragma mark - <PTPDFViewCtrlDelegate>

- (void)pdfViewCtrl:(PTPDFViewCtrl *)pdfViewCtrl onSetDoc:(PTPDFDoc *)doc
Expand Down
2 changes: 2 additions & 0 deletions ios/DocumentViewController/RNTPTDocumentViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ NS_ASSUME_NONNULL_BEGIN

- (void)rnt_documentViewControllerPageDidMove:(PTDocumentBaseViewController *)documentViewController pageMovedFromPageNumber:(int)oldPageNumber toPageNumber:(int)newPageNumber;

- (void)rnt_documentViewControllerPageAdded:(PTDocumentBaseViewController *)documentViewController pageNumber:(int)pageNumber;

@end

@class RNTPTDocumentViewController;
Expand Down
8 changes: 8 additions & 0 deletions ios/DocumentViewController/RNTPTDocumentViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,14 @@ - (void)toolManager:(nonnull PTToolManager *)toolManager pageMovedFromPageNumber
}
}

- (void)toolManager:(PTToolManager *)toolManager pageAddedForPageNumber:(int)pageNumber
{
[super toolManager:toolManager pageAddedForPageNumber:pageNumber];
if ([self.delegate respondsToSelector:@selector(rnt_documentViewControllerPageAdded:pageNumber:)]) {
[self.delegate rnt_documentViewControllerPageAdded:self pageNumber:pageNumber];
}
}

#pragma mark - <PTAnnotationToolbarDelegate>

- (BOOL)toolShouldGoBackToPan:(PTAnnotationToolbar *)annotationToolbar
Expand Down
3 changes: 3 additions & 0 deletions ios/RNTPTDocumentView.h
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,9 @@ static NSString * const PTSignaturesManager_signatureDirectory = @"PTSignaturesM
- (void)textSearchStart:(RNTPTDocumentView *)sender;
- (void)textSearchResult:(RNTPTDocumentView *)sender found:(BOOL)found textSelection:(nullable NSDictionary *)textSelection;
- (void)pageMoved:(RNTPTDocumentView *)sender pageMovedFromPageNumber:(int)oldPageNumber toPageNumber:(int)newPageNumber;

- (void)pageAdded:(RNTPTDocumentView *)sender pageNumber:(int)pageNumber;

- (void)tabChanged:(RNTPTDocumentView *)sender currentTab:(NSString *)currentTab;

- (void)annotationsSelected:(RNTPTDocumentView *)sender annotations:(NSArray<NSDictionary<NSString *, id> *> *)annotations;
Expand Down
7 changes: 7 additions & 0 deletions ios/RNTPTDocumentView.m
Original file line number Diff line number Diff line change
Expand Up @@ -3125,6 +3125,13 @@ - (void)rnt_documentViewControllerPageDidMove:(PTDocumentBaseViewController *)do
}
}

- (void)rnt_documentViewControllerPageAdded:(PTDocumentBaseViewController *)documentViewController pageNumber:(int)pageNumber
{
if ([self.delegate respondsToSelector:@selector(pageAdded:pageNumber:)]) {
[self.delegate pageAdded:self pageNumber:pageNumber];
}
}

- (BOOL)rnt_documentViewControllerShouldGoBackToPan:(PTDocumentViewController *)documentViewController
{
return !self.continuousAnnotationEditing;
Expand Down
9 changes: 9 additions & 0 deletions ios/RNTPTDocumentViewManager.m
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,15 @@ - (void)pageMoved:(RNTPTDocumentView *)sender pageMovedFromPageNumber:(int)oldPa
});
}
}
- (void)pageAdded:(RNTPTDocumentView *)sender pageNumber:(int)pageNumber;
{
if (sender.onChange) {
sender.onChange(@{
@"onPagesAdded" : @"onPagesAdded",
@"pageNumbers" : @[@(pageNumber)],
});
}
}

- (void)annotationsSelected:(RNTPTDocumentView *)sender annotations:(NSArray<NSDictionary<NSString *,id> *> *)annotations
{
Expand Down
8 changes: 8 additions & 0 deletions lib/src/DocumentView/DocumentView.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ const propTypes = {
annotationManagerUndoMode: oneOf(Config.AnnotationManagerUndoMode),
replyReviewStateEnabled: PropTypes.bool,
onPageMoved: func(),
onPagesAdded: func(),
onTabChanged: func(),
rememberLastUsedTool: PropTypes.bool,
overflowMenuButtonIcon: PropTypes.string,
Expand Down Expand Up @@ -340,6 +341,13 @@ export class DocumentView extends PureComponent {
});
}
}
else if (event.nativeEvent.onPagesAdded) {
if (this.props.onPagesAdded) {
this.props.onPagesAdded({
'pageNumbers': event.nativeEvent.pageNumbers,
});
}
}
else if (event.nativeEvent.onTabChanged) {
if (this.props.onTabChanged) {
this.props.onTabChanged({
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "react-native-pdftron",
"title": "React Native Pdftron",
"version": "3.0.2-beta.44",
"version": "3.0.2-beta.45",
"description": "React Native Pdftron",
"main": "./lib/index.js",
"typings": "index.ts",
Expand Down
7 changes: 7 additions & 0 deletions src/DocumentView/DocumentView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ const propTypes = {
annotationManagerUndoMode: oneOf<Config.AnnotationManagerUndoMode>(Config.AnnotationManagerUndoMode),
replyReviewStateEnabled: PropTypes.bool,
onPageMoved: func<(event: {previousPageNumber: number, pageNumber: number}) => void>(),
onPagesAdded: func<(event: {pageNumbers: Array<number>}) => void>(),
onTabChanged: func<(event: {currentTab: string}) => void>(),
rememberLastUsedTool: PropTypes.bool,
overflowMenuButtonIcon: PropTypes.string,
Expand Down Expand Up @@ -342,6 +343,12 @@ export class DocumentView extends PureComponent<DocumentViewProps, any> {
'pageNumber': event.nativeEvent.pageNumber,
});
}
} else if (event.nativeEvent.onPagesAdded) {
if (this.props.onPagesAdded) {
this.props.onPagesAdded({
'pageNumbers': event.nativeEvent.pageNumbers,
});
}
} else if (event.nativeEvent.onTabChanged) {
if (this.props.onTabChanged) {
this.props.onTabChanged({
Expand Down

0 comments on commit a00d39a

Please sign in to comment.