< Summary

Class:DCL.Social.Chat.Channels.JoinChannelComponentView
Assembly:JoinChannelHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/JoinChannelHUD/JoinChannelComponentView.cs
Covered lines:37
Uncovered lines:3
Coverable lines:40
Total lines:99
Line coverage:92.5% (37 of 40)
Covered branches:0
Total branches:0
Covered methods:8
Total methods:8
Method coverage:100% (8 of 8)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%110100%
Dispose()0%110100%
Configure(...)0%110100%
RefreshControl()0%3.213071.43%
SetChannel(...)0%2.032080%
ShowLoading()0%110100%
HideLoading()0%110100%
Create()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/JoinChannelHUD/JoinChannelComponentView.cs

#LineLine coverage
 1using System;
 2using TMPro;
 3using UnityEngine;
 4using UnityEngine.UI;
 5
 6namespace DCL.Social.Chat.Channels
 7{
 8    public class JoinChannelComponentView : BaseComponentView, IJoinChannelComponentView, IComponentModelConfig<JoinChan
 9    {
 10        internal const string MODAL_TITLE = "Do you want to join the channel {0}?";
 11
 12        [Header("Prefab References")]
 13        [SerializeField] internal Button backgroundButton;
 14        [SerializeField] internal Button closeButton;
 15        [SerializeField] internal TMP_Text titleText;
 16        [SerializeField] internal ButtonComponentView cancelButton;
 17        [SerializeField] internal ButtonComponentView confirmButton;
 18        [SerializeField] internal GameObject loadingSpinnerContainer;
 19
 20        [Header("Configuration")]
 21        [SerializeField] internal JoinChannelComponentModel model;
 22
 23        public event Action OnCancelJoin;
 24        public event Action<string> OnConfirmJoin;
 25
 26        public override void Awake()
 27        {
 428            base.Awake();
 29
 430            backgroundButton.onClick.AddListener(() => OnCancelJoin?.Invoke());
 431            closeButton.onClick.AddListener(() => OnCancelJoin?.Invoke());
 432            cancelButton.onClick.AddListener(() => OnCancelJoin?.Invoke());
 433            confirmButton.onClick.AddListener(() => OnConfirmJoin?.Invoke(model.channelId));
 434        }
 35
 36        public override void Dispose()
 37        {
 838            backgroundButton.onClick.RemoveAllListeners();
 839            closeButton.onClick.RemoveAllListeners();
 840            cancelButton.onClick.RemoveAllListeners();
 841            confirmButton.onClick.RemoveAllListeners();
 42
 843            base.Dispose();
 844        }
 45
 46        public void Configure(JoinChannelComponentModel newModel)
 47        {
 148            model = newModel;
 149            RefreshControl();
 150        }
 51
 52        public override void RefreshControl()
 53        {
 154            if (model == null)
 055                return;
 56
 157            SetChannel(model.channelId);
 58
 159            if (model.isLoading)
 060                ShowLoading();
 61            else
 162                HideLoading();
 163        }
 64
 65        public void SetChannel(string channelName)
 66        {
 267            model.channelId = channelName;
 68
 269            if (titleText == null)
 070                return;
 71
 272            titleText.text = string.Format(MODAL_TITLE, channelName);
 273        }
 74
 75        public void ShowLoading()
 76        {
 177            model.isLoading = true;
 178            cancelButton.SetInteractable(false);
 179            confirmButton.SetInteractable(false);
 180            loadingSpinnerContainer.SetActive(true);
 181        }
 82
 83        public void HideLoading()
 84        {
 285            model.isLoading = false;
 286            cancelButton.SetInteractable(true);
 287            confirmButton.SetInteractable(true);
 288            loadingSpinnerContainer.SetActive(false);
 289        }
 90
 91        internal static JoinChannelComponentView Create()
 92        {
 493            JoinChannelComponentView joinChannelComponenView = Instantiate(Resources.Load<GameObject>("JoinChannelHUD"))
 494            joinChannelComponenView.name = "_JoinChannelHUD";
 95
 496            return joinChannelComponenView;
 97        }
 98    }
 99}