Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.1.0] - 2026-08-27

### Added
Expand All @@ -24,7 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- CI: always run `pod install` after cache restore (codegen needs fresh `build/generated`)
- CI: stop caching `vendor/bundle` (stale gems broke Ruby 3.4 pod install)
- Example: add `nkf` and `base64` gems for Ruby 3.4 / CocoaPods compatibility
- `GleamView.Line` detection no longer walks custom component `children` (avoids disabling the parent shimmer when a nested `GleamView` owns those Lines)
- `GleamView.Line` detection no longer walks custom component `children` (avoids disabling the parent shimmer when a nested `GleamView` owns those Lines) (#8)

## [1.0.6] - 2026-05-15

Expand Down Expand Up @@ -97,3 +99,13 @@ First stable release.
- 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.

[Unreleased]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.1.0...HEAD
[1.1.0]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.0.6...v1.1.0
[1.0.6]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.0.5...v1.0.6
[1.0.5]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.0.4...v1.0.5
[1.0.4]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.0.3...v1.0.4
[1.0.3]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.0.2...v1.0.3
[1.0.2]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/RamboWasReal/react-native-gleam/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/RamboWasReal/react-native-gleam/releases/tag/v1.0.0
6 changes: 5 additions & 1 deletion skills/gleam/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,10 @@ import { GleamView } from 'react-native-gleam';
Key rules:
- `GleamView` wraps content — no conditional rendering needed. Children are hidden when `loading={true}` and shown when `loading={false}`
- Lines inherit shimmer props from parent. `delay` and `onTransitionEnd` are per-line
- Place Lines as direct children or inside fragments
- Place Lines as direct children of `GleamView`, or inside `<View>` / fragments — those are detected on the first render. Custom wrappers still work; they register after mount
- Use `onTransitionEnd` on individual Lines, not the parent
- While `loading={true}`, `GleamView` and `GleamView.Line` set `accessibilityState.busy` (merged with any `accessibilityState` you pass)
- When the system Reduce Motion setting is on, shimmer is a static `baseColor` placeholder — no animation
- In `FlatList`/`VirtualizedList` cells, keep the wrapper pattern and make `loading` reflect the absence of stable content, not background refetching. For example, with server-state data use `loading={isPending && !data}` instead of `loading={isFetching}` so recycled cells do not re-enable shimmer over already loaded content.
- When adding or debugging list usage, validate with the example app's `FlatList recycling` section by scrolling enough to recycle cells, toggling loading, and confirming loaded content remains visible after cells reattach.

Expand Down Expand Up @@ -112,6 +114,8 @@ Key rules:
| `delay` | `number` | `0` | Phase offset for this line |
| `onTransitionEnd` | `function` | — | Per-line transition callback |

Accessibility props (`accessibilityLabel`, `accessibilityRole`, etc.) are accepted on Lines. Shimmer props (`loading`, `speed`, `direction`, …) are inherited from the parent `GleamView`.

### Enums

```tsx
Expand Down
Loading