Follow-up from "Add self managed trial widget"
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
The following discussions from !209831 (merged) should be addressed:
-
@dstull started a discussion: note (non-blocking):
key for TRIAL_TYPES_CONFIG in frontend.
I wonder if moving this SSOT to the backend will enable us to not have a split concept with backend or frontend being a SSOT in the widget.
To be explored in a follow-up
-
@markrian started a discussion: thought (non-blocking): Out of scope for this MR, but the image in the Discover Premium with Duo Core page doesn't look like a link to a video, but it is. Perhaps the thumbnail could be changed to make it look like a video? Or the video could be embedded?
-
@markrian started a discussion: suggestion (non-blocking): These can be camelCased, and
dismisserPropswould be a more accurate name:dismisserProps() { return { featureName: this.featureId, skipQuery: true, ...(this.groupId && { groupId: this.groupId }), }; }, -
@markrian started a discussion: nitpick (non-blocking): This should probably use
makeMockUserCalloutDismisserinstead.UserCalloutDismisser: makeMockUserCalloutDismisser(mockCalloutOptions), -
@markrian started a discussion: question (non-blocking): What's the use case for these examples?
If there's no feature name given, then surely the GraphQL request would fail?
Or is it that the trial widget is only rendered if it has a
featureId? Except, I see that theisDismissiblecomputed is based on the truthiness of thefeatureId🤔 Okay, I think I get it now:
skipQueryis always true, so there's no query. And a mutation is only sent whendismissis called, which it cannot be if there's nofeatureId. Right?