< Summary

Class:DCL.Chat.HUD.ChannelMemberEntry
Assembly:WorldChatWindowHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs
Covered lines:35
Uncovered lines:12
Coverable lines:47
Total lines:111
Line coverage:74.4% (35 of 47)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Awake()0%110100%
Configure(...)0%110100%
RefreshControl()0%110100%
SetUserContextMenu(...)0%110100%
SetUserId(...)0%110100%
SetUserName(...)0%2.032080%
SetUserThumbnail(...)0%2.032080%
SetUserOnlineStatus(...)0%4.034087.5%
SetIsOptionsButtonHidden(...)0%2.032080%
Dock(...)0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/WorldChatWindowHUD/ChannelMemberEntry.cs

#LineLine coverage
 1using TMPro;
 2using UnityEngine;
 3using UnityEngine.UI;
 4
 5namespace DCL.Chat.HUD
 6{
 7    public class ChannelMemberEntry : BaseComponentView, IComponentModelConfig<ChannelMemberEntryModel>
 8    {
 9        [SerializeField] internal TMP_Text nameLabel;
 10        [SerializeField] internal ImageComponentView userThumbnail;
 11        [SerializeField] internal GameObject onlineMark;
 12        [SerializeField] internal GameObject offlineMark;
 13        [SerializeField] internal GameObject optionsButtonContainer;
 14        [SerializeField] internal Button optionsButton;
 15        [SerializeField] internal RectTransform userContextMenuPositionReference;
 16
 17        [Header("Configuration")]
 18        [SerializeField] internal ChannelMemberEntryModel model;
 19
 20        private UserContextMenu userContextMenu;
 21
 022        public ChannelMemberEntryModel Model => model;
 23
 24        public override void Awake()
 25        {
 626            base.Awake();
 27
 628            optionsButton.onClick.AddListener(() =>
 29            {
 030                userContextMenu.Show(model.userId);
 031                Dock(userContextMenu);
 032            });
 633        }
 34
 35        public void Configure(ChannelMemberEntryModel newModel)
 36        {
 437            model = newModel;
 438            RefreshControl();
 439        }
 40
 41        public override void RefreshControl()
 42        {
 443            SetUserId(model.userId);
 444            SetUserName(model.userName);
 445            SetUserThumbnail(model.thumnailUrl);
 446            SetUserOnlineStatus(model.isOnline);
 447            SetIsOptionsButtonHidden(model.isOptionsButtonHidden);
 448        }
 49
 50        public void SetUserContextMenu(UserContextMenu userContextMenu)
 51        {
 252            this.userContextMenu = userContextMenu;
 253        }
 54
 55        private void SetUserId(string userId)
 56        {
 457            model.userId = userId;
 458        }
 59
 60        private void SetUserName(string userName)
 61        {
 462            model.userName = userName;
 63
 464            if (nameLabel == null)
 065                return;
 66
 467            nameLabel.text = userName;
 468        }
 69
 70        private void SetUserThumbnail(string thumbnailUrl)
 71        {
 472            model.thumnailUrl = thumbnailUrl;
 73
 474            if (userThumbnail == null)
 075                return;
 76
 477            userThumbnail.SetImage(thumbnailUrl);
 478        }
 79
 80        private void SetUserOnlineStatus(bool isOnline)
 81        {
 482            model.isOnline = isOnline;
 83
 484            if (onlineMark == null)
 085                return;
 86
 487            if (onlineMark != null)
 488                onlineMark.SetActive(isOnline);
 89
 490            if (offlineMark != null)
 491                offlineMark.SetActive(!isOnline);
 492        }
 93
 94        private void SetIsOptionsButtonHidden(bool isHidden)
 95        {
 496            model.isOptionsButtonHidden = isHidden;
 97
 498            if (optionsButtonContainer == null)
 099                return;
 100
 4101            optionsButtonContainer.SetActive(!isHidden);
 4102        }
 103
 104        private void Dock(UserContextMenu userContextMenu)
 105        {
 0106            var menuTransform = (RectTransform)userContextMenu.transform;
 0107            menuTransform.pivot = userContextMenuPositionReference.pivot;
 0108            menuTransform.position = userContextMenuPositionReference.position;
 0109        }
 110    }
 111}