Skip to content

Commit e2b5d4d

Browse files
authored
Populate the context with the initial flag state and proxy. (#85)
1 parent 2087cde commit e2b5d4d

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/asyncWithLDProvider.tsx

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,15 @@ export default async function asyncWithLDProvider(config: AsyncProviderConfig) {
3535
const reactOptions = { ...defaultReactOptions, ...userReactOptions };
3636
const { ldClient, flags: fetchedFlags, error } = await initLDClient(clientSideID, user, options, targetFlags);
3737

38+
const initialFlags = options?.bootstrap && options.bootstrap !== 'localStorage' ? options.bootstrap : fetchedFlags;
39+
3840
const LDProvider = ({ children }: { children: ReactNode }) => {
39-
const [ldData, setLDData] = useState({
40-
flags: {},
41-
unproxiedFlags: {},
42-
flagKeyMap: {},
43-
});
41+
const [ldData, setLDData] = useState(() => ({
42+
unproxiedFlags: initialFlags,
43+
...getFlagsProxy(ldClient, initialFlags, reactOptions, targetFlags),
44+
}));
4445

4546
useEffect(() => {
46-
const initialFlags =
47-
options?.bootstrap && options.bootstrap !== 'localStorage' ? options.bootstrap : fetchedFlags;
48-
setLDData({ unproxiedFlags: initialFlags, ...getFlagsProxy(ldClient, initialFlags, reactOptions, targetFlags) });
49-
5047
function onChange(changes: LDFlagChangeset) {
5148
const updates = getFlattenedFlagsFromChangeset(changes, targetFlags);
5249
if (Object.keys(updates).length > 0) {

0 commit comments

Comments
 (0)