@papyrus-sdk/ui-react-native 0.2.18-beta.3 → 0.2.18-beta.5

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/dist/index.mjs CHANGED
@@ -28511,7 +28511,7 @@ var styles10 = StyleSheet10.create({
28511
28511
  var BottomBar_default = BottomBar;
28512
28512
 
28513
28513
  // components/SettingsSheet.tsx
28514
- import { useCallback as useCallback5, useMemo as useMemo6 } from "react";
28514
+ import { useCallback as useCallback5, useEffect as useEffect9, useMemo as useMemo6, useState as useState9 } from "react";
28515
28515
  import { Dimensions as Dimensions2, View as View11, Text as Text6, Pressable as Pressable9, StyleSheet as StyleSheet11 } from "react-native";
28516
28516
  import BottomSheet2, {
28517
28517
  BottomSheetBackdrop as BottomSheetBackdrop2,
@@ -28562,10 +28562,14 @@ var SettingsSheet = ({
28562
28562
  const isPaged = viewMode === "single";
28563
28563
  const isDouble = viewMode === "double";
28564
28564
  const t = getStrings(locale);
28565
+ const [hasBeenVisible, setHasBeenVisible] = useState9(visible);
28565
28566
  const snapPoints = useMemo6(
28566
28567
  () => [Math.min(640, Dimensions2.get("window").height * 0.72)],
28567
28568
  []
28568
28569
  );
28570
+ useEffect9(() => {
28571
+ if (visible) setHasBeenVisible(true);
28572
+ }, [visible]);
28569
28573
  const renderBackdrop = useCallback5(
28570
28574
  (props) => /* @__PURE__ */ jsx12(
28571
28575
  BottomSheetBackdrop2,
@@ -28604,6 +28608,7 @@ var SettingsSheet = ({
28604
28608
  engine.setZoom(next);
28605
28609
  setDocumentState({ zoom: next });
28606
28610
  };
28611
+ if (!hasBeenVisible) return null;
28607
28612
  return /* @__PURE__ */ jsx12(View11, { style: styles11.modalRoot, pointerEvents: "box-none", children: /* @__PURE__ */ jsx12(
28608
28613
  BottomSheet2,
28609
28614
  {
@@ -29126,7 +29131,7 @@ var styles11 = StyleSheet11.create({
29126
29131
  var SettingsSheet_default = SettingsSheet;
29127
29132
 
29128
29133
  // components/CoverPreview.tsx
29129
- import { useEffect as useEffect9, useMemo as useMemo7, useRef as useRef7, useState as useState9 } from "react";
29134
+ import { useEffect as useEffect10, useMemo as useMemo7, useRef as useRef7, useState as useState10 } from "react";
29130
29135
  import {
29131
29136
  ActivityIndicator,
29132
29137
  StyleSheet as StyleSheet12,
@@ -29184,18 +29189,18 @@ var CoverPreview = ({
29184
29189
  onLoadEnd,
29185
29190
  onError
29186
29191
  }) => {
29187
- const [engine, setEngine] = useState9(null);
29188
- const [layoutReady, setLayoutReady] = useState9(false);
29189
- const [loaded, setLoaded] = useState9(false);
29190
- const [loading, setLoading] = useState9(false);
29191
- const [error, setError] = useState9(null);
29192
+ const [engine, setEngine] = useState10(null);
29193
+ const [layoutReady, setLayoutReady] = useState10(false);
29194
+ const [loaded, setLoaded] = useState10(false);
29195
+ const [loading, setLoading] = useState10(false);
29196
+ const [error, setError] = useState10(null);
29192
29197
  const viewRef = useRef7(null);
29193
29198
  const resolvedType = useMemo7(() => inferDocumentType(source, type), [source, type]);
29194
29199
  const isPdf = resolvedType === "pdf";
29195
29200
  const hasNativePageView = Boolean(UIManager2.getViewManagerConfig?.("PapyrusPageView"));
29196
29201
  const canRender = !isPdf || hasNativePageView;
29197
29202
  const shouldRender = Boolean(visible);
29198
- useEffect9(() => {
29203
+ useEffect10(() => {
29199
29204
  if (!shouldRender) {
29200
29205
  if (!keepAlive) {
29201
29206
  setEngine(null);
@@ -29208,7 +29213,7 @@ var CoverPreview = ({
29208
29213
  setEngine(new MobileDocumentEngine());
29209
29214
  }
29210
29215
  }, [shouldRender, keepAlive, engine, canRender]);
29211
- useEffect9(() => {
29216
+ useEffect10(() => {
29212
29217
  if (!engine || !shouldRender || !canRender) return;
29213
29218
  let active = true;
29214
29219
  setLoading(true);
@@ -29235,13 +29240,13 @@ var CoverPreview = ({
29235
29240
  active = false;
29236
29241
  };
29237
29242
  }, [engine, shouldRender, canRender, source, type, pageIndex, isPdf, onLoadStart, onLoadEnd, onError]);
29238
- useEffect9(() => {
29243
+ useEffect10(() => {
29239
29244
  if (!engine || !isPdf || !loaded || !layoutReady || !shouldRender || !canRender) return;
29240
29245
  const viewTag = findNodeHandle3(viewRef.current);
29241
29246
  if (!viewTag) return;
29242
29247
  engine.renderPage(pageIndex, viewTag, renderScale);
29243
29248
  }, [engine, isPdf, loaded, layoutReady, shouldRender, canRender, pageIndex, renderScale]);
29244
- useEffect9(() => {
29249
+ useEffect10(() => {
29245
29250
  return () => {
29246
29251
  engine?.destroy();
29247
29252
  };
@@ -29308,7 +29313,7 @@ var styles12 = StyleSheet12.create({
29308
29313
  var CoverPreview_default = CoverPreview;
29309
29314
 
29310
29315
  // components/ReadingShell.tsx
29311
- import React14, { useState as useState11 } from "react";
29316
+ import React14, { useState as useState12 } from "react";
29312
29317
  import { Keyboard as Keyboard2, View as View19, StyleSheet as StyleSheet19 } from "react-native";
29313
29318
  import { useViewerStore as useViewerStore17 } from "@papyrus-sdk/core";
29314
29319
 
@@ -29933,7 +29938,7 @@ var styles16 = StyleSheet16.create({
29933
29938
  });
29934
29939
 
29935
29940
  // components/SearchOverlay.tsx
29936
- import { useEffect as useEffect10, useMemo as useMemo9, useState as useState10 } from "react";
29941
+ import { useEffect as useEffect11, useMemo as useMemo9, useState as useState11 } from "react";
29937
29942
  import {
29938
29943
  Keyboard,
29939
29944
  Pressable as Pressable14,
@@ -29962,14 +29967,14 @@ function SearchOverlay({
29962
29967
  uiTheme,
29963
29968
  accentColor
29964
29969
  } = useViewerStore15();
29965
- const [draft, setDraft] = useState10(searchQuery);
29966
- const [isSearching, setIsSearching] = useState10(false);
29970
+ const [draft, setDraft] = useState11(searchQuery);
29971
+ const [isSearching, setIsSearching] = useState11(false);
29967
29972
  const isDark = uiTheme === "dark";
29968
29973
  const t = getStrings(locale);
29969
29974
  const searchService = useMemo9(() => new SearchService(engine), [engine]);
29970
29975
  const currentCount = searchResults.length > 0 && activeSearchIndex >= 0 ? activeSearchIndex + 1 : 0;
29971
29976
  const targetLabel = documentType === "pdf" ? t.page : documentType === "epub" ? t.contents : t.progress;
29972
- useEffect10(() => {
29977
+ useEffect11(() => {
29973
29978
  if (!visible) return;
29974
29979
  setDraft(searchQuery);
29975
29980
  }, [searchQuery, visible]);
@@ -30454,12 +30459,12 @@ function ReadingShell({
30454
30459
  uiTheme,
30455
30460
  accentColor
30456
30461
  } = useViewerStore17();
30457
- const [overflowOpen, setOverflowOpen] = useState11(false);
30458
- const [infoOpen, setInfoOpen] = useState11(false);
30459
- const [actionsOpen, setActionsOpen] = useState11(false);
30460
- const [settingsOpen, setSettingsOpen] = useState11(false);
30461
- const [searchResultsOpen, setSearchResultsOpen] = useState11(false);
30462
- const [pageJumpOpen, setPageJumpOpen] = useState11(false);
30462
+ const [overflowOpen, setOverflowOpen] = useState12(false);
30463
+ const [infoOpen, setInfoOpen] = useState12(false);
30464
+ const [actionsOpen, setActionsOpen] = useState12(false);
30465
+ const [settingsOpen, setSettingsOpen] = useState12(false);
30466
+ const [searchResultsOpen, setSearchResultsOpen] = useState12(false);
30467
+ const [pageJumpOpen, setPageJumpOpen] = useState12(false);
30463
30468
  const isDark = uiTheme === "dark";
30464
30469
  React14.useEffect(() => {
30465
30470
  const showSubscription = Keyboard2.addListener("keyboardDidShow", () => {