Repository: CryptoBlades/cryptoblades
File: frontend/src/views/Bridge.vue (Vue)

Code before:
      validator(type) {
        return isNftType(type);
      },
    },
    nftIdProp: {
      type: String,
    },
  },

  data() {
    return {
      weapon: null as Nft | null,
      character: null as Nft | null,
      shield: null as Nft | null,
      ownerAddress: '',
      nftType: 'weapon',
      selectedNftId: '' as string,
      storedNftsIds: [] as string[],
      currentChain: '',
      targetChain: '',
      targetChainId: 0 as number | null,
      supportedChains: [] as string[],
      supportedChainIds: [] as number[],
      transferStatus: '',
      transferStates,
      currentTransferNFTId: 0 as number | null,
      currentTransferNFTType: '',
      currentTransferChain: '',
      chainsToSendTo: [] as string[],
      incomingNftIds: [] as number[],
      incomingWeapons: [] as transferedNft[],
      incomingChars: [] as transferedNft[],
      incomingShields: [] as transferedNft[],
      weaponIdToWithdraw: '',
      characterIdToWithdraw: '',
      shieldIdToWithdraw: '',
      transferingToStorage: false,
      transferingFromStorage: false,
      cancellingRequest: false,
      withdrawingFromBridge: false,
      enabledChains: [] as string[],
      bridgeFee: '',
      loadedStorage: false,
      refreshIntervall: 0 as number,
    };
  },

  computed: {
    ...(mapState(['defaultAccount','ownedWeaponIds','ownedShieldIds','skillBalance', 'inGameOnlyFunds', 'skillRewards']) as Accessors<StoreMappedState>),
    ...(mapGetters([
      'contracts',

Review comment (suggestion):
We should usually use `undefined` as a "no value", this way, in interfaces, when you declare the field that can be either a number or a "no value", you can use
`currentTransferNFTId?: number`, this way it's optional.

But it's nothing to worry about, just a tip 

Code after:
      validator(type) {
        return isNftType(type);
      },
    },
    nftIdProp: {
      type: String,
    },
  },

  data() {
    return {
      weapon: null as Nft | null,
      character: null as Nft | null,
      shield: null as Nft | null,
      ownerAddress: '',
      nftType: 'weapon',
      selectedNftId: '' as string,
      storedNftsIds: [] as string[],
      currentChain: '',
      targetChain: '',
      targetChainId: 0 as number | null,
      supportedChains: [] as string[],
      supportedChainIds: [] as number[],
      transferStatus: '',
      transferStates,
      currentTransferNFTId: 0 as number | null,
      currentTransferNFTType: '',
      currentTransferChain: '',
      chainsToSendTo: [] as string[],
      incomingNftIds: [] as number[],
      incomingWeapons: [] as TransferedNft[],
      incomingChars: [] as TransferedNft[],
      incomingShields: [] as TransferedNft[],
      weaponIdToWithdraw: '',
      characterIdToWithdraw: '',
      shieldIdToWithdraw: '',
      transferingToStorage: false,
      transferingFromStorage: false,
      cancellingRequest: false,
      withdrawingFromBridge: false,
      enabledChains: [] as string[],
      bridgeFee: '',
      loadedStorage: false,
      refreshIntervall: 0 as number,
    };
  },

  computed: {
    ...(mapState(['defaultAccount','ownedWeaponIds','ownedShieldIds','skillBalance', 'inGameOnlyFunds', 'skillRewards']) as Accessors<StoreMappedState>),
    ...(mapGetters([
      'contracts',