@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 +89 -89
- package/README.md +238 -238
- package/dist/index.cjs +285 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +124 -2
- package/dist/index.d.ts +124 -2
- package/dist/index.js +283 -2
- package/dist/index.js.map +1 -1
- package/package.json +18 -11
- package/LICENSE +0 -21
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.
|