Skip to content

Readwise/v13.16.0 - #6

Merged
artemlitch merged 2 commits into
masterfrom
readwise/v13.16.0
Feb 9, 2026
Merged

Readwise/v13.16.0#6
artemlitch merged 2 commits into
masterfrom
readwise/v13.16.0

Conversation

@artemlitch

@artemlitchartemlitch commented Feb 8, 2026

Copy link
Copy Markdown
Collaborator

Re-add Readwise custom features on v13.16.0

Syncs the Readwise fork to upstream v13.16.0 and re-applies our 3 custom iOS features with full Fabric (new architecture) support.

Features

setTintColor command (iOS only)

Imperative method to set the WebView's tint color via RGBA values. Used for highlight selection colors in the reader — transparent during resize, yellow for auto-highlight, blue
default.

webViewRef.current.setTintColor(255,220,0,1);// yellow-CodegencommandacceptingDoubleparams(Fabric-compatible)-OldarchbridgemethodviaRCT_EXPORT_METHODscrollsToTopprop(iOSonly)Booleanprop(defaulttrue)controllingwhethertappingthestatusbarscrollstheWebViewtotop.Settofalseinthereadertopreventaccidentalscroll-to-topwhenreading.dragInteractionEnabledprop(iOSonly)Booleanprop(defaulttrue)toenable/disableUIDragInteractionontheWebViewanditssubviews.Preventsunwanteddrag-and-dropbehaviorinthereader.Notre-added-forceLightScrollIndicatorssupersededbyupstream's indicatorStyle prop (added in v13.14.0). Consumer code updated to use indicatorStyle: 'white' | 'default' instead.
-lib/buildartifactsnotneeded.package.jsonhas"react-native": "src/index.ts"soMetroresolvesfromsourcedirectly.Fileschanged┌──────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────────────────┐FileChanges├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤src/RNCWebViewNativeComponent.tsAddedscrollsToTop,dragInteractionEnabledprops+setTintColorcommandtocodegen├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤src/WebViewTypes.tsAddedIOSWebViewCommandstype,scrollsToTopanddragInteractionEnabledtoIOSWebViewProps├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤src/WebView.ios.tsxExposedsetTintColorinuseImperativeHandle├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤apple/RNCWebViewImpl.hPropertydeclarations+setTintColor: method├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤apple/RNCWebViewImpl.mInitdefaults,setters(with #if !TARGET_OS_OSXguards),tintcolorimplementation├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤apple/RNCWebView.mmFabricREMAP_WEBVIEW_PROP+setTintColorcommandhandler├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤apple/RNCWebViewManager.mmOldarchRCT_CUSTOM_VIEW_PROPERTY+RCT_EXPORT_METHODforsetTintColor├──────────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────┤index.d.tsTypeScriptdeclarationforsetTintColor└──────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────────┘Testing-ReaderiOSbuildsandlauncheswithoutcrash-NosetTintColor is notafunctionerror-Homescreenanddocumentwebviewrendercorrectly

Re-applies 4 custom Readwise features on top of upstream v13.16.0:
1. setTintColor command - controls WebView selection/tint color via RGBA
doubles. Fixed Fabric signature to match codegen protocol (4 doubles
instead of UIColor), preventing SIGABRT on New Architecture.
2. scrollsToTop prop - controls scroll-to-top on status bar tap.
3. dragInteractionEnabled prop - controls drag interactions on the webview.
4. forceLightScrollIndicators is NOT re-added — upstream v13.14.0+ has
indicatorStyle prop which supersedes it with more flexibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
WKWebView pages loaded with about:blank origin (via loadHTMLString:baseURL:)
cannot access file:// URLs. This custom scheme handler serves files from the
app bundle (fonts, etc.) via rw-asset:///filename URLs, bypassing the
file:// security restriction.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
// Register custom URL scheme handler to serve app bundle assets (fonts, etc.)
// from WKWebView pages loaded with about:blank origin, which can't access file:// URLs.
RNCAssetSchemeHandler *assetHandler = [[RNCAssetSchemeHandler alloc] init];
[wkWebViewConfig setURLSchemeHandler:assetHandler forURLScheme:@"rw-asset"];

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is iOS 11+ only and I think we have a target of iOS 9? We should probably check if we need to safely escape if we are on an earlier version.

@artemlitch
artemlitch merged commit fc2c3ad into masterFeb 9, 2026
1 of 9 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@artemlitch@jhlabs