@poolse/react-native 2.1.6 → 2.3.0

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/CHANGELOG.md CHANGED
@@ -1,89 +1,89 @@
1
- # Changelog
2
-
3
- All notable changes to `@poolse/react-native` are documented here.
4
- Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
5
- versions follow [semver](https://semver.org).
6
-
7
- ## [0.1.5] — 2026-06-03
8
-
9
- ### Added
10
-
11
- - **`<ImageMosaic>`** — WhatsApp-style multi-image grid (n1 / n2 /
12
- n3 / n4+ with `+N more` overlay) used inside `<MessageBubble>`
13
- whenever a message has more than one image attachment. Tapping a
14
- tile opens a full-screen modal viewer with tap-anywhere-to-close.
15
- Exported standalone so you can use the layout outside the bubble
16
- if you want.
17
- - **Haptic feedback on long-press** in `<MessageRow>` —
18
- `Haptics.impactAsync(ImpactFeedbackStyle.Medium)` fires when the
19
- action sheet opens. `expo-haptics` is loaded via a cached lazy
20
- `require()` — falls back to a silent no-op if you haven't
21
- installed it, so no peer dep is forced on consumers that don't
22
- want haptics.
23
-
24
- ### Changed
25
-
26
- - **Cleaner bubble meta row**: relative timestamp formatting
27
- (`HH:MM`, `Yesterday HH:MM`, `Mon HH:MM`, `MMM D`), tabular-num
28
- font variant so the time width stays stable, the read tick sits
29
- flush with the timestamp, and `edited` is its own italic pill
30
- rather than inline text.
31
-
32
- ### Notes
33
-
34
- - `expo-image-picker`, `expo-document-picker`, and `expo-haptics`
35
- remain OPTIONAL peer dependencies. (0.1.4 briefly promoted them
36
- to required — that caused npm to reorganize the dep tree on
37
- consumer installs, ended up with two copies of `@poolse/react` in
38
- Metro's bundle, and broke `PoolseProvider` context resolution.
39
- 0.1.5 reverts that. 0.1.3 and 0.1.4 were both burned slots and
40
- should not be used.)
41
-
42
- ## [0.1.0] — 2026-06-03
43
-
44
- First release. Plug-and-play React Native UI for poolse, mirroring
45
- the `@poolse/react-ui` component surface for native targets.
46
-
47
- ### Added
48
-
49
- - **Composed surface**: `<ConversationView>` with feature flags
50
- (`reactions`, `mentions`, `attachments`, `actions`, `threads`,
51
- `quotations`, `readReceipts`) — same defaults as web.
52
- - **Message components**: `<MessageBubble>`, `<EditableMessageBubble>`,
53
- `<MessageRow>`, `<MessageComposer>`, `<MessageActions>`,
54
- `<MessageList>` (inverted FlatList with stick-to-bottom +
55
- hold-position).
56
- - **Realtime feedback**: `<TypingIndicator>` (animated dots).
57
- - **Conversation + member panels**: `<ConversationList>` (FlatList +
58
- unread badges), `<MemberList>`.
59
- - **Rich content**: `<AttachmentPreview>` (image + file card),
60
- `<UploadQueueStrip>`, `<ReactionStrip>`, `<ReactionPicker>` (modal
61
- sheet), `<MentionInput>` (autocomplete popover),
62
- `<AttachmentPicker>` (wraps `expo-image-picker` and
63
- `expo-document-picker` when present).
64
- - **Threads**: `<ThreadView>` (modal screen).
65
- - **User display**: `<UserName>`, `useDisplayName` — both keyed by
66
- `externalId` to match SDK 2.0.
67
- - **Brand chrome**: `<PoolseIcon>` (SVG via `react-native-svg`),
68
- `<PoolseLogo>` (mark/lockup/wordmark/mono), `<Avatar>` (initials
69
- - URL fallback + stable userColor hashing).
70
- - **Theme system**: `<PoolseTheme>` provider + `usePoolseTheme()`
71
- hook. JS theme object with the same token groups as the web
72
- `--poolse-*` CSS variables (colors, type, radii, shadows,
73
- spacing). Light + dark defaults ship in.
74
- - **AppState lifecycle**: `useAppStateLifecycle()` hook — closes
75
- the SDK WebSocket on background, reopens + refetches the active
76
- conversation tail on foreground. Designed to pair with
77
- push-notification delivery on the dev's backend (no in-app
78
- background socket maintenance).
79
-
80
- ### Notes
81
-
82
- - Peer dependencies: `react >=18`, `react-native >=0.73`,
83
- `react-native-svg >=14`. `expo-image-picker` and
84
- `expo-document-picker` are optional peer deps — `<AttachmentPicker>`
85
- only requires them if you mount it.
86
- - Theming via JS object (no CSS variables). Override any token:
87
- `<PoolseTheme theme={{ colors: { brand: '#ff5733' } }}>`.
88
- - Shares the same `<PoolseProvider config={...}>` from
89
- `@poolse/react` — one provider for both web and RN.
1
+ # Changelog
2
+
3
+ All notable changes to `@poolse/react-native` are documented here.
4
+ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
5
+ versions follow [semver](https://semver.org).
6
+
7
+ ## [0.1.5] — 2026-06-03
8
+
9
+ ### Added
10
+
11
+ - **`<ImageMosaic>`** — WhatsApp-style multi-image grid (n1 / n2 /
12
+ n3 / n4+ with `+N more` overlay) used inside `<MessageBubble>`
13
+ whenever a message has more than one image attachment. Tapping a
14
+ tile opens a full-screen modal viewer with tap-anywhere-to-close.
15
+ Exported standalone so you can use the layout outside the bubble
16
+ if you want.
17
+ - **Haptic feedback on long-press** in `<MessageRow>` —
18
+ `Haptics.impactAsync(ImpactFeedbackStyle.Medium)` fires when the
19
+ action sheet opens. `expo-haptics` is loaded via a cached lazy
20
+ `require()` — falls back to a silent no-op if you haven't
21
+ installed it, so no peer dep is forced on consumers that don't
22
+ want haptics.
23
+
24
+ ### Changed
25
+
26
+ - **Cleaner bubble meta row**: relative timestamp formatting
27
+ (`HH:MM`, `Yesterday HH:MM`, `Mon HH:MM`, `MMM D`), tabular-num
28
+ font variant so the time width stays stable, the read tick sits
29
+ flush with the timestamp, and `edited` is its own italic pill
30
+ rather than inline text.
31
+
32
+ ### Notes
33
+
34
+ - `expo-image-picker`, `expo-document-picker`, and `expo-haptics`
35
+ remain OPTIONAL peer dependencies. (0.1.4 briefly promoted them
36
+ to required — that caused npm to reorganize the dep tree on
37
+ consumer installs, ended up with two copies of `@poolse/react` in
38
+ Metro's bundle, and broke `PoolseProvider` context resolution.
39
+ 0.1.5 reverts that. 0.1.3 and 0.1.4 were both burned slots and
40
+ should not be used.)
41
+
42
+ ## [0.1.0] — 2026-06-03
43
+
44
+ First release. Plug-and-play React Native UI for poolse, mirroring
45
+ the `@poolse/react-ui` component surface for native targets.
46
+
47
+ ### Added
48
+
49
+ - **Composed surface**: `<ConversationView>` with feature flags
50
+ (`reactions`, `mentions`, `attachments`, `actions`, `threads`,
51
+ `quotations`, `readReceipts`) — same defaults as web.
52
+ - **Message components**: `<MessageBubble>`, `<EditableMessageBubble>`,
53
+ `<MessageRow>`, `<MessageComposer>`, `<MessageActions>`,
54
+ `<MessageList>` (inverted FlatList with stick-to-bottom +
55
+ hold-position).
56
+ - **Realtime feedback**: `<TypingIndicator>` (animated dots).
57
+ - **Conversation + member panels**: `<ConversationList>` (FlatList +
58
+ unread badges), `<MemberList>`.
59
+ - **Rich content**: `<AttachmentPreview>` (image + file card),
60
+ `<UploadQueueStrip>`, `<ReactionStrip>`, `<ReactionPicker>` (modal
61
+ sheet), `<MentionInput>` (autocomplete popover),
62
+ `<AttachmentPicker>` (wraps `expo-image-picker` and
63
+ `expo-document-picker` when present).
64
+ - **Threads**: `<ThreadView>` (modal screen).
65
+ - **User display**: `<UserName>`, `useDisplayName` — both keyed by
66
+ `externalId` to match SDK 2.0.
67
+ - **Brand chrome**: `<PoolseIcon>` (SVG via `react-native-svg`),
68
+ `<PoolseLogo>` (mark/lockup/wordmark/mono), `<Avatar>` (initials
69
+ - URL fallback + stable userColor hashing).
70
+ - **Theme system**: `<PoolseTheme>` provider + `usePoolseTheme()`
71
+ hook. JS theme object with the same token groups as the web
72
+ `--poolse-*` CSS variables (colors, type, radii, shadows,
73
+ spacing). Light + dark defaults ship in.
74
+ - **AppState lifecycle**: `useAppStateLifecycle()` hook — closes
75
+ the SDK WebSocket on background, reopens + refetches the active
76
+ conversation tail on foreground. Designed to pair with
77
+ push-notification delivery on the dev's backend (no in-app
78
+ background socket maintenance).
79
+
80
+ ### Notes
81
+
82
+ - Peer dependencies: `react >=18`, `react-native >=0.73`,
83
+ `react-native-svg >=14`. `expo-image-picker` and
84
+ `expo-document-picker` are optional peer deps — `<AttachmentPicker>`
85
+ only requires them if you mount it.
86
+ - Theming via JS object (no CSS variables). Override any token:
87
+ `<PoolseTheme theme={{ colors: { brand: '#ff5733' } }}>`.
88
+ - Shares the same `<PoolseProvider config={...}>` from
89
+ `@poolse/react` — one provider for both web and RN.