@thatkid02/react-native-pdf-viewer 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/PdfViewer.podspec +28 -0
- package/README.md +290 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +121 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/pdfviewer/HybridPdfViewer.kt +169 -0
- package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewer.kt +996 -0
- package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewerPackage.kt +26 -0
- package/ios/PdfViewer.swift +696 -0
- package/lib/module/PdfViewer.nitro.js +4 -0
- package/lib/module/PdfViewer.nitro.js.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/PdfViewer.nitro.d.ts +67 -0
- package/lib/typescript/src/PdfViewer.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +8 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitro.json +17 -0
- package/nitrogen/generated/android/c++/JErrorEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JFunc_void_ErrorEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_LoadCompleteEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_LoadingChangeEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_PageChangeEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_ScaleChangeEvent.hpp +76 -0
- package/nitrogen/generated/android/c++/JFunc_void_ThumbnailGeneratedEvent.hpp +77 -0
- package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.cpp +273 -0
- package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.hpp +94 -0
- package/nitrogen/generated/android/c++/JLoadCompleteEvent.hpp +61 -0
- package/nitrogen/generated/android/c++/JLoadingChangeEvent.hpp +53 -0
- package/nitrogen/generated/android/c++/JPageChangeEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/JScaleChangeEvent.hpp +53 -0
- package/nitrogen/generated/android/c++/JThumbnailGeneratedEvent.hpp +57 -0
- package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.cpp +108 -0
- package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ErrorEvent.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ErrorEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadCompleteEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadingChangeEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_PageChangeEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ScaleChangeEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ThumbnailGeneratedEvent.kt +81 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/HybridPdfViewerSpec.kt +195 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadCompleteEvent.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadingChangeEvent.kt +29 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/PageChangeEvent.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ScaleChangeEvent.kt +29 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ThumbnailGeneratedEvent.kt +32 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/pdfviewerOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerManager.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerStateUpdater.kt +23 -0
- package/nitrogen/generated/android/pdfviewer+autolinking.cmake +83 -0
- package/nitrogen/generated/android/pdfviewer+autolinking.gradle +27 -0
- package/nitrogen/generated/android/pdfviewerOnLoad.cpp +58 -0
- package/nitrogen/generated/android/pdfviewerOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/PdfViewer+autolinking.rb +60 -0
- package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.cpp +80 -0
- package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.hpp +339 -0
- package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Umbrella.hpp +64 -0
- package/nitrogen/generated/ios/PdfViewerAutolinking.mm +33 -0
- package/nitrogen/generated/ios/PdfViewerAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.hpp +205 -0
- package/nitrogen/generated/ios/c++/views/HybridPdfViewerComponent.mm +161 -0
- package/nitrogen/generated/ios/swift/ErrorEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_ErrorEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_LoadCompleteEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_LoadingChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_PageChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_ScaleChangeEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_ThumbnailGeneratedEvent.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridPdfViewerSpec.swift +65 -0
- package/nitrogen/generated/ios/swift/HybridPdfViewerSpec_cxx.swift +500 -0
- package/nitrogen/generated/ios/swift/LoadCompleteEvent.swift +57 -0
- package/nitrogen/generated/ios/swift/LoadingChangeEvent.swift +35 -0
- package/nitrogen/generated/ios/swift/PageChangeEvent.swift +46 -0
- package/nitrogen/generated/ios/swift/ScaleChangeEvent.swift +35 -0
- package/nitrogen/generated/ios/swift/ThumbnailGeneratedEvent.swift +46 -0
- package/nitrogen/generated/shared/c++/ErrorEvent.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.cpp +52 -0
- package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.hpp +111 -0
- package/nitrogen/generated/shared/c++/LoadCompleteEvent.hpp +75 -0
- package/nitrogen/generated/shared/c++/LoadingChangeEvent.hpp +67 -0
- package/nitrogen/generated/shared/c++/PageChangeEvent.hpp +71 -0
- package/nitrogen/generated/shared/c++/ScaleChangeEvent.hpp +67 -0
- package/nitrogen/generated/shared/c++/ThumbnailGeneratedEvent.hpp +71 -0
- package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.cpp +243 -0
- package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.hpp +127 -0
- package/nitrogen/generated/shared/json/PdfViewerConfig.json +23 -0
- package/package.json +175 -0
- package/src/PdfViewer.nitro.ts +97 -0
- package/src/index.tsx +27 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridPdfViewerSpecSwift.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "HybridPdfViewerSpec.hpp"
|
|
11
|
+
|
|
12
|
+
// Forward declaration of `HybridPdfViewerSpec_cxx` to properly resolve imports.
|
|
13
|
+
namespace PdfViewer { class HybridPdfViewerSpec_cxx; }
|
|
14
|
+
|
|
15
|
+
// Forward declaration of `LoadCompleteEvent` to properly resolve imports.
|
|
16
|
+
namespace margelo::nitro::pdfviewer { struct LoadCompleteEvent; }
|
|
17
|
+
// Forward declaration of `PageChangeEvent` to properly resolve imports.
|
|
18
|
+
namespace margelo::nitro::pdfviewer { struct PageChangeEvent; }
|
|
19
|
+
// Forward declaration of `ScaleChangeEvent` to properly resolve imports.
|
|
20
|
+
namespace margelo::nitro::pdfviewer { struct ScaleChangeEvent; }
|
|
21
|
+
// Forward declaration of `ErrorEvent` to properly resolve imports.
|
|
22
|
+
namespace margelo::nitro::pdfviewer { struct ErrorEvent; }
|
|
23
|
+
// Forward declaration of `ThumbnailGeneratedEvent` to properly resolve imports.
|
|
24
|
+
namespace margelo::nitro::pdfviewer { struct ThumbnailGeneratedEvent; }
|
|
25
|
+
// Forward declaration of `LoadingChangeEvent` to properly resolve imports.
|
|
26
|
+
namespace margelo::nitro::pdfviewer { struct LoadingChangeEvent; }
|
|
27
|
+
|
|
28
|
+
#include <string>
|
|
29
|
+
#include <optional>
|
|
30
|
+
#include "LoadCompleteEvent.hpp"
|
|
31
|
+
#include <functional>
|
|
32
|
+
#include "PageChangeEvent.hpp"
|
|
33
|
+
#include "ScaleChangeEvent.hpp"
|
|
34
|
+
#include "ErrorEvent.hpp"
|
|
35
|
+
#include "ThumbnailGeneratedEvent.hpp"
|
|
36
|
+
#include "LoadingChangeEvent.hpp"
|
|
37
|
+
|
|
38
|
+
#include "PdfViewer-Swift-Cxx-Umbrella.hpp"
|
|
39
|
+
|
|
40
|
+
namespace margelo::nitro::pdfviewer {
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The C++ part of HybridPdfViewerSpec_cxx.swift.
|
|
44
|
+
*
|
|
45
|
+
* HybridPdfViewerSpecSwift (C++) accesses HybridPdfViewerSpec_cxx (Swift), and might
|
|
46
|
+
* contain some additional bridging code for C++ <> Swift interop.
|
|
47
|
+
*
|
|
48
|
+
* Since this obviously introduces an overhead, I hope at some point in
|
|
49
|
+
* the future, HybridPdfViewerSpec_cxx can directly inherit from the C++ class HybridPdfViewerSpec
|
|
50
|
+
* to simplify the whole structure and memory management.
|
|
51
|
+
*/
|
|
52
|
+
class HybridPdfViewerSpecSwift: public virtual HybridPdfViewerSpec {
|
|
53
|
+
public:
|
|
54
|
+
// Constructor from a Swift instance
|
|
55
|
+
explicit HybridPdfViewerSpecSwift(const PdfViewer::HybridPdfViewerSpec_cxx& swiftPart):
|
|
56
|
+
HybridObject(HybridPdfViewerSpec::TAG),
|
|
57
|
+
_swiftPart(swiftPart) { }
|
|
58
|
+
|
|
59
|
+
public:
|
|
60
|
+
// Get the Swift part
|
|
61
|
+
inline PdfViewer::HybridPdfViewerSpec_cxx& getSwiftPart() noexcept {
|
|
62
|
+
return _swiftPart;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public:
|
|
66
|
+
inline size_t getExternalMemorySize() noexcept override {
|
|
67
|
+
return _swiftPart.getMemorySize();
|
|
68
|
+
}
|
|
69
|
+
void dispose() noexcept override {
|
|
70
|
+
_swiftPart.dispose();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public:
|
|
74
|
+
// Properties
|
|
75
|
+
inline std::optional<std::string> getSource() noexcept override {
|
|
76
|
+
auto __result = _swiftPart.getSource();
|
|
77
|
+
return __result;
|
|
78
|
+
}
|
|
79
|
+
inline void setSource(const std::optional<std::string>& source) noexcept override {
|
|
80
|
+
_swiftPart.setSource(source);
|
|
81
|
+
}
|
|
82
|
+
inline std::optional<bool> getHorizontal() noexcept override {
|
|
83
|
+
auto __result = _swiftPart.getHorizontal();
|
|
84
|
+
return __result;
|
|
85
|
+
}
|
|
86
|
+
inline void setHorizontal(std::optional<bool> horizontal) noexcept override {
|
|
87
|
+
_swiftPart.setHorizontal(horizontal);
|
|
88
|
+
}
|
|
89
|
+
inline std::optional<bool> getEnablePaging() noexcept override {
|
|
90
|
+
auto __result = _swiftPart.getEnablePaging();
|
|
91
|
+
return __result;
|
|
92
|
+
}
|
|
93
|
+
inline void setEnablePaging(std::optional<bool> enablePaging) noexcept override {
|
|
94
|
+
_swiftPart.setEnablePaging(enablePaging);
|
|
95
|
+
}
|
|
96
|
+
inline std::optional<double> getSpacing() noexcept override {
|
|
97
|
+
auto __result = _swiftPart.getSpacing();
|
|
98
|
+
return __result;
|
|
99
|
+
}
|
|
100
|
+
inline void setSpacing(std::optional<double> spacing) noexcept override {
|
|
101
|
+
_swiftPart.setSpacing(spacing);
|
|
102
|
+
}
|
|
103
|
+
inline std::optional<bool> getEnableZoom() noexcept override {
|
|
104
|
+
auto __result = _swiftPart.getEnableZoom();
|
|
105
|
+
return __result;
|
|
106
|
+
}
|
|
107
|
+
inline void setEnableZoom(std::optional<bool> enableZoom) noexcept override {
|
|
108
|
+
_swiftPart.setEnableZoom(enableZoom);
|
|
109
|
+
}
|
|
110
|
+
inline std::optional<double> getMinScale() noexcept override {
|
|
111
|
+
auto __result = _swiftPart.getMinScale();
|
|
112
|
+
return __result;
|
|
113
|
+
}
|
|
114
|
+
inline void setMinScale(std::optional<double> minScale) noexcept override {
|
|
115
|
+
_swiftPart.setMinScale(minScale);
|
|
116
|
+
}
|
|
117
|
+
inline std::optional<double> getMaxScale() noexcept override {
|
|
118
|
+
auto __result = _swiftPart.getMaxScale();
|
|
119
|
+
return __result;
|
|
120
|
+
}
|
|
121
|
+
inline void setMaxScale(std::optional<double> maxScale) noexcept override {
|
|
122
|
+
_swiftPart.setMaxScale(maxScale);
|
|
123
|
+
}
|
|
124
|
+
inline std::optional<bool> getShowsActivityIndicator() noexcept override {
|
|
125
|
+
auto __result = _swiftPart.getShowsActivityIndicator();
|
|
126
|
+
return __result;
|
|
127
|
+
}
|
|
128
|
+
inline void setShowsActivityIndicator(std::optional<bool> showsActivityIndicator) noexcept override {
|
|
129
|
+
_swiftPart.setShowsActivityIndicator(showsActivityIndicator);
|
|
130
|
+
}
|
|
131
|
+
inline std::optional<std::function<void(const LoadCompleteEvent& /* event */)>> getOnLoadComplete() noexcept override {
|
|
132
|
+
auto __result = _swiftPart.getOnLoadComplete();
|
|
133
|
+
return __result;
|
|
134
|
+
}
|
|
135
|
+
inline void setOnLoadComplete(const std::optional<std::function<void(const LoadCompleteEvent& /* event */)>>& onLoadComplete) noexcept override {
|
|
136
|
+
_swiftPart.setOnLoadComplete(onLoadComplete);
|
|
137
|
+
}
|
|
138
|
+
inline std::optional<std::function<void(const PageChangeEvent& /* event */)>> getOnPageChange() noexcept override {
|
|
139
|
+
auto __result = _swiftPart.getOnPageChange();
|
|
140
|
+
return __result;
|
|
141
|
+
}
|
|
142
|
+
inline void setOnPageChange(const std::optional<std::function<void(const PageChangeEvent& /* event */)>>& onPageChange) noexcept override {
|
|
143
|
+
_swiftPart.setOnPageChange(onPageChange);
|
|
144
|
+
}
|
|
145
|
+
inline std::optional<std::function<void(const ScaleChangeEvent& /* event */)>> getOnScaleChange() noexcept override {
|
|
146
|
+
auto __result = _swiftPart.getOnScaleChange();
|
|
147
|
+
return __result;
|
|
148
|
+
}
|
|
149
|
+
inline void setOnScaleChange(const std::optional<std::function<void(const ScaleChangeEvent& /* event */)>>& onScaleChange) noexcept override {
|
|
150
|
+
_swiftPart.setOnScaleChange(onScaleChange);
|
|
151
|
+
}
|
|
152
|
+
inline std::optional<std::function<void(const ErrorEvent& /* event */)>> getOnError() noexcept override {
|
|
153
|
+
auto __result = _swiftPart.getOnError();
|
|
154
|
+
return __result;
|
|
155
|
+
}
|
|
156
|
+
inline void setOnError(const std::optional<std::function<void(const ErrorEvent& /* event */)>>& onError) noexcept override {
|
|
157
|
+
_swiftPart.setOnError(onError);
|
|
158
|
+
}
|
|
159
|
+
inline std::optional<std::function<void(const ThumbnailGeneratedEvent& /* event */)>> getOnThumbnailGenerated() noexcept override {
|
|
160
|
+
auto __result = _swiftPart.getOnThumbnailGenerated();
|
|
161
|
+
return __result;
|
|
162
|
+
}
|
|
163
|
+
inline void setOnThumbnailGenerated(const std::optional<std::function<void(const ThumbnailGeneratedEvent& /* event */)>>& onThumbnailGenerated) noexcept override {
|
|
164
|
+
_swiftPart.setOnThumbnailGenerated(onThumbnailGenerated);
|
|
165
|
+
}
|
|
166
|
+
inline std::optional<std::function<void(const LoadingChangeEvent& /* event */)>> getOnLoadingChange() noexcept override {
|
|
167
|
+
auto __result = _swiftPart.getOnLoadingChange();
|
|
168
|
+
return __result;
|
|
169
|
+
}
|
|
170
|
+
inline void setOnLoadingChange(const std::optional<std::function<void(const LoadingChangeEvent& /* event */)>>& onLoadingChange) noexcept override {
|
|
171
|
+
_swiftPart.setOnLoadingChange(onLoadingChange);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
public:
|
|
175
|
+
// Methods
|
|
176
|
+
inline void goToPage(double page) override {
|
|
177
|
+
auto __result = _swiftPart.goToPage(std::forward<decltype(page)>(page));
|
|
178
|
+
if (__result.hasError()) [[unlikely]] {
|
|
179
|
+
std::rethrow_exception(__result.error());
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
inline void setScale(double scale) override {
|
|
183
|
+
auto __result = _swiftPart.setScale(std::forward<decltype(scale)>(scale));
|
|
184
|
+
if (__result.hasError()) [[unlikely]] {
|
|
185
|
+
std::rethrow_exception(__result.error());
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
inline void generateThumbnail(double page) override {
|
|
189
|
+
auto __result = _swiftPart.generateThumbnail(std::forward<decltype(page)>(page));
|
|
190
|
+
if (__result.hasError()) [[unlikely]] {
|
|
191
|
+
std::rethrow_exception(__result.error());
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
inline void generateAllThumbnails() override {
|
|
195
|
+
auto __result = _swiftPart.generateAllThumbnails();
|
|
196
|
+
if (__result.hasError()) [[unlikely]] {
|
|
197
|
+
std::rethrow_exception(__result.error());
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
private:
|
|
202
|
+
PdfViewer::HybridPdfViewerSpec_cxx _swiftPart;
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
} // namespace margelo::nitro::pdfviewer
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridPdfViewerComponent.mm
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#import "HybridPdfViewerComponent.hpp"
|
|
9
|
+
#import <memory>
|
|
10
|
+
#import <react/renderer/componentregistry/ComponentDescriptorProvider.h>
|
|
11
|
+
#import <React/RCTViewComponentView.h>
|
|
12
|
+
#import <React/RCTComponentViewFactory.h>
|
|
13
|
+
#import <React/UIView+ComponentViewProtocol.h>
|
|
14
|
+
#import <NitroModules/NitroDefines.hpp>
|
|
15
|
+
#import <UIKit/UIKit.h>
|
|
16
|
+
|
|
17
|
+
#import "HybridPdfViewerSpecSwift.hpp"
|
|
18
|
+
#import "PdfViewer-Swift-Cxx-Umbrella.hpp"
|
|
19
|
+
|
|
20
|
+
using namespace facebook;
|
|
21
|
+
using namespace margelo::nitro::pdfviewer;
|
|
22
|
+
using namespace margelo::nitro::pdfviewer::views;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Represents the React Native View holder for the Nitro "PdfViewer" HybridView.
|
|
26
|
+
*/
|
|
27
|
+
@interface HybridPdfViewerComponent: RCTViewComponentView
|
|
28
|
+
@end
|
|
29
|
+
|
|
30
|
+
@implementation HybridPdfViewerComponent {
|
|
31
|
+
std::shared_ptr<HybridPdfViewerSpecSwift> _hybridView;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
+ (void) load {
|
|
35
|
+
[super load];
|
|
36
|
+
[RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridPdfViewerComponent class]];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
+ (react::ComponentDescriptorProvider) componentDescriptorProvider {
|
|
40
|
+
return react::concreteComponentDescriptorProvider<HybridPdfViewerComponentDescriptor>();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
- (instancetype) init {
|
|
44
|
+
if (self = [super init]) {
|
|
45
|
+
std::shared_ptr<HybridPdfViewerSpec> hybridView = PdfViewer::PdfViewerAutolinking::createPdfViewer();
|
|
46
|
+
_hybridView = std::dynamic_pointer_cast<HybridPdfViewerSpecSwift>(hybridView);
|
|
47
|
+
[self updateView];
|
|
48
|
+
}
|
|
49
|
+
return self;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
- (void) updateView {
|
|
53
|
+
// 1. Get Swift part
|
|
54
|
+
PdfViewer::HybridPdfViewerSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
55
|
+
|
|
56
|
+
// 2. Get UIView*
|
|
57
|
+
void* viewUnsafe = swiftPart.getView();
|
|
58
|
+
UIView* view = (__bridge_transfer UIView*) viewUnsafe;
|
|
59
|
+
|
|
60
|
+
// 3. Update RCTViewComponentView's [contentView]
|
|
61
|
+
[self setContentView:view];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
- (void) updateProps:(const std::shared_ptr<const react::Props>&)props
|
|
65
|
+
oldProps:(const std::shared_ptr<const react::Props>&)oldProps {
|
|
66
|
+
// 1. Downcast props
|
|
67
|
+
const auto& newViewPropsConst = *std::static_pointer_cast<HybridPdfViewerProps const>(props);
|
|
68
|
+
auto& newViewProps = const_cast<HybridPdfViewerProps&>(newViewPropsConst);
|
|
69
|
+
PdfViewer::HybridPdfViewerSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
70
|
+
|
|
71
|
+
// 2. Update each prop individually
|
|
72
|
+
swiftPart.beforeUpdate();
|
|
73
|
+
|
|
74
|
+
// source: optional
|
|
75
|
+
if (newViewProps.source.isDirty) {
|
|
76
|
+
swiftPart.setSource(newViewProps.source.value);
|
|
77
|
+
newViewProps.source.isDirty = false;
|
|
78
|
+
}
|
|
79
|
+
// horizontal: optional
|
|
80
|
+
if (newViewProps.horizontal.isDirty) {
|
|
81
|
+
swiftPart.setHorizontal(newViewProps.horizontal.value);
|
|
82
|
+
newViewProps.horizontal.isDirty = false;
|
|
83
|
+
}
|
|
84
|
+
// enablePaging: optional
|
|
85
|
+
if (newViewProps.enablePaging.isDirty) {
|
|
86
|
+
swiftPart.setEnablePaging(newViewProps.enablePaging.value);
|
|
87
|
+
newViewProps.enablePaging.isDirty = false;
|
|
88
|
+
}
|
|
89
|
+
// spacing: optional
|
|
90
|
+
if (newViewProps.spacing.isDirty) {
|
|
91
|
+
swiftPart.setSpacing(newViewProps.spacing.value);
|
|
92
|
+
newViewProps.spacing.isDirty = false;
|
|
93
|
+
}
|
|
94
|
+
// enableZoom: optional
|
|
95
|
+
if (newViewProps.enableZoom.isDirty) {
|
|
96
|
+
swiftPart.setEnableZoom(newViewProps.enableZoom.value);
|
|
97
|
+
newViewProps.enableZoom.isDirty = false;
|
|
98
|
+
}
|
|
99
|
+
// minScale: optional
|
|
100
|
+
if (newViewProps.minScale.isDirty) {
|
|
101
|
+
swiftPart.setMinScale(newViewProps.minScale.value);
|
|
102
|
+
newViewProps.minScale.isDirty = false;
|
|
103
|
+
}
|
|
104
|
+
// maxScale: optional
|
|
105
|
+
if (newViewProps.maxScale.isDirty) {
|
|
106
|
+
swiftPart.setMaxScale(newViewProps.maxScale.value);
|
|
107
|
+
newViewProps.maxScale.isDirty = false;
|
|
108
|
+
}
|
|
109
|
+
// showsActivityIndicator: optional
|
|
110
|
+
if (newViewProps.showsActivityIndicator.isDirty) {
|
|
111
|
+
swiftPart.setShowsActivityIndicator(newViewProps.showsActivityIndicator.value);
|
|
112
|
+
newViewProps.showsActivityIndicator.isDirty = false;
|
|
113
|
+
}
|
|
114
|
+
// onLoadComplete: optional
|
|
115
|
+
if (newViewProps.onLoadComplete.isDirty) {
|
|
116
|
+
swiftPart.setOnLoadComplete(newViewProps.onLoadComplete.value);
|
|
117
|
+
newViewProps.onLoadComplete.isDirty = false;
|
|
118
|
+
}
|
|
119
|
+
// onPageChange: optional
|
|
120
|
+
if (newViewProps.onPageChange.isDirty) {
|
|
121
|
+
swiftPart.setOnPageChange(newViewProps.onPageChange.value);
|
|
122
|
+
newViewProps.onPageChange.isDirty = false;
|
|
123
|
+
}
|
|
124
|
+
// onScaleChange: optional
|
|
125
|
+
if (newViewProps.onScaleChange.isDirty) {
|
|
126
|
+
swiftPart.setOnScaleChange(newViewProps.onScaleChange.value);
|
|
127
|
+
newViewProps.onScaleChange.isDirty = false;
|
|
128
|
+
}
|
|
129
|
+
// onError: optional
|
|
130
|
+
if (newViewProps.onError.isDirty) {
|
|
131
|
+
swiftPart.setOnError(newViewProps.onError.value);
|
|
132
|
+
newViewProps.onError.isDirty = false;
|
|
133
|
+
}
|
|
134
|
+
// onThumbnailGenerated: optional
|
|
135
|
+
if (newViewProps.onThumbnailGenerated.isDirty) {
|
|
136
|
+
swiftPart.setOnThumbnailGenerated(newViewProps.onThumbnailGenerated.value);
|
|
137
|
+
newViewProps.onThumbnailGenerated.isDirty = false;
|
|
138
|
+
}
|
|
139
|
+
// onLoadingChange: optional
|
|
140
|
+
if (newViewProps.onLoadingChange.isDirty) {
|
|
141
|
+
swiftPart.setOnLoadingChange(newViewProps.onLoadingChange.value);
|
|
142
|
+
newViewProps.onLoadingChange.isDirty = false;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
swiftPart.afterUpdate();
|
|
146
|
+
|
|
147
|
+
// 3. Update hybridRef if it changed
|
|
148
|
+
if (newViewProps.hybridRef.isDirty) {
|
|
149
|
+
// hybridRef changed - call it with new this
|
|
150
|
+
const auto& maybeFunc = newViewProps.hybridRef.value;
|
|
151
|
+
if (maybeFunc.has_value()) {
|
|
152
|
+
maybeFunc.value()(_hybridView);
|
|
153
|
+
}
|
|
154
|
+
newViewProps.hybridRef.isDirty = false;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// 4. Continue in base class
|
|
158
|
+
[super updateProps:props oldProps:oldProps];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// ErrorEvent.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Represents an instance of `ErrorEvent`, backed by a C++ struct.
|
|
12
|
+
*/
|
|
13
|
+
public typealias ErrorEvent = margelo.nitro.pdfviewer.ErrorEvent
|
|
14
|
+
|
|
15
|
+
public extension ErrorEvent {
|
|
16
|
+
private typealias bridge = margelo.nitro.pdfviewer.bridge.swift
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance of `ErrorEvent`.
|
|
20
|
+
*/
|
|
21
|
+
init(message: String, code: String) {
|
|
22
|
+
self.init(std.string(message), std.string(code))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var message: String {
|
|
26
|
+
@inline(__always)
|
|
27
|
+
get {
|
|
28
|
+
return String(self.__message)
|
|
29
|
+
}
|
|
30
|
+
@inline(__always)
|
|
31
|
+
set {
|
|
32
|
+
self.__message = std.string(newValue)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var code: String {
|
|
37
|
+
@inline(__always)
|
|
38
|
+
get {
|
|
39
|
+
return String(self.__code)
|
|
40
|
+
}
|
|
41
|
+
@inline(__always)
|
|
42
|
+
set {
|
|
43
|
+
self.__code = std.string(newValue)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Func_void_ErrorEvent.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Wraps a Swift `(_ event: ErrorEvent) -> Void` as a class.
|
|
13
|
+
* This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
|
|
14
|
+
*/
|
|
15
|
+
public final class Func_void_ErrorEvent {
|
|
16
|
+
public typealias bridge = margelo.nitro.pdfviewer.bridge.swift
|
|
17
|
+
|
|
18
|
+
private let closure: (_ event: ErrorEvent) -> Void
|
|
19
|
+
|
|
20
|
+
public init(_ closure: @escaping (_ event: ErrorEvent) -> Void) {
|
|
21
|
+
self.closure = closure
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@inline(__always)
|
|
25
|
+
public func call(event: ErrorEvent) -> Void {
|
|
26
|
+
self.closure(event)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Casts this instance to a retained unsafe raw pointer.
|
|
31
|
+
* This acquires one additional strong reference on the object!
|
|
32
|
+
*/
|
|
33
|
+
@inline(__always)
|
|
34
|
+
public func toUnsafe() -> UnsafeMutableRawPointer {
|
|
35
|
+
return Unmanaged.passRetained(self).toOpaque()
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Casts an unsafe pointer to a `Func_void_ErrorEvent`.
|
|
40
|
+
* The pointer has to be a retained opaque `Unmanaged<Func_void_ErrorEvent>`.
|
|
41
|
+
* This removes one strong reference from the object!
|
|
42
|
+
*/
|
|
43
|
+
@inline(__always)
|
|
44
|
+
public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_ErrorEvent {
|
|
45
|
+
return Unmanaged<Func_void_ErrorEvent>.fromOpaque(pointer).takeRetainedValue()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Func_void_LoadCompleteEvent.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Wraps a Swift `(_ event: LoadCompleteEvent) -> Void` as a class.
|
|
13
|
+
* This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
|
|
14
|
+
*/
|
|
15
|
+
public final class Func_void_LoadCompleteEvent {
|
|
16
|
+
public typealias bridge = margelo.nitro.pdfviewer.bridge.swift
|
|
17
|
+
|
|
18
|
+
private let closure: (_ event: LoadCompleteEvent) -> Void
|
|
19
|
+
|
|
20
|
+
public init(_ closure: @escaping (_ event: LoadCompleteEvent) -> Void) {
|
|
21
|
+
self.closure = closure
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@inline(__always)
|
|
25
|
+
public func call(event: LoadCompleteEvent) -> Void {
|
|
26
|
+
self.closure(event)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Casts this instance to a retained unsafe raw pointer.
|
|
31
|
+
* This acquires one additional strong reference on the object!
|
|
32
|
+
*/
|
|
33
|
+
@inline(__always)
|
|
34
|
+
public func toUnsafe() -> UnsafeMutableRawPointer {
|
|
35
|
+
return Unmanaged.passRetained(self).toOpaque()
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Casts an unsafe pointer to a `Func_void_LoadCompleteEvent`.
|
|
40
|
+
* The pointer has to be a retained opaque `Unmanaged<Func_void_LoadCompleteEvent>`.
|
|
41
|
+
* This removes one strong reference from the object!
|
|
42
|
+
*/
|
|
43
|
+
@inline(__always)
|
|
44
|
+
public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_LoadCompleteEvent {
|
|
45
|
+
return Unmanaged<Func_void_LoadCompleteEvent>.fromOpaque(pointer).takeRetainedValue()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Func_void_LoadingChangeEvent.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Wraps a Swift `(_ event: LoadingChangeEvent) -> Void` as a class.
|
|
13
|
+
* This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
|
|
14
|
+
*/
|
|
15
|
+
public final class Func_void_LoadingChangeEvent {
|
|
16
|
+
public typealias bridge = margelo.nitro.pdfviewer.bridge.swift
|
|
17
|
+
|
|
18
|
+
private let closure: (_ event: LoadingChangeEvent) -> Void
|
|
19
|
+
|
|
20
|
+
public init(_ closure: @escaping (_ event: LoadingChangeEvent) -> Void) {
|
|
21
|
+
self.closure = closure
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@inline(__always)
|
|
25
|
+
public func call(event: LoadingChangeEvent) -> Void {
|
|
26
|
+
self.closure(event)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Casts this instance to a retained unsafe raw pointer.
|
|
31
|
+
* This acquires one additional strong reference on the object!
|
|
32
|
+
*/
|
|
33
|
+
@inline(__always)
|
|
34
|
+
public func toUnsafe() -> UnsafeMutableRawPointer {
|
|
35
|
+
return Unmanaged.passRetained(self).toOpaque()
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Casts an unsafe pointer to a `Func_void_LoadingChangeEvent`.
|
|
40
|
+
* The pointer has to be a retained opaque `Unmanaged<Func_void_LoadingChangeEvent>`.
|
|
41
|
+
* This removes one strong reference from the object!
|
|
42
|
+
*/
|
|
43
|
+
@inline(__always)
|
|
44
|
+
public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_LoadingChangeEvent {
|
|
45
|
+
return Unmanaged<Func_void_LoadingChangeEvent>.fromOpaque(pointer).takeRetainedValue()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Func_void_PageChangeEvent.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Wraps a Swift `(_ event: PageChangeEvent) -> Void` as a class.
|
|
13
|
+
* This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
|
|
14
|
+
*/
|
|
15
|
+
public final class Func_void_PageChangeEvent {
|
|
16
|
+
public typealias bridge = margelo.nitro.pdfviewer.bridge.swift
|
|
17
|
+
|
|
18
|
+
private let closure: (_ event: PageChangeEvent) -> Void
|
|
19
|
+
|
|
20
|
+
public init(_ closure: @escaping (_ event: PageChangeEvent) -> Void) {
|
|
21
|
+
self.closure = closure
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@inline(__always)
|
|
25
|
+
public func call(event: PageChangeEvent) -> Void {
|
|
26
|
+
self.closure(event)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Casts this instance to a retained unsafe raw pointer.
|
|
31
|
+
* This acquires one additional strong reference on the object!
|
|
32
|
+
*/
|
|
33
|
+
@inline(__always)
|
|
34
|
+
public func toUnsafe() -> UnsafeMutableRawPointer {
|
|
35
|
+
return Unmanaged.passRetained(self).toOpaque()
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Casts an unsafe pointer to a `Func_void_PageChangeEvent`.
|
|
40
|
+
* The pointer has to be a retained opaque `Unmanaged<Func_void_PageChangeEvent>`.
|
|
41
|
+
* This removes one strong reference from the object!
|
|
42
|
+
*/
|
|
43
|
+
@inline(__always)
|
|
44
|
+
public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_PageChangeEvent {
|
|
45
|
+
return Unmanaged<Func_void_PageChangeEvent>.fromOpaque(pointer).takeRetainedValue()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// Func_void_ScaleChangeEvent.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2026 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Wraps a Swift `(_ event: ScaleChangeEvent) -> Void` as a class.
|
|
13
|
+
* This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
|
|
14
|
+
*/
|
|
15
|
+
public final class Func_void_ScaleChangeEvent {
|
|
16
|
+
public typealias bridge = margelo.nitro.pdfviewer.bridge.swift
|
|
17
|
+
|
|
18
|
+
private let closure: (_ event: ScaleChangeEvent) -> Void
|
|
19
|
+
|
|
20
|
+
public init(_ closure: @escaping (_ event: ScaleChangeEvent) -> Void) {
|
|
21
|
+
self.closure = closure
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@inline(__always)
|
|
25
|
+
public func call(event: ScaleChangeEvent) -> Void {
|
|
26
|
+
self.closure(event)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Casts this instance to a retained unsafe raw pointer.
|
|
31
|
+
* This acquires one additional strong reference on the object!
|
|
32
|
+
*/
|
|
33
|
+
@inline(__always)
|
|
34
|
+
public func toUnsafe() -> UnsafeMutableRawPointer {
|
|
35
|
+
return Unmanaged.passRetained(self).toOpaque()
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Casts an unsafe pointer to a `Func_void_ScaleChangeEvent`.
|
|
40
|
+
* The pointer has to be a retained opaque `Unmanaged<Func_void_ScaleChangeEvent>`.
|
|
41
|
+
* This removes one strong reference from the object!
|
|
42
|
+
*/
|
|
43
|
+
@inline(__always)
|
|
44
|
+
public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_ScaleChangeEvent {
|
|
45
|
+
return Unmanaged<Func_void_ScaleChangeEvent>.fromOpaque(pointer).takeRetainedValue()
|
|
46
|
+
}
|
|
47
|
+
}
|