Skip to content

Commit 14daa69

Browse files
committed
refactor(demo): extract IAM buttons to SectionBuilder
1 parent bc92bf9 commit 14daa69

7 files changed

Lines changed: 12 additions & 73 deletions

File tree

examples/demo/Assets/Resources/Theme.uss

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -329,35 +329,6 @@
329329
margin-bottom: var(--card-gap);
330330
}
331331

332-
.iam-button {
333-
background-color: var(--os-primary);
334-
color: white;
335-
border-radius: 8px;
336-
padding: 14px 16px;
337-
border-width: 0;
338-
font-size: 14px;
339-
-unity-font-style: bold;
340-
-unity-text-align: middle-left;
341-
margin-bottom: var(--card-gap);
342-
flex-direction: row;
343-
align-items: center;
344-
}
345-
346-
.iam-button-icon {
347-
font-size: 18px;
348-
color: white;
349-
margin-right: 8px;
350-
width: 20px;
351-
-unity-font-definition: resource("MaterialIcons-Regular");
352-
-unity-text-align: middle-center;
353-
}
354-
355-
.iam-button-label {
356-
color: white;
357-
font-size: 14px;
358-
-unity-font-style: bold;
359-
}
360-
361332
.key-value-item {
362333
flex-direction: row;
363334
align-items: center;

examples/demo/Assets/Scripts/UI/Sections/AliasesSectionController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private void RefreshList()
6262
SectionBuilder.RenderPairList(
6363
_listContainer,
6464
_viewModel.Aliases,
65-
"No Aliases Added",
65+
"No aliases added",
6666
"aliases",
6767
loading: _viewModel.IsLoading
6868
);

examples/demo/Assets/Scripts/UI/Sections/EmailsSectionController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private void RefreshList()
6161
_listContainer.Add(
6262
_viewModel.IsLoading
6363
? SectionBuilder.CreateLoadingState("emails")
64-
: SectionBuilder.CreateEmptyState("No Emails Added", "emails")
64+
: SectionBuilder.CreateEmptyState("No emails added", "emails")
6565
);
6666
return;
6767
}
Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using System;
22
using OneSignalDemo.Models;
3-
using OneSignalDemo.Services;
4-
using OneSignalDemo.UI;
53
using OneSignalDemo.ViewModels;
64
using UnityEngine.UIElements;
75

@@ -31,63 +29,35 @@ private VisualElement BuildSection()
3129
);
3230

3331
section.Add(
34-
CreateIamButton(
32+
SectionBuilder.CreatePrimaryButton(
3533
"TOP BANNER",
36-
MaterialIcons.VerticalAlignTop,
3734
"send_iam_top_banner_button",
38-
InAppMessageType.TopBanner
35+
() => _viewModel.SendInAppMessage(InAppMessageType.TopBanner)
3936
)
4037
);
4138
section.Add(
42-
CreateIamButton(
39+
SectionBuilder.CreatePrimaryButton(
4340
"BOTTOM BANNER",
44-
MaterialIcons.VerticalAlignBottom,
4541
"send_iam_bottom_banner_button",
46-
InAppMessageType.BottomBanner
42+
() => _viewModel.SendInAppMessage(InAppMessageType.BottomBanner)
4743
)
4844
);
4945
section.Add(
50-
CreateIamButton(
46+
SectionBuilder.CreatePrimaryButton(
5147
"CENTER MODAL",
52-
MaterialIcons.CropSquare,
5348
"send_iam_center_modal_button",
54-
InAppMessageType.CenterModal
49+
() => _viewModel.SendInAppMessage(InAppMessageType.CenterModal)
5550
)
5651
);
5752
section.Add(
58-
CreateIamButton(
53+
SectionBuilder.CreatePrimaryButton(
5954
"FULL SCREEN",
60-
MaterialIcons.Fullscreen,
6155
"send_iam_full_screen_button",
62-
InAppMessageType.FullScreen
56+
() => _viewModel.SendInAppMessage(InAppMessageType.FullScreen)
6357
)
6458
);
6559

6660
return section;
6761
}
68-
69-
private VisualElement CreateIamButton(
70-
string text,
71-
string icon,
72-
string name,
73-
InAppMessageType type
74-
)
75-
{
76-
void SendIam() => _viewModel.SendInAppMessage(type);
77-
var btn = new Button(SendIam);
78-
btn.name = name;
79-
btn.AddToClassList("iam-button");
80-
AccessibilityBridge.RegisterE2ETapTarget(btn, () => btn.enabledInHierarchy, SendIam);
81-
82-
var iconLabel = new Label(icon);
83-
iconLabel.AddToClassList("iam-button-icon");
84-
btn.Add(iconLabel);
85-
86-
var textLabel = new Label(text);
87-
textLabel.AddToClassList("iam-button-label");
88-
btn.Add(textLabel);
89-
90-
return btn;
91-
}
9262
}
9363
}

examples/demo/Assets/Scripts/UI/Sections/SmsSectionController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private void RefreshList()
6161
_listContainer.Add(
6262
_viewModel.IsLoading
6363
? SectionBuilder.CreateLoadingState("sms")
64-
: SectionBuilder.CreateEmptyState("No SMS Added", "sms")
64+
: SectionBuilder.CreateEmptyState("No SMS added", "sms")
6565
);
6666
return;
6767
}

examples/demo/Assets/Scripts/UI/Sections/TagsSectionController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ private void RefreshList()
7171
SectionBuilder.RenderPairList(
7272
_listContainer,
7373
_viewModel.Tags,
74-
"No Tags Added",
74+
"No tags added",
7575
"tags",
7676
loading: _viewModel.IsLoading,
7777
onRemove: key => _viewModel.RemoveTag(key)

examples/demo/Assets/Scripts/ViewModels/AppViewModel.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ public void LoginUser(string externalUserId)
150150
_externalUserId = externalUserId;
151151

152152
Debug.Log($"[{Tag}] Logged in as: {externalUserId}");
153-
ShowToast($"Logged in as: {externalUserId}");
154153
// The user 'change' listener runs FetchUserDataFromApi once the new
155154
// onesignalId is assigned; that call clears isLoading in its finally.
156155
}
@@ -172,7 +171,6 @@ public void LogoutUser()
172171
ClearUserData();
173172

174173
Debug.Log($"[{Tag}] Logged out");
175-
ShowToast("Logged out");
176174
NotifyStateChanged();
177175
}
178176

0 commit comments

Comments
 (0)