@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.
Files changed (95) hide show
  1. package/LICENSE +20 -0
  2. package/PdfViewer.podspec +28 -0
  3. package/README.md +290 -0
  4. package/android/CMakeLists.txt +24 -0
  5. package/android/build.gradle +121 -0
  6. package/android/src/main/AndroidManifest.xml +2 -0
  7. package/android/src/main/cpp/cpp-adapter.cpp +6 -0
  8. package/android/src/main/java/com/margelo/nitro/pdfviewer/HybridPdfViewer.kt +169 -0
  9. package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewer.kt +996 -0
  10. package/android/src/main/java/com/margelo/nitro/pdfviewer/PdfViewerPackage.kt +26 -0
  11. package/ios/PdfViewer.swift +696 -0
  12. package/lib/module/PdfViewer.nitro.js +4 -0
  13. package/lib/module/PdfViewer.nitro.js.map +1 -0
  14. package/lib/module/index.js +13 -0
  15. package/lib/module/index.js.map +1 -0
  16. package/lib/module/package.json +1 -0
  17. package/lib/typescript/package.json +1 -0
  18. package/lib/typescript/src/PdfViewer.nitro.d.ts +67 -0
  19. package/lib/typescript/src/PdfViewer.nitro.d.ts.map +1 -0
  20. package/lib/typescript/src/index.d.ts +8 -0
  21. package/lib/typescript/src/index.d.ts.map +1 -0
  22. package/nitro.json +17 -0
  23. package/nitrogen/generated/android/c++/JErrorEvent.hpp +57 -0
  24. package/nitrogen/generated/android/c++/JFunc_void_ErrorEvent.hpp +77 -0
  25. package/nitrogen/generated/android/c++/JFunc_void_LoadCompleteEvent.hpp +76 -0
  26. package/nitrogen/generated/android/c++/JFunc_void_LoadingChangeEvent.hpp +76 -0
  27. package/nitrogen/generated/android/c++/JFunc_void_PageChangeEvent.hpp +76 -0
  28. package/nitrogen/generated/android/c++/JFunc_void_ScaleChangeEvent.hpp +76 -0
  29. package/nitrogen/generated/android/c++/JFunc_void_ThumbnailGeneratedEvent.hpp +77 -0
  30. package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.cpp +273 -0
  31. package/nitrogen/generated/android/c++/JHybridPdfViewerSpec.hpp +94 -0
  32. package/nitrogen/generated/android/c++/JLoadCompleteEvent.hpp +61 -0
  33. package/nitrogen/generated/android/c++/JLoadingChangeEvent.hpp +53 -0
  34. package/nitrogen/generated/android/c++/JPageChangeEvent.hpp +57 -0
  35. package/nitrogen/generated/android/c++/JScaleChangeEvent.hpp +53 -0
  36. package/nitrogen/generated/android/c++/JThumbnailGeneratedEvent.hpp +57 -0
  37. package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.cpp +108 -0
  38. package/nitrogen/generated/android/c++/views/JHybridPdfViewerStateUpdater.hpp +49 -0
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ErrorEvent.kt +32 -0
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ErrorEvent.kt +81 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadCompleteEvent.kt +81 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_LoadingChangeEvent.kt +81 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_PageChangeEvent.kt +81 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ScaleChangeEvent.kt +81 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/Func_void_ThumbnailGeneratedEvent.kt +81 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/HybridPdfViewerSpec.kt +195 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadCompleteEvent.kt +35 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/LoadingChangeEvent.kt +29 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/PageChangeEvent.kt +32 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ScaleChangeEvent.kt +29 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/ThumbnailGeneratedEvent.kt +32 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/pdfviewerOnLoad.kt +35 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerManager.kt +50 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/pdfviewer/views/HybridPdfViewerStateUpdater.kt +23 -0
  55. package/nitrogen/generated/android/pdfviewer+autolinking.cmake +83 -0
  56. package/nitrogen/generated/android/pdfviewer+autolinking.gradle +27 -0
  57. package/nitrogen/generated/android/pdfviewerOnLoad.cpp +58 -0
  58. package/nitrogen/generated/android/pdfviewerOnLoad.hpp +25 -0
  59. package/nitrogen/generated/ios/PdfViewer+autolinking.rb +60 -0
  60. package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.cpp +80 -0
  61. package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Bridge.hpp +339 -0
  62. package/nitrogen/generated/ios/PdfViewer-Swift-Cxx-Umbrella.hpp +64 -0
  63. package/nitrogen/generated/ios/PdfViewerAutolinking.mm +33 -0
  64. package/nitrogen/generated/ios/PdfViewerAutolinking.swift +25 -0
  65. package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.cpp +11 -0
  66. package/nitrogen/generated/ios/c++/HybridPdfViewerSpecSwift.hpp +205 -0
  67. package/nitrogen/generated/ios/c++/views/HybridPdfViewerComponent.mm +161 -0
  68. package/nitrogen/generated/ios/swift/ErrorEvent.swift +46 -0
  69. package/nitrogen/generated/ios/swift/Func_void_ErrorEvent.swift +47 -0
  70. package/nitrogen/generated/ios/swift/Func_void_LoadCompleteEvent.swift +47 -0
  71. package/nitrogen/generated/ios/swift/Func_void_LoadingChangeEvent.swift +47 -0
  72. package/nitrogen/generated/ios/swift/Func_void_PageChangeEvent.swift +47 -0
  73. package/nitrogen/generated/ios/swift/Func_void_ScaleChangeEvent.swift +47 -0
  74. package/nitrogen/generated/ios/swift/Func_void_ThumbnailGeneratedEvent.swift +47 -0
  75. package/nitrogen/generated/ios/swift/HybridPdfViewerSpec.swift +65 -0
  76. package/nitrogen/generated/ios/swift/HybridPdfViewerSpec_cxx.swift +500 -0
  77. package/nitrogen/generated/ios/swift/LoadCompleteEvent.swift +57 -0
  78. package/nitrogen/generated/ios/swift/LoadingChangeEvent.swift +35 -0
  79. package/nitrogen/generated/ios/swift/PageChangeEvent.swift +46 -0
  80. package/nitrogen/generated/ios/swift/ScaleChangeEvent.swift +35 -0
  81. package/nitrogen/generated/ios/swift/ThumbnailGeneratedEvent.swift +46 -0
  82. package/nitrogen/generated/shared/c++/ErrorEvent.hpp +71 -0
  83. package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.cpp +52 -0
  84. package/nitrogen/generated/shared/c++/HybridPdfViewerSpec.hpp +111 -0
  85. package/nitrogen/generated/shared/c++/LoadCompleteEvent.hpp +75 -0
  86. package/nitrogen/generated/shared/c++/LoadingChangeEvent.hpp +67 -0
  87. package/nitrogen/generated/shared/c++/PageChangeEvent.hpp +71 -0
  88. package/nitrogen/generated/shared/c++/ScaleChangeEvent.hpp +67 -0
  89. package/nitrogen/generated/shared/c++/ThumbnailGeneratedEvent.hpp +71 -0
  90. package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.cpp +243 -0
  91. package/nitrogen/generated/shared/c++/views/HybridPdfViewerComponent.hpp +127 -0
  92. package/nitrogen/generated/shared/json/PdfViewerConfig.json +23 -0
  93. package/package.json +175 -0
  94. package/src/PdfViewer.nitro.ts +97 -0
  95. 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
+ }