ReviewOS

also looking at this

craft-native/craft

fix(native): interaction, audio, document and checkpoint gaps stranded after #401

#415
Merged glennmichael123 wants to merge codex/issues-388-400-344 into main
19 files +987 -50

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

packages/android/src/index.test.tsmodified+4-0
Changes to packages/android/src/index.test.ts
@@ -198,6 +198,10 @@ describe('Craft Android builder', () => {
198198 expect(refreshableFlatList).toContain('isRefreshing = false')
199199 expect(flatList).toContain('fun setKeyboardDismissMode(mode: String, dismissKeyboard: () -> Unit)')
200200 expect(nativeActivity).toContain('setKeyboardDismissMode(craftNativeOptionalString(props.opt("keyboardDismissMode")).orEmpty())')
201 expect(nativeActivity).toContain('private val frameCallback = android.view.Choreographer.FrameCallback')
202 expect(nativeActivity).toContain('android.view.Choreographer.getInstance().postFrameCallback(frameCallback)')
203 expect(nativeActivity).toContain('android.view.Choreographer.getInstance().removeFrameCallback(frameCallback)')
204 expect(nativeActivity).toContain('requestAnimationFrame')
201205 expect(flatList).toContain('renderedLayout?.height ?: LayoutParams.WRAP_CONTENT')
202206 expect(nativeActivity).toContain('val nestedLists = refreshableLists.map { it.list }.toSet()')
203207 expect(nativeActivity).toContain('released.addAll(nestedLists)')
packages/ios/src/index.test.tsmodified+4-0
Changes to packages/ios/src/index.test.ts
@@ -249,6 +249,10 @@ describe('Craft iOS builder', () => {
249249 expect(nativeSwift).toContain('UIApplication.didBecomeActiveNotification')
250250 expect(nativeSwift).toContain('DeepLinkManager.shared.addNativeListener')
251251 expect(nativeSwift).toContain('navigationController?.topViewController === self')
252 expect(nativeSwift).toContain('final class CraftNativeFrameClock: NSObject')
253 expect(nativeSwift).toContain('let link = CADisplayLink(target: self, selector: #selector(frame(_:)))')
254 expect(nativeSwift).toContain('link.add(to: .main, forMode: .common)')
255 expect(nativeSwift).toContain('if waiting.isEmpty { link.isPaused = true }')
252256 expect(nativeSwift).toContain('private class CraftNativeFlowView: UIStackView')
253257 expect(nativeSwift).toContain('let frameCount = output.count')
254258 expect(nativeSwift).toContain('private func sharedTreeFrames(')