Skip to content

Commit 70a3bb0

Browse files
committed
fix initial subview not applied on subview push
1 parent 67b2172 commit 70a3bb0

File tree

2 files changed

+41
-35
lines changed

2 files changed

+41
-35
lines changed

.changeset/three-ways-study.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@contentstech/stackflow-plugin-omniflow": patch
3+
---
4+
5+
Fix initial subview not applied on subview push

src/index.tsx

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -51,35 +51,27 @@ export function omniflow<ActivityName extends string>({
5151
return activityOptions?.[environment];
5252
};
5353

54-
function getOmniInitialParams(activityName: ActivityName) {
55-
function impl(activityName: ActivityName):
56-
| {
57-
childName: ActivityName[];
58-
childParams: ActivityBaseParams[];
59-
}
60-
| undefined {
61-
const envOptions = getEnvOptions(activityName);
62-
if (envOptions?.subview.initialActivity) {
63-
const { childName, childParams } =
64-
impl(envOptions.subview.initialActivity.name) ?? {};
65-
return {
66-
childName: [
67-
envOptions.subview.initialActivity.name,
68-
...(childName ?? []),
69-
],
70-
childParams: [
71-
envOptions.subview.initialActivity.params,
72-
...(childParams ?? []),
73-
],
74-
};
75-
}
54+
function getOmniInitialParams(activityName: ActivityName):
55+
| {
56+
childName: ActivityName[];
57+
childParams: ActivityBaseParams[];
58+
}
59+
| undefined {
60+
const envOptions = getEnvOptions(activityName);
61+
if (envOptions?.subview.initialActivity) {
62+
const { childName, childParams } =
63+
getOmniInitialParams(envOptions.subview.initialActivity.name) ?? {};
64+
return {
65+
childName: [
66+
envOptions.subview.initialActivity.name,
67+
...(childName ?? []),
68+
],
69+
childParams: [
70+
envOptions.subview.initialActivity.params,
71+
...(childParams ?? []),
72+
],
73+
};
7674
}
77-
78-
const result = impl(activityName);
79-
return {
80-
OMNI_childName: JSON.stringify(result?.childName),
81-
OMNI_childParams: JSON.stringify(result?.childParams),
82-
};
8375
}
8476

8577
function getOmniStepParams(
@@ -101,14 +93,18 @@ export function omniflow<ActivityName extends string>({
10193
const activityName = iterStack[i];
10294
const envOptions = getEnvOptions(activityName);
10395
if (envOptions?.subview.children?.includes(newActivityName)) {
96+
const newInitialParams = getOmniInitialParams(newActivityName);
97+
10498
return {
10599
OMNI_childName: JSON.stringify([
106100
...childNameStack.slice(0, i),
107101
newActivityName,
102+
...(newInitialParams?.childName ?? []),
108103
]),
109104
OMNI_childParams: JSON.stringify([
110105
...childParamsStack.slice(0, i),
111106
newActivityParams,
107+
...(newInitialParams?.childParams ?? []),
112108
]),
113109
};
114110
}
@@ -122,11 +118,14 @@ export function omniflow<ActivityName extends string>({
122118
(e) => e.name === "Pushed",
123119
);
124120
if (topActivityEvent) {
125-
const omniParams = getOmniInitialParams(
121+
const initialParams = getOmniInitialParams(
126122
topActivityEvent.activityName as ActivityName,
127123
);
128-
if (omniParams) {
129-
topActivityEvent.activityParams = omniParams;
124+
if (initialParams) {
125+
topActivityEvent.activityParams = {
126+
OMNI_childName: JSON.stringify(initialParams.childName),
127+
OMNI_childParams: JSON.stringify(initialParams.childParams),
128+
};
130129
}
131130
}
132131
return initialEvents;
@@ -154,7 +153,8 @@ export function omniflow<ActivityName extends string>({
154153
...actionParams,
155154
activityParams: {
156155
...actionParams.activityParams,
157-
...initialParams,
156+
OMNI_childName: JSON.stringify(initialParams.childName),
157+
OMNI_childParams: JSON.stringify(initialParams.childParams),
158158
},
159159
});
160160
}
@@ -174,15 +174,16 @@ export function omniflow<ActivityName extends string>({
174174
}
175175
}
176176

177-
const omniParams = getOmniInitialParams(
177+
const initialParams = getOmniInitialParams(
178178
actionParams.activityName as ActivityName,
179179
);
180-
if (omniParams) {
180+
if (initialParams) {
181181
actions.overrideActionParams({
182182
...actionParams,
183183
activityParams: {
184184
...actionParams.activityParams,
185-
...omniParams,
185+
OMNI_childName: JSON.stringify(initialParams.childName),
186+
OMNI_childParams: JSON.stringify(initialParams.childParams),
186187
},
187188
});
188189
}

0 commit comments

Comments
 (0)