Skip to content

Commit 2c41c4a

Browse files
[FSSDK-10777] release (#319)
1 parent c23e1ef commit 2c41c4a

File tree

5 files changed

+16
-5
lines changed

5 files changed

+16
-5
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Changelog
22

3+
## [3.4.0] - Mar 9, 2026
4+
5+
### New Features
6+
- Add a server-safe bundle that is automatically resolved when imported in React Server Components, excluding client-only React APIs ([#318](https://github.com/optimizely/react-sdk/pull/318))
7+
- Add `qualifiedSegments` prop to `OptimizelyProvider` for passing pre-fetched ODP segments, enabling synchronous ODP-based decisions during SSR ([#318](https://github.com/optimizely/react-sdk/pull/318))
8+
- Add `getQualifiedSegments` utility for fetching ODP audience segments server-side ([#318](https://github.com/optimizely/react-sdk/pull/318))
9+
10+
### Enhancements
11+
- Improve `useExperiment`, `useFeature`, and `useDecision` hooks to compute decisions when config and user context (including segments) are available, without waiting for `onReady` ([#318](https://github.com/optimizely/react-sdk/pull/318))
12+
- Add comprehensive server-side rendering integration guide covering SSR, SSG, and App Router patterns ([#318](https://github.com/optimizely/react-sdk/pull/318))
13+
314
## [3.3.1] - Dec 8, 2025
415

516
### Changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,9 +471,9 @@ const segments = await getQualifiedSegments(userId, datafile);
471471

472472
> **Caching recommendation:** The ODP segment fetch adds latency to server rendering. Consider caching the result per user to avoid re-fetching on every request.
473473
474-
### React Server Components
474+
### React Server Components (v3.4.0+)
475475

476-
The SDK can also be used directly in React Server Components without `OptimizelyProvider`. Create an instance, set the user, wait for readiness, and make decisions — all within an `async` server component:
476+
Since version 3.4.0, the SDK can be used directly in React Server Components without `OptimizelyProvider`. Create an instance, set the user, wait for readiness, and make decisions — all within an `async` server component:
477477

478478
```tsx
479479
import { createInstance } from '@optimizely/react-sdk';

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@optimizely/react-sdk",
3-
"version": "3.3.1",
3+
"version": "3.4.0",
44
"description": "React SDK for Optimizely Feature Experimentation, Optimizely Full Stack (legacy), and Optimizely Rollouts",
55
"homepage": "https://github.com/optimizely/react-sdk",
66
"repository": "https://github.com/optimizely/react-sdk",

src/client.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ describe('ReactSDKClient', () => {
178178
expect(createInstanceSpy).toHaveBeenCalledWith({
179179
...config,
180180
clientEngine: 'react-sdk',
181-
clientVersion: '3.3.1',
181+
clientVersion: '3.4.0',
182182
});
183183
});
184184

src/client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export interface OnReadyResult extends ResolveResult {
4747
}
4848

4949
const REACT_SDK_CLIENT_ENGINE = 'react-sdk';
50-
const REACT_SDK_CLIENT_VERSION = '3.3.1';
50+
const REACT_SDK_CLIENT_VERSION = '3.4.0';
5151

5252
export const DefaultUser: UserInfo = {
5353
id: null,

0 commit comments

Comments
 (0)