< Summary

Class:NftPageView
Assembly:PassportHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/NFTIcons/NftPageView.cs
Covered lines:0
Uncovered lines:32
Coverable lines:32
Total lines:78
Line coverage:0% (0 of 32)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SetPageElementsContent(...)0%12300%
ConfigureNFTItemInfo(...)0%12300%
CloseAllNFTItemInfos()0%6200%
RegisterNftElementActions(...)0%2100%
ClickOnBuyWearable(...)0%6200%
ClickOnDetailInfo(...)0%6200%
FocusNftItem(...)0%12300%
RefreshControl()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/Passport/NFTIcons/NftPageView.cs

#LineLine coverage
 1using System;
 2using UnityEngine;
 3
 4public class NftPageView : BaseComponentView
 5{
 6
 7    public event Action<string, string> OnClickBuyNft;
 8    public event Action OnFocusAnyNtf;
 9
 10    [SerializeField] private NFTIconComponentView[] nftElements;
 11
 012    public bool IsNftInfoActived { get; set; } = false;
 13
 14    public void SetPageElementsContent(NFTIconComponentModel[] nftModels)
 15    {
 016        for (int i = 0; i < nftModels.Length; i++)
 17        {
 018            if (nftModels[i] != null)
 19            {
 020                nftElements[i].gameObject.SetActive(true);
 021                nftElements[i].Configure(nftModels[i]);
 022                RegisterNftElementActions(nftElements[i], i);
 23            }
 24            else
 25            {
 026                nftElements[i].gameObject.SetActive(false);
 27            }
 28        }
 029    }
 30
 31    public void ConfigureNFTItemInfo(NFTItemInfo nftItemInfoModal, WearableItem[] wearableItems, bool showCategoryInfo)
 32    {
 033        for (int i = 0; i < nftElements.Length; i++)
 34        {
 035            if (wearableItems[i] != null)
 036                nftElements[i].ConfigureNFTItemInfo(nftItemInfoModal, wearableItems[i], showCategoryInfo);
 37        }
 038    }
 39
 40    public void CloseAllNFTItemInfos()
 41    {
 042        for (int i = 0; i < nftElements.Length; i++)
 043            nftElements[i].SetNFTItemInfoActive(false);
 044    }
 45
 46    private void RegisterNftElementActions(NFTIconComponentView nftElement, int idIndex)
 47    {
 048        nftElement.onMarketplaceButtonClick.RemoveAllListeners();
 049        nftElement.onDetailInfoButtonClick.RemoveAllListeners();
 050        nftElement.onMarketplaceButtonClick.AddListener(() => ClickOnBuyWearable(nftElement.model.nftId));
 051        nftElement.onDetailInfoButtonClick.AddListener(() => ClickOnDetailInfo(idIndex, showInLeftSide: idIndex == 3));
 052        nftElement.onFocused -= FocusNftItem;
 053        nftElement.onFocused += FocusNftItem;
 054    }
 55
 56    private void ClickOnBuyWearable((string, string) ids)
 57    {
 058        OnClickBuyNft?.Invoke(ids.Item1, ids.Item2);
 059    }
 60
 61    private void ClickOnDetailInfo(int index, bool showInLeftSide)
 62    {
 063        if (IsNftInfoActived)
 064            nftElements[index].SetNFTItemInfoActive(true, showInLeftSide);
 065    }
 66
 67    private void FocusNftItem(bool isFocused)
 68    {
 069        if (!isFocused)
 070            return;
 71
 072        OnFocusAnyNtf?.Invoke();
 073    }
 74
 75    public override void RefreshControl()
 76    {
 077    }
 78}