Skip to content

Commit d77344e

Browse files
committed
feat(paywall-tester): add tab state sample to tabs-with-buttons paywall
1 parent 8e02aa5 commit d77344e

2 files changed

Lines changed: 34 additions & 0 deletions

File tree

examples/paywall-tester/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ dependencies {
150150
implementation(project(":feature:amazon"))
151151
implementation(project(":ui:debugview"))
152152
implementation(project(":ui:revenuecatui"))
153+
implementation(libs.kotlinx.serialization.json)
153154

154155
implementation(libs.androidx.core)
155156
implementation(libs.androidx.lifecycle.runtime.ktx)

examples/paywall-tester/src/main/java/com/revenuecat/paywallstester/paywalls/TabsWithButtons.kt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ import com.revenuecat.purchases.paywalls.components.common.LocalizationData
2020
import com.revenuecat.purchases.paywalls.components.common.LocalizationKey
2121
import com.revenuecat.purchases.paywalls.components.common.PaywallComponentsConfig
2222
import com.revenuecat.purchases.paywalls.components.common.PaywallComponentsData
23+
import com.revenuecat.purchases.paywalls.components.common.StateDeclaration
24+
import com.revenuecat.purchases.paywalls.components.common.StateUpdate
25+
import com.revenuecat.purchases.paywalls.components.common.StateUpdateValue
2326
import com.revenuecat.purchases.paywalls.components.properties.ColorInfo
2427
import com.revenuecat.purchases.paywalls.components.properties.ColorScheme
2528
import com.revenuecat.purchases.paywalls.components.properties.CornerRadiuses
@@ -37,6 +40,7 @@ import com.revenuecat.purchases.paywalls.components.properties.SizeConstraint.Fi
3740
import com.revenuecat.purchases.paywalls.components.properties.SizeConstraint.Fit
3841
import com.revenuecat.purchases.paywalls.components.properties.TwoDimensionalAlignment
3942
import com.revenuecat.purchases.paywalls.components.properties.VerticalAlignment
43+
import kotlinx.serialization.json.JsonPrimitive
4044
import java.net.URL
4145

4246
@Suppress("LongMethod")
@@ -72,6 +76,12 @@ internal fun tabsWithButtons(font: FontAlias? = null): SampleData.Components {
7276
id = "sample_tabs_with_buttons_paywall_id",
7377
templateName = "template",
7478
assetBaseURL = URL("https://assets.pawwalls.com"),
79+
stateDeclarations = mapOf(
80+
"selectedTab" to StateDeclaration(
81+
type = StateDeclaration.ValueType.STRING,
82+
defaultValue = JsonPrimitive("tab-0"),
83+
),
84+
),
7585
componentsConfig = ComponentsConfig(
7686
base = PaywallComponentsConfig(
7787
stack = StackComponent(
@@ -278,6 +288,12 @@ internal fun tabsWithButtons(font: FontAlias? = null): SampleData.Components {
278288
),
279289
),
280290
),
291+
stateUpdates = listOf(
292+
StateUpdate.Set(
293+
key = "selectedTab",
294+
value = StateUpdateValue.PayloadReference,
295+
),
296+
),
281297
size = Size(width = Fill, height = Fill),
282298
),
283299

@@ -290,6 +306,20 @@ internal fun tabsWithButtons(font: FontAlias? = null): SampleData.Components {
290306
horizontalAlignment = LEADING,
291307
size = Size(width = Fill, height = Fit),
292308
margin = Padding(top = 48.0, bottom = 8.0, leading = 0.0, trailing = 0.0),
309+
overrides = listOf(
310+
ComponentOverride(
311+
conditions = listOf(
312+
ComponentOverride.Condition.State(
313+
operator = ComponentOverride.EqualityOperator.EQUALS,
314+
name = "selectedTab",
315+
value = JsonPrimitive("tab-1"),
316+
),
317+
),
318+
properties = PartialTextComponent(
319+
text = LocalizationKey("offer-tab-1"),
320+
),
321+
),
322+
),
293323
),
294324
StackComponent(
295325
components = listOf(
@@ -347,6 +377,9 @@ internal fun tabsWithButtons(font: FontAlias? = null): SampleData.Components {
347377
LocalizationKey("offer") to LocalizationData.Text(
348378
"Try 7 days free, then $19.98/year. Cancel anytime.",
349379
),
380+
LocalizationKey("offer-tab-1") to LocalizationData.Text(
381+
"Tab 2 selected: try annual at $9.99/year.",
382+
),
350383
LocalizationKey("cta") to LocalizationData.Text("Continue"),
351384
LocalizationKey("terms") to LocalizationData.Text("Privacy & Terms"),
352385
),

0 commit comments

Comments
 (0)