Skip to content

Commit d8666bf

Browse files
committed
enhance: Minor optimizations to store creation
1 parent d45faac commit d8666bf

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

.changeset/long-numbers-vanish.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@data-client/core': patch
3+
---
4+
5+
Minor store creation optimizations

packages/core/src/manager/applyManager.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ export default function applyManager(
66
managers: Manager[],
77
controller: Controller,
88
): Middleware[] {
9-
return managers.map(manager => {
9+
return managers.map((manager, i) => {
1010
const middleware = manager.getMiddleware();
1111
return ({ dispatch, getState }) => {
12-
(controller as any).dispatch = dispatch;
13-
(controller as any).getState = getState;
12+
if (i === 0) {
13+
(controller as any).dispatch = dispatch;
14+
(controller as any).getState = getState;
15+
}
1416
// controller is a superset of the middleware API
1517
return middleware(controller as Controller<any>);
1618
};

packages/react/src/components/DataStore.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,8 @@ function DataStore({
3131
}: StoreProps) {
3232
const masterReducer = useMemo(() => createReducer(controller), [controller]);
3333

34-
const [state, dispatch] = useEnhancedReducer(
35-
masterReducer,
36-
initialState,
37-
middlewares,
38-
);
34+
// we don't need `dispatch` here, since applyManager() assigns the dispatch to controller
35+
const [state] = useEnhancedReducer(masterReducer, initialState, middlewares);
3936

4037
const optimisticState = useMemo(
4138
() => state.optimistic.reduce(masterReducer, state),

0 commit comments

Comments
 (0)