Skip to content

Releases: RamboWasReal/react-native-gleam

v1.0.5

01 Apr 01:25
ec4401f

Choose a tag to compare

Fixed

  • iOS: resync visual state on ancestor display: 'none' removal via KVO observer on self.hidden
  • Android: resync visual state on ancestor visibility change via onVisibilityChanged override

Context

Fabric maps ancestor display: 'none' to UIView.hidden=YES (iOS) / View.setVisibility(INVISIBLE) (Android). These bypass existing didMoveToWindow / onAttachedToWindow hooks, leaving GleamView stuck in the wrong visual state when the ancestor becomes visible again.

Full Changelog: v1.0.4...v1.0.5

v1.0.4

01 Apr 00:58

Choose a tag to compare

Fixed

  • iOS: resync visual state after display: 'none' and window changes — Fabric maps display: 'none' to UIView.hidden=YES without triggering layoutSubviews, so the v1.0.3 fix was insufficient (#4)
  • iOS: let loading transitions complete even when the view is hidden or has no window, preventing stuck shimmer state after security lock overlays or app background/foreground cycles
  • iOS: add didMoveToWindow handler to resync state on window re-attachment, mirroring Android's existing onAttachedToWindow path

v1.0.3

01 Apr 00:57

Choose a tag to compare

Fixed

  • iOS: sync visual state in layoutSubviews when loading=NO — fixes GleamView stuck in shimmer after loading transitions while parent has display: 'none' (#3)

v1.0.2

23 Mar 01:12

Choose a tag to compare

Improved

  • Claude Code /gleam skill: scans entire codebase for all shimmer/skeleton/loading patterns (moti, reanimated, SkeletonPlaceholder, ActivityIndicator, etc.) before refactoring

v1.0.1

23 Mar 01:07

Choose a tag to compare

Fixed

  • Android: clamp blendColor RGBA channels to 0-255
  • Android: clear animator listeners before cancel on detach/cleanup
  • Android: snapshot SharedClock views list before frame iteration
  • iOS: null check after calloc in shared clock buffer allocation
  • iOS: guard against NaN/Infinity in speed, delay, transitionDuration

Added

  • JSDoc with @default tags on all NativeProps and GleamLineProps
  • Claude Code plugin with /gleam setup command

v1.0.0

23 Mar 00:38

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[1.0.0] - 2026-03-22

First stable release.

Added

  • GleamView component — native shimmer/skeleton loading for React Native (Fabric)
  • GleamView.Line compound component for multi-line skeleton layouts
  • Three animation directions: LeftToRight, RightToLeft, TopToBottom
  • Three transition styles: Fade, Shrink, Collapse
  • intensity prop for subtle shimmer effects (0–1)
  • delay prop for staggered skeleton patterns
  • onTransitionEnd callback with finished flag (supports interruption detection)
  • Shared clock on both platforms — all shimmer instances with the same speed stay in sync
  • iOS: CAGradientLayer + CADisplayLink driven animation
  • Android: Choreographer + LinearGradient shader via dispatchDraw

Notes

  • Fabric-only (New Architecture) — no Paper/old architecture support
  • Requires React 19+ and React Native 0.78+
  • The shimmer overlay supports uniform borderRadius only — per-corner radii are not applied to the shimmer
  • When GleamView.Line children are present, the parent renders as a plain View. Use onTransitionEnd on individual lines, not the parent.