triggerUi function
Future<void>
triggerUi({
- required String? destination,
- required Task task,
- required BuildContext context,
- bool isTriggered = false,
Implementation
Future<void> triggerUi({
required String? destination,
required challenge_entity.Task task,
required BuildContext context,
bool isTriggered = false,
}) async {
challenge_entity.Root? fullPageRoot;
try {
fullPageRoot = task.variants[0].roots
.where(
(element) => element.id == destination,
)
.single;
} catch (e) {
log(
"NudgeChallengesUi: $e, pageRoot: $fullPageRoot",
name: "NudgeChallengesUi",
);
}
if (fullPageRoot == null) {
return;
}
int position = fullPageRoot.type;
Nudge.getInstance().submit(
taskId: task.id ?? "",
response: [
{
"root_id": fullPageRoot.id,
"widget_id": fullPageRoot.widgets[0].id,
// "component_id": "UNINITIALIZED",
"answers": [],
"action": "OPENED",
},
],
onSuccessCallback: (response) {
if (kDebugMode) {
print("response: $response");
}
},
onErrorCallback: (error, stackTrace) {
if (kDebugMode) {
print("error: $error");
}
},
);
switch (position) {
case 1:
showNudgeDialog(
context: context,
builder: (context) {
return Dialog(
backgroundColor: Colors.transparent,
surfaceTintColor: Colors.transparent,
insetPadding: const EdgeInsets.all(0),
child: SingleChildScrollView(
child: IntrinsicHeight(
child: IntrinsicWidth(
child: UiGenerator.buildWidget(
type: 'modal',
task.id!,
fullPageRoot!.id,
fontFamily: 'Inter',
fullPageRoot.widgets[0],
assets: Nudge.assets,
assetUrl: assetUrl,
),
),
),
),
);
}).then((value) {
NudgeGCallbackManager.dispatchEvent(
NudgeGlobalExperienceCallback(
"NUDGE_EXPERIENCE_DISMISS",
{
"campaign_id": task.id,
},
),
);
// if (isTriggered) {
// CentralDataRepository.destroyInstance(task.id!);
// }
// NudgeRouteObserver.pop();
Nudge.getInstance().submit(
taskId: task.id ?? "",
response: [
{
"root_id": fullPageRoot?.id,
"widget_id": fullPageRoot?.widgets[0].id,
// "component_id": "UNINITIALIZED",
"answers": [],
"action": "DISMISSED",
},
],
onSuccessCallback: (response) {
if (kDebugMode) {
print("response: $response");
}
},
onErrorCallback: (error, stackTrace) {
if (kDebugMode) {
print("error: $error");
}
},
);
});
break;
case 2:
showNudgeBottomSheet(
isScrollControlled: true,
context: context,
builder: (context) {
return IntrinsicWidth(
child: IntrinsicHeight(
child: UiGenerator.buildWidget(
type: 'modal',
NudgeChallengesUi.taskId,
fullPageRoot!.id,
fontFamily: 'Inter',
fullPageRoot.widgets[0],
assets: Nudge.assets,
assetUrl: assetUrl,
),
),
);
}).then((value) {
NudgeGCallbackManager.dispatchEvent(
NudgeGlobalExperienceCallback(
"NUDGE_EXPERIENCE_DISMISS",
{
"campaign_id": task.id,
},
),
);
// if (isTriggered) {
// CentralDataRepository.destroyInstance(task.id!);
// }
Nudge.getInstance().submit(
taskId: task.id ?? "",
response: [
{
"root_id": fullPageRoot?.id,
"widget_id": fullPageRoot?.widgets[0].id,
// "component_id": "UNINITIALIZED",
"answers": [],
"action": "DISMISSED",
},
],
onSuccessCallback: (response) {
if (kDebugMode) {
print("response: $response");
}
},
onErrorCallback: (error, stackTrace) {
if (kDebugMode) {
print("error: $error");
}
},
);
});
break;
case 4:
showNudgePage(
context: context,
builder: (context) => ChallengesPage(
root: fullPageRoot!,
),
).then((value) {
NudgeGCallbackManager.dispatchEvent(
NudgeGlobalExperienceCallback(
"NUDGE_EXPERIENCE_DISMISS",
{
"campaign_id": task.id,
},
),
);
// if (isTriggered) {
// CentralDataRepository.destroyInstance(task.id!);
// }
Nudge.getInstance().submit(
taskId: task.id ?? "",
response: [
{
"root_id": fullPageRoot?.id,
"widget_id": fullPageRoot?.widgets[0].id,
// "component_id": "UNINITIALIZED",
"answers": [],
"action": "DISMISSED",
},
],
onSuccessCallback: (response) {
if (kDebugMode) {
print("response: $response");
}
},
onErrorCallback: (error, stackTrace) {
if (kDebugMode) {
print("error: $error");
}
},
);
});
break;
default:
break;
}
}