2018-05-15 06:18:50 +02:00
( function webpackUniversalModuleDefinition ( root , factory ) {
if ( typeof exports === 'object' && typeof module === 'object' )
module . exports = factory ( ) ;
else if ( typeof define === 'function' && define . amd )
define ( [ ] , factory ) ;
else {
var a = factory ( ) ;
for ( var i in a ) ( typeof exports === 'object' ? exports : root ) [ i ] = a [ i ] ;
}
2019-02-18 15:11:32 +01:00
} ) ( ( typeof self !== 'undefined' ? self : this ) , function ( ) {
2018-05-15 06:18:50 +02:00
return /******/ ( function ( modules ) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ _ _webpack _require _ _ . m = modules ;
/******/
/******/ // expose the module cache
/******/ _ _webpack _require _ _ . c = installedModules ;
/******/
/******/ // define getter function for harmony exports
/******/ _ _webpack _require _ _ . d = function ( exports , name , getter ) {
/******/ if ( ! _ _webpack _require _ _ . o ( exports , name ) ) {
2018-11-07 16:55:44 +01:00
/******/ Object . defineProperty ( exports , name , {
/******/ configurable : false ,
/******/ enumerable : true ,
/******/ get : getter
/******/ } ) ;
2018-05-15 06:18:50 +02:00
/******/ }
/******/ } ;
/******/
/******/ // define __esModule on exports
/******/ _ _webpack _require _ _ . r = function ( exports ) {
/******/ Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
/******/ } ;
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ _ _webpack _require _ _ . n = function ( module ) {
/******/ var getter = module && module . _ _esModule ?
/******/ function getDefault ( ) { return module [ 'default' ] ; } :
/******/ function getModuleExports ( ) { return module ; } ;
/******/ _ _webpack _require _ _ . d ( getter , 'a' , getter ) ;
/******/ return getter ;
/******/ } ;
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ _ _webpack _require _ _ . o = function ( object , property ) { return Object . prototype . hasOwnProperty . call ( object , property ) ; } ;
/******/
/******/ // __webpack_public_path__
/******/ _ _webpack _require _ _ . p = "" ;
/******/
/******/
/******/ // Load entry module and return exports
/******/ return _ _webpack _require _ _ ( _ _webpack _require _ _ . s = 0 ) ;
/******/ } )
/************************************************************************/
/******/ ( [
/* 0 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2019-03-11 03:03:28 +01:00
exports . selectTransactionListFilter = exports . selectWalletUnlockResult = exports . selectWalletUnlockSucceeded = exports . selectWalletUnlockPending = exports . selectWalletDecryptResult = exports . selectWalletDecryptSucceeded = exports . selectWalletDecryptPending = exports . selectWalletEncryptResult = exports . selectWalletEncryptSucceeded = exports . selectWalletEncryptPending = exports . selectWalletState = exports . selectWalletIsEncrypted = exports . selectBlocks = exports . selectDraftTransactionError = exports . selectDraftTransactionAddress = exports . selectDraftTransactionAmount = exports . selectDraftTransaction = exports . selectGettingNewAddress = exports . selectReceiveAddress = exports . selectIsSendingSupport = exports . selectIsFetchingTransactions = exports . selectHasTransactions = exports . selectRecentTransactions = exports . selectTransactionItems = exports . selectTransactionsById = exports . selectBalance = exports . makeSelectBlockDate = exports . makeSelectQueryWithOptions = exports . selectSearchSuggestions = exports . selectSearchBarFocused = exports . selectWunderBarAddress = exports . selectSearchUrisByQuery = exports . selectIsSearching = exports . selectSearchOptions = exports . selectSearchValue = exports . selectSearchQuery = exports . makeSelectSearchUris = exports . selectSearchState = exports . selectActiveHistoryEntry = exports . selectHistoryStack = exports . selectHistoryIndex = exports . selectIsForwardDisabled = exports . selectIsBackDisabled = exports . selectPathAfterAuth = exports . selectPageTitle = exports . selectHeaderLinks = exports . selectCurrentParams = exports . selectCurrentPage = exports . selectCurrentPath = exports . makeSelectCurrentParam = exports . computePageFromPath = exports . selectFileListPublishedSort = exports . selectFileListDownloadedSort = exports . selectSearchDownloadUris = exports . selectTotalDownloadProgress = exports . selectDownloadingFileInfos = exports . selectFileInfosDownloaded = exports . selectUrisLoading = exports . selectDownloadingByOutpoint = exports . selectIsFetchingFileListDownloadedOrPublished = exports . selectIsFetchingFileList = exports . selectFileInfosByOutpoint = exports . makeSelectLoadingForUri = exports . makeSelectDownloadingForUri = exports . makeSelectFileInfoForUri = exports . selectCurrentChannelPage = exports . selectChannelClaimCounts = exports . selectPlayingUri = exports . selectFetchingTrendingUris = exports . selectTrendingUris = exports . selectFetchingFeaturedUris = exports . selectFeaturedUris = exports . selectResolvingUris = exports . selectMyChannelClaims = exports . selectFetchingMyChannels = exports . selectMyClaimsOutpoints = undefined ;
exports . selectAllMyClaimsByOutpoint = exports . selectMyClaimsWithoutChannels = exports . selectMyClaims = exports . selectPendingClaims = exports . selectIsFetchingClaimListMine = exports . selectAllFetchingChannelClaims = exports . selectMyActiveClaims = exports . selectAbandoningIds = exports . selectMyClaimsRaw = exports . selectAllClaimsByChannel = exports . selectClaimsByUri = exports . selectClaimsById = exports . selectPendingById = exports . makeSelectClaimsInChannelForCurrentPageState = exports . makeSelectPendingByUri = exports . makeSelectClaimIsPending = exports . makeSelectChannelForClaimUri = exports . makeSelectFirstRecommendedFileForUri = exports . makeSelectRecommendedContentForUri = exports . makeSelectNsfwCountForChannel = exports . makeSelectNsfwCountFromUris = exports . makeSelectTotalPagesForChannel = exports . makeSelectTotalItemsForChannel = exports . makeSelectIsUriResolving = exports . makeSelectContentTypeForUri = exports . makeSelectTitleForUri = exports . makeSelectMetadataForUri = exports . makeSelectClaimsInChannelForPage = exports . makeSelectClaimsInChannelForCurrentPage = exports . makeSelectFetchingChannelClaims = exports . makeSelectClaimIsMine = exports . makeSelectClaimForUri = exports . selectError = exports . selectToast = exports . walletReducer = exports . searchReducer = exports . notificationsReducer = exports . fileInfoReducer = exports . claimsReducer = exports . creditsToString = exports . formatFullPrice = exports . formatCredits = exports . toQueryString = exports . parseQueryParams = exports . batchActions = exports . doUpdateBlockHeight = exports . doSetTransactionListFilter = exports . doWalletStatus = exports . doWalletUnlock = exports . doWalletDecrypt = exports . doWalletEncrypt = exports . doSendTip = exports . doSetDraftTransactionAddress = exports . doSetDraftTransactionAmount = exports . doSendDraftTransaction = exports . doCheckAddressIsMine = exports . doGetNewAddress = exports . doFetchBlock = exports . doFetchTransactions = exports . doBalanceSubscribe = exports . doUpdateBalance = exports . doUpdateSearchOptions = exports . setSearchApi = exports . doBlurSearchInput = exports . doFocusSearchInput = exports . doUpdateSearchQuery = exports . doSearch = exports . doSetFileListSort = exports . doFetchFileInfosAndPublishedClaims = exports . doFileList = exports . doFetchFileInfo = exports . doResolveUri = exports . doResolveUris = exports . doAbandonClaim = exports . doFetchClaimListMine = exports . doFetchClaimCountByChannel = exports . doFetchClaimsByChannel = exports . doDismissError = exports . doError = exports . doDismissToast = exports . doToast = exports . convertToShareLink = exports . isNameValid = exports . isURIClaimable = exports . isURIValid = exports . normalizeURI = exports . buildURI = exports . parseURI = exports . regexAddress = exports . regexInvalidURI = exports . Lbry = exports . PAGES = exports . SORT _OPTIONS = exports . TRANSACTIONS = exports . SETTINGS = exports . SEARCH _OPTIONS = exports . SEARCH _TYPES = exports . THUMBNAIL _STATUSES = exports . ACTIONS = exports . Toast = undefined ;
2018-05-15 06:18:50 +02:00
var _Notification = _ _webpack _require _ _ ( 1 ) ;
2018-11-12 19:01:14 +01:00
Object . defineProperty ( exports , 'Toast' , {
2018-05-15 06:18:50 +02:00
enumerable : true ,
get : function get ( ) {
2018-11-13 01:20:52 +01:00
return _Notification . Toast ;
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-11-12 19:01:14 +01:00
var _lbryURI = _ _webpack _require _ _ ( 3 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'regexInvalidURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . regexInvalidURI ;
}
} ) ;
Object . defineProperty ( exports , 'regexAddress' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . regexAddress ;
}
} ) ;
Object . defineProperty ( exports , 'parseURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . parseURI ;
}
} ) ;
Object . defineProperty ( exports , 'buildURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . buildURI ;
}
} ) ;
Object . defineProperty ( exports , 'normalizeURI' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . normalizeURI ;
}
} ) ;
Object . defineProperty ( exports , 'isURIValid' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . isURIValid ;
}
} ) ;
Object . defineProperty ( exports , 'isURIClaimable' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . isURIClaimable ;
}
} ) ;
Object . defineProperty ( exports , 'isNameValid' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . isNameValid ;
}
} ) ;
2018-05-30 16:19:54 +02:00
Object . defineProperty ( exports , 'convertToShareLink' , {
enumerable : true ,
get : function get ( ) {
return _lbryURI . convertToShareLink ;
}
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _notifications = _ _webpack _require _ _ ( 4 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
Object . defineProperty ( exports , 'doToast' , {
2018-05-15 06:18:50 +02:00
enumerable : true ,
get : function get ( ) {
2018-11-12 19:01:14 +01:00
return _notifications . doToast ;
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-11-12 19:01:14 +01:00
Object . defineProperty ( exports , 'doDismissToast' , {
2018-05-15 06:18:50 +02:00
enumerable : true ,
get : function get ( ) {
2018-11-12 19:01:14 +01:00
return _notifications . doDismissToast ;
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-11-12 19:01:14 +01:00
Object . defineProperty ( exports , 'doError' , {
2018-05-15 06:18:50 +02:00
enumerable : true ,
get : function get ( ) {
2018-11-12 19:01:14 +01:00
return _notifications . doError ;
}
} ) ;
Object . defineProperty ( exports , 'doDismissError' , {
enumerable : true ,
get : function get ( ) {
return _notifications . doDismissError ;
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-11-12 19:01:14 +01:00
var _claims = _ _webpack _require _ _ ( 8 ) ;
2018-05-15 06:18:50 +02:00
2018-05-25 13:34:12 +02:00
Object . defineProperty ( exports , 'doFetchClaimsByChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims . doFetchClaimsByChannel ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchClaimCountByChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims . doFetchClaimCountByChannel ;
}
} ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'doFetchClaimListMine' , {
enumerable : true ,
get : function get ( ) {
return _claims . doFetchClaimListMine ;
}
} ) ;
Object . defineProperty ( exports , 'doAbandonClaim' , {
enumerable : true ,
get : function get ( ) {
return _claims . doAbandonClaim ;
}
} ) ;
Object . defineProperty ( exports , 'doResolveUris' , {
enumerable : true ,
get : function get ( ) {
return _claims . doResolveUris ;
}
} ) ;
Object . defineProperty ( exports , 'doResolveUri' , {
enumerable : true ,
get : function get ( ) {
return _claims . doResolveUri ;
}
} ) ;
2019-03-18 06:13:12 +01:00
var _file _info = _ _webpack _require _ _ ( 23 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'doFetchFileInfo' , {
enumerable : true ,
get : function get ( ) {
return _file _info . doFetchFileInfo ;
}
} ) ;
Object . defineProperty ( exports , 'doFileList' , {
enumerable : true ,
get : function get ( ) {
return _file _info . doFileList ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchFileInfosAndPublishedClaims' , {
enumerable : true ,
get : function get ( ) {
return _file _info . doFetchFileInfosAndPublishedClaims ;
}
} ) ;
2018-10-23 05:31:57 +02:00
Object . defineProperty ( exports , 'doSetFileListSort' , {
2018-10-17 20:22:17 +02:00
enumerable : true ,
get : function get ( ) {
2018-10-23 05:31:57 +02:00
return _file _info . doSetFileListSort ;
2018-10-17 20:22:17 +02:00
}
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _search = _ _webpack _require _ _ ( 25 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'doSearch' , {
enumerable : true ,
get : function get ( ) {
return _search . doSearch ;
}
} ) ;
Object . defineProperty ( exports , 'doUpdateSearchQuery' , {
enumerable : true ,
get : function get ( ) {
return _search . doUpdateSearchQuery ;
}
} ) ;
Object . defineProperty ( exports , 'doFocusSearchInput' , {
enumerable : true ,
get : function get ( ) {
return _search . doFocusSearchInput ;
}
} ) ;
Object . defineProperty ( exports , 'doBlurSearchInput' , {
enumerable : true ,
get : function get ( ) {
return _search . doBlurSearchInput ;
}
} ) ;
2019-01-29 17:44:10 +01:00
Object . defineProperty ( exports , 'setSearchApi' , {
enumerable : true ,
get : function get ( ) {
return _search . setSearchApi ;
}
} ) ;
2019-02-18 17:24:18 +01:00
Object . defineProperty ( exports , 'doUpdateSearchOptions' , {
enumerable : true ,
get : function get ( ) {
return _search . doUpdateSearchOptions ;
}
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _wallet = _ _webpack _require _ _ ( 19 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'doUpdateBalance' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doUpdateBalance ;
}
} ) ;
Object . defineProperty ( exports , 'doBalanceSubscribe' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doBalanceSubscribe ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doFetchTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'doFetchBlock' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doFetchBlock ;
}
} ) ;
Object . defineProperty ( exports , 'doGetNewAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doGetNewAddress ;
}
} ) ;
Object . defineProperty ( exports , 'doCheckAddressIsMine' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doCheckAddressIsMine ;
}
} ) ;
Object . defineProperty ( exports , 'doSendDraftTransaction' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSendDraftTransaction ;
}
} ) ;
Object . defineProperty ( exports , 'doSetDraftTransactionAmount' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSetDraftTransactionAmount ;
}
} ) ;
Object . defineProperty ( exports , 'doSetDraftTransactionAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSetDraftTransactionAddress ;
}
} ) ;
2018-10-25 18:57:55 +02:00
Object . defineProperty ( exports , 'doSendTip' , {
2018-05-15 06:18:50 +02:00
enumerable : true ,
get : function get ( ) {
2018-10-25 18:57:55 +02:00
return _wallet . doSendTip ;
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-07-18 20:15:33 +02:00
Object . defineProperty ( exports , 'doWalletEncrypt' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doWalletEncrypt ;
}
} ) ;
Object . defineProperty ( exports , 'doWalletDecrypt' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doWalletDecrypt ;
}
} ) ;
Object . defineProperty ( exports , 'doWalletUnlock' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doWalletUnlock ;
}
} ) ;
Object . defineProperty ( exports , 'doWalletStatus' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doWalletStatus ;
}
} ) ;
2018-10-17 20:22:17 +02:00
Object . defineProperty ( exports , 'doSetTransactionListFilter' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doSetTransactionListFilter ;
}
} ) ;
2018-11-07 16:55:44 +01:00
Object . defineProperty ( exports , 'doUpdateBlockHeight' , {
enumerable : true ,
get : function get ( ) {
return _wallet . doUpdateBlockHeight ;
}
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _batchActions = _ _webpack _require _ _ ( 26 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'batchActions' , {
enumerable : true ,
get : function get ( ) {
return _batchActions . batchActions ;
}
} ) ;
2019-03-11 03:03:28 +01:00
var _query _params = _ _webpack _require _ _ ( 15 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'parseQueryParams' , {
enumerable : true ,
get : function get ( ) {
return _query _params . parseQueryParams ;
}
} ) ;
Object . defineProperty ( exports , 'toQueryString' , {
enumerable : true ,
get : function get ( ) {
return _query _params . toQueryString ;
}
} ) ;
2019-03-18 06:13:12 +01:00
var _formatCredits = _ _webpack _require _ _ ( 22 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'formatCredits' , {
enumerable : true ,
get : function get ( ) {
return _formatCredits . formatCredits ;
}
} ) ;
Object . defineProperty ( exports , 'formatFullPrice' , {
enumerable : true ,
get : function get ( ) {
return _formatCredits . formatFullPrice ;
}
} ) ;
2018-10-25 18:57:55 +02:00
Object . defineProperty ( exports , 'creditsToString' , {
enumerable : true ,
get : function get ( ) {
return _formatCredits . creditsToString ;
}
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _claims2 = _ _webpack _require _ _ ( 29 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'claimsReducer' , {
enumerable : true ,
get : function get ( ) {
return _claims2 . claimsReducer ;
}
} ) ;
2019-03-18 06:13:12 +01:00
var _file _info2 = _ _webpack _require _ _ ( 30 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'fileInfoReducer' , {
enumerable : true ,
get : function get ( ) {
return _file _info2 . fileInfoReducer ;
}
} ) ;
2019-03-18 06:13:12 +01:00
var _notifications2 = _ _webpack _require _ _ ( 33 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'notificationsReducer' , {
enumerable : true ,
get : function get ( ) {
return _notifications2 . notificationsReducer ;
}
} ) ;
2019-03-18 06:13:12 +01:00
var _search2 = _ _webpack _require _ _ ( 35 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'searchReducer' , {
enumerable : true ,
get : function get ( ) {
return _search2 . searchReducer ;
}
} ) ;
2019-03-18 06:13:12 +01:00
var _wallet2 = _ _webpack _require _ _ ( 36 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'walletReducer' , {
enumerable : true ,
get : function get ( ) {
return _wallet2 . walletReducer ;
}
} ) ;
2019-03-18 06:13:12 +01:00
var _notifications3 = _ _webpack _require _ _ ( 37 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
Object . defineProperty ( exports , 'selectToast' , {
2018-05-15 06:18:50 +02:00
enumerable : true ,
get : function get ( ) {
2018-11-12 19:01:14 +01:00
return _notifications3 . selectToast ;
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-11-12 19:01:14 +01:00
Object . defineProperty ( exports , 'selectError' , {
2018-05-15 06:18:50 +02:00
enumerable : true ,
get : function get ( ) {
2018-11-12 19:01:14 +01:00
return _notifications3 . selectError ;
2018-05-15 06:18:50 +02:00
}
} ) ;
2019-03-11 03:03:28 +01:00
var _claims3 = _ _webpack _require _ _ ( 12 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'makeSelectClaimForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectClaimIsMine' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimIsMine ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectFetchingChannelClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectFetchingChannelClaims ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectClaimsInChannelForCurrentPage' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimsInChannelForCurrentPage ;
}
} ) ;
2018-05-25 13:34:12 +02:00
Object . defineProperty ( exports , 'makeSelectClaimsInChannelForPage' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimsInChannelForPage ;
}
} ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'makeSelectMetadataForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectMetadataForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectTitleForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectTitleForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectContentTypeForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectContentTypeForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectIsUriResolving' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectIsUriResolving ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectTotalItemsForChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectTotalItemsForChannel ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectTotalPagesForChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectTotalPagesForChannel ;
}
} ) ;
2018-07-11 01:15:39 +02:00
Object . defineProperty ( exports , 'makeSelectNsfwCountFromUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectNsfwCountFromUris ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectNsfwCountForChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectNsfwCountForChannel ;
}
} ) ;
2018-08-02 05:31:51 +02:00
Object . defineProperty ( exports , 'makeSelectRecommendedContentForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectRecommendedContentForUri ;
}
} ) ;
2019-01-28 20:38:28 +01:00
Object . defineProperty ( exports , 'makeSelectFirstRecommendedFileForUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectFirstRecommendedFileForUri ;
}
} ) ;
2018-10-18 19:46:31 +02:00
Object . defineProperty ( exports , 'makeSelectChannelForClaimUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectChannelForClaimUri ;
}
} ) ;
2018-10-25 18:57:55 +02:00
Object . defineProperty ( exports , 'makeSelectClaimIsPending' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimIsPending ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectPendingByUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectPendingByUri ;
}
} ) ;
2019-02-19 02:30:10 +01:00
Object . defineProperty ( exports , 'makeSelectClaimsInChannelForCurrentPageState' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . makeSelectClaimsInChannelForCurrentPageState ;
}
} ) ;
2018-10-25 18:57:55 +02:00
Object . defineProperty ( exports , 'selectPendingById' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectPendingById ;
}
} ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'selectClaimsById' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectClaimsById ;
}
} ) ;
Object . defineProperty ( exports , 'selectClaimsByUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectClaimsByUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectAllClaimsByChannel' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAllClaimsByChannel ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaimsRaw' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaimsRaw ;
}
} ) ;
Object . defineProperty ( exports , 'selectAbandoningIds' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAbandoningIds ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyActiveClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyActiveClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectAllFetchingChannelClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAllFetchingChannelClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingClaimListMine' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectIsFetchingClaimListMine ;
}
} ) ;
Object . defineProperty ( exports , 'selectPendingClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectPendingClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaimsWithoutChannels' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaimsWithoutChannels ;
}
} ) ;
Object . defineProperty ( exports , 'selectAllMyClaimsByOutpoint' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectAllMyClaimsByOutpoint ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyClaimsOutpoints' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyClaimsOutpoints ;
}
} ) ;
Object . defineProperty ( exports , 'selectFetchingMyChannels' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectFetchingMyChannels ;
}
} ) ;
Object . defineProperty ( exports , 'selectMyChannelClaims' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectMyChannelClaims ;
}
} ) ;
Object . defineProperty ( exports , 'selectResolvingUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectResolvingUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectFeaturedUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectFeaturedUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectFetchingFeaturedUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectFetchingFeaturedUris ;
}
} ) ;
2018-06-06 02:24:01 +02:00
Object . defineProperty ( exports , 'selectTrendingUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectTrendingUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectFetchingTrendingUris' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectFetchingTrendingUris ;
}
} ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'selectPlayingUri' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectPlayingUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectChannelClaimCounts' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectChannelClaimCounts ;
}
} ) ;
2019-02-19 02:30:10 +01:00
Object . defineProperty ( exports , 'selectCurrentChannelPage' , {
enumerable : true ,
get : function get ( ) {
return _claims3 . selectCurrentChannelPage ;
}
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _file _info3 = _ _webpack _require _ _ ( 24 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'makeSelectFileInfoForUri' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . makeSelectFileInfoForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectDownloadingForUri' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . makeSelectDownloadingForUri ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectLoadingForUri' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . makeSelectLoadingForUri ;
}
} ) ;
Object . defineProperty ( exports , 'selectFileInfosByOutpoint' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectFileInfosByOutpoint ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingFileList' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectIsFetchingFileList ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingFileListDownloadedOrPublished' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectIsFetchingFileListDownloadedOrPublished ;
}
} ) ;
Object . defineProperty ( exports , 'selectDownloadingByOutpoint' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectDownloadingByOutpoint ;
}
} ) ;
Object . defineProperty ( exports , 'selectUrisLoading' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectUrisLoading ;
}
} ) ;
Object . defineProperty ( exports , 'selectFileInfosDownloaded' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectFileInfosDownloaded ;
}
} ) ;
Object . defineProperty ( exports , 'selectDownloadingFileInfos' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectDownloadingFileInfos ;
}
} ) ;
Object . defineProperty ( exports , 'selectTotalDownloadProgress' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectTotalDownloadProgress ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchDownloadUris' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectSearchDownloadUris ;
}
} ) ;
2018-10-23 05:31:57 +02:00
Object . defineProperty ( exports , 'selectFileListDownloadedSort' , {
enumerable : true ,
get : function get ( ) {
return _file _info3 . selectFileListDownloadedSort ;
}
} ) ;
Object . defineProperty ( exports , 'selectFileListPublishedSort' , {
2018-10-17 20:22:17 +02:00
enumerable : true ,
get : function get ( ) {
2018-10-23 05:31:57 +02:00
return _file _info3 . selectFileListPublishedSort ;
2018-10-17 20:22:17 +02:00
}
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _navigation = _ _webpack _require _ _ ( 13 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'computePageFromPath' , {
enumerable : true ,
get : function get ( ) {
return _navigation . computePageFromPath ;
}
} ) ;
Object . defineProperty ( exports , 'makeSelectCurrentParam' , {
enumerable : true ,
get : function get ( ) {
return _navigation . makeSelectCurrentParam ;
}
} ) ;
Object . defineProperty ( exports , 'selectCurrentPath' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectCurrentPath ;
}
} ) ;
Object . defineProperty ( exports , 'selectCurrentPage' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectCurrentPage ;
}
} ) ;
Object . defineProperty ( exports , 'selectCurrentParams' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectCurrentParams ;
}
} ) ;
Object . defineProperty ( exports , 'selectHeaderLinks' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectHeaderLinks ;
}
} ) ;
Object . defineProperty ( exports , 'selectPageTitle' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectPageTitle ;
}
} ) ;
Object . defineProperty ( exports , 'selectPathAfterAuth' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectPathAfterAuth ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsBackDisabled' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectIsBackDisabled ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsForwardDisabled' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectIsForwardDisabled ;
}
} ) ;
Object . defineProperty ( exports , 'selectHistoryIndex' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectHistoryIndex ;
}
} ) ;
Object . defineProperty ( exports , 'selectHistoryStack' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectHistoryStack ;
}
} ) ;
Object . defineProperty ( exports , 'selectActiveHistoryEntry' , {
enumerable : true ,
get : function get ( ) {
return _navigation . selectActiveHistoryEntry ;
}
} ) ;
2019-03-11 03:03:28 +01:00
var _search3 = _ _webpack _require _ _ ( 17 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'makeSelectSearchUris' , {
enumerable : true ,
get : function get ( ) {
return _search3 . makeSelectSearchUris ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchQuery' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchQuery ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchValue' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchValue ;
}
} ) ;
2019-02-18 17:24:18 +01:00
Object . defineProperty ( exports , 'selectSearchOptions' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchOptions ;
}
} ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'selectIsSearching' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectIsSearching ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchUrisByQuery' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchUrisByQuery ;
}
} ) ;
Object . defineProperty ( exports , 'selectWunderBarAddress' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectWunderBarAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectSearchBarFocused' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchBarFocused ;
}
} ) ;
2018-08-15 05:57:35 +02:00
Object . defineProperty ( exports , 'selectSearchSuggestions' , {
enumerable : true ,
get : function get ( ) {
return _search3 . selectSearchSuggestions ;
}
} ) ;
2019-02-18 17:24:18 +01:00
Object . defineProperty ( exports , 'makeSelectQueryWithOptions' , {
enumerable : true ,
get : function get ( ) {
return _search3 . makeSelectQueryWithOptions ;
}
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _wallet3 = _ _webpack _require _ _ ( 20 ) ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , 'makeSelectBlockDate' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . makeSelectBlockDate ;
}
} ) ;
Object . defineProperty ( exports , 'selectBalance' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectBalance ;
}
} ) ;
Object . defineProperty ( exports , 'selectTransactionsById' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectTransactionsById ;
}
} ) ;
Object . defineProperty ( exports , 'selectTransactionItems' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectTransactionItems ;
}
} ) ;
Object . defineProperty ( exports , 'selectRecentTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectRecentTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'selectHasTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectHasTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsFetchingTransactions' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectIsFetchingTransactions ;
}
} ) ;
Object . defineProperty ( exports , 'selectIsSendingSupport' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectIsSendingSupport ;
}
} ) ;
Object . defineProperty ( exports , 'selectReceiveAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectReceiveAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectGettingNewAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectGettingNewAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransaction' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransaction ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransactionAmount' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransactionAmount ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransactionAddress' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransactionAddress ;
}
} ) ;
Object . defineProperty ( exports , 'selectDraftTransactionError' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectDraftTransactionError ;
}
} ) ;
Object . defineProperty ( exports , 'selectBlocks' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectBlocks ;
}
} ) ;
2018-07-18 20:15:33 +02:00
Object . defineProperty ( exports , 'selectWalletIsEncrypted' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletIsEncrypted ;
}
} ) ;
Object . defineProperty ( exports , 'selectWalletState' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletState ;
}
} ) ;
Object . defineProperty ( exports , 'selectWalletEncryptPending' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletEncryptPending ;
}
} ) ;
Object . defineProperty ( exports , 'selectWalletEncryptSucceeded' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletEncryptSucceeded ;
}
} ) ;
2018-07-18 20:42:34 +02:00
Object . defineProperty ( exports , 'selectWalletEncryptResult' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletEncryptResult ;
}
} ) ;
2018-07-18 20:15:33 +02:00
Object . defineProperty ( exports , 'selectWalletDecryptPending' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletDecryptPending ;
}
} ) ;
Object . defineProperty ( exports , 'selectWalletDecryptSucceeded' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletDecryptSucceeded ;
}
} ) ;
2018-07-18 20:42:34 +02:00
Object . defineProperty ( exports , 'selectWalletDecryptResult' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletDecryptResult ;
}
} ) ;
2018-07-18 20:15:33 +02:00
Object . defineProperty ( exports , 'selectWalletUnlockPending' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletUnlockPending ;
}
} ) ;
Object . defineProperty ( exports , 'selectWalletUnlockSucceeded' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletUnlockSucceeded ;
}
} ) ;
2018-07-18 20:42:34 +02:00
Object . defineProperty ( exports , 'selectWalletUnlockResult' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectWalletUnlockResult ;
}
} ) ;
2018-10-17 20:22:17 +02:00
Object . defineProperty ( exports , 'selectTransactionListFilter' , {
enumerable : true ,
get : function get ( ) {
return _wallet3 . selectTransactionListFilter ;
}
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2019-03-18 06:13:12 +01:00
var _thumbnail _upload _statuses = _ _webpack _require _ _ ( 38 ) ;
2018-05-30 21:34:55 +02:00
2018-06-14 22:22:16 +02:00
var THUMBNAIL _STATUSES = _interopRequireWildcard ( _thumbnail _upload _statuses ) ;
2018-05-30 21:34:55 +02:00
2019-03-18 06:13:12 +01:00
var _settings = _ _webpack _require _ _ ( 39 ) ;
2018-05-27 22:30:07 +02:00
var SETTINGS = _interopRequireWildcard ( _settings ) ;
2019-03-18 06:13:12 +01:00
var _transaction _types = _ _webpack _require _ _ ( 21 ) ;
2018-07-17 18:52:23 +02:00
var TRANSACTIONS = _interopRequireWildcard ( _transaction _types ) ;
2019-03-18 06:13:12 +01:00
var _sort _options = _ _webpack _require _ _ ( 31 ) ;
2018-10-23 05:31:57 +02:00
var SORT _OPTIONS = _interopRequireWildcard ( _sort _options ) ;
2019-03-18 06:13:12 +01:00
var _pages = _ _webpack _require _ _ ( 32 ) ;
2018-10-23 05:31:57 +02:00
var PAGES = _interopRequireWildcard ( _pages ) ;
2019-03-11 03:03:28 +01:00
var _search4 = _ _webpack _require _ _ ( 16 ) ;
2019-02-18 17:24:18 +01:00
2018-11-12 19:01:14 +01:00
var _lbry = _ _webpack _require _ _ ( 9 ) ;
2018-05-15 06:18:50 +02:00
var _lbry2 = _interopRequireDefault ( _lbry ) ;
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
// constants
exports . ACTIONS = ACTIONS ;
2018-06-14 22:22:16 +02:00
exports . THUMBNAIL _STATUSES = THUMBNAIL _STATUSES ;
2019-02-18 17:24:18 +01:00
exports . SEARCH _TYPES = _search4 . SEARCH _TYPES ;
exports . SEARCH _OPTIONS = _search4 . SEARCH _OPTIONS ;
2018-05-27 22:30:07 +02:00
exports . SETTINGS = SETTINGS ;
2018-07-17 18:52:23 +02:00
exports . TRANSACTIONS = TRANSACTIONS ;
2018-10-23 05:31:57 +02:00
exports . SORT _OPTIONS = SORT _OPTIONS ;
exports . PAGES = PAGES ;
2018-05-15 06:18:50 +02:00
// common
exports . Lbry = _lbry2 . default ;
exports . selectSearchState = _search3 . selectState ;
/***/ } ) ,
/* 1 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-05-15 06:18:50 +02:00
2019-02-18 17:24:18 +01:00
/ *
Toasts :
- First - in , first - out queue
- Simple messages that are shown in response to user interactions
- Never saved
- If they are the result of errors , use the isError flag when creating
- For errors that should interrupt user behavior , use Error
2018-11-12 19:01:14 +01:00
* /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e T o a s t P a r a m s = {
message : string ,
title ? : string ,
linkText ? : string ,
linkTarget ? : string ,
isError ? : boolean ,
2018-11-12 19:01:14 +01:00
} ; * / / / @ flow
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e T o a s t = {
id : string ,
params : ToastParams ,
2018-11-12 19:01:14 +01:00
} ; * /
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
2019-02-18 17:24:18 +01:00
/ *
Notifications :
- List of notifications based on user interactions / app notifications
- Always saved , but can be manually deleted
- Can happen in the background , or because of user interaction ( ex : publish confirmed )
2018-11-12 19:01:14 +01:00
* /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e D o T o a s t = {
type : ACTIONS . CREATE _TOAST ,
data : Toast ,
2018-11-12 19:01:14 +01:00
} ; * /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e N o t i f i c a t i o n = {
id : string , // Unique id
dateCreated : number ,
isRead : boolean , // Used to display "new" notifications that a user hasn't seen yet
source ? : string , // The type/area an notification is from. Used for sorting (ex: publishes, transactions)
// We may want to use priority/isDismissed in the future to specify how urgent a notification is
// and if the user should see it immediately
// isDissmied: boolean,
// priority?: number
2018-05-15 06:18:50 +02:00
} ; * /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e D o N o t i f i c a t i o n = {
type : ACTIONS . CREATE _NOTIFICATION ,
data : Notification ,
2018-11-12 19:01:14 +01:00
} ; * /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e D o E d i t N o t i f i c a t i o n = {
type : ACTIONS . EDIT _NOTIFICATION ,
data : {
id : string ,
isRead : boolean ,
// In the future we can add `isDismissed` if we decide to show notifications as they come in
// Similar to Facebook's notifications in the corner of the screen
// isDismissed: boolean,
} ,
2018-11-12 19:01:14 +01:00
} ; * /
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
2019-02-18 17:24:18 +01:00
/ *
Errors :
- First - in , first - out queue
- Errors that should interupt user behavior
- For errors that can be shown without interrupting a user , use Toast with the isError flag
2018-11-12 19:01:14 +01:00
* /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e D o D e l e t e N o t i f i c a t i o n = {
type : ACTIONS . DELETE _NOTIFICATION ,
data : {
id : string , // The id to delete
} ,
2018-11-12 19:01:14 +01:00
} ; * /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e E r r o r = {
title : string ,
text : string ,
2018-11-12 19:01:14 +01:00
} ; * /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e D o E r r o r = {
type : ACTIONS . CREATE _ERROR ,
data : Error ,
2018-11-12 19:01:14 +01:00
} ; * /
2019-02-18 17:24:18 +01:00
/ *
NotificationState
2018-11-12 19:01:14 +01:00
* /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e D o D i s m i s s E r r o r = {
type : ACTIONS . DISMISS _ERROR ,
2018-05-15 06:18:50 +02:00
} ; * /
2019-02-18 17:24:18 +01:00
/ * : : e x p o r t t y p e N o t i f i c a t i o n S t a t e = {
notifications : Array < Notification > ,
errors : Array < Error > ,
toasts : Array < Toast > ,
2018-05-15 06:18:50 +02:00
} ; * /
/***/ } ) ,
/* 2 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-11-12 19:01:14 +01:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var WINDOW _FOCUSED = exports . WINDOW _FOCUSED = 'WINDOW_FOCUSED' ;
var DAEMON _READY = exports . DAEMON _READY = 'DAEMON_READY' ;
var DAEMON _VERSION _MATCH = exports . DAEMON _VERSION _MATCH = 'DAEMON_VERSION_MATCH' ;
var DAEMON _VERSION _MISMATCH = exports . DAEMON _VERSION _MISMATCH = 'DAEMON_VERSION_MISMATCH' ;
var VOLUME _CHANGED = exports . VOLUME _CHANGED = 'VOLUME_CHANGED' ;
// Navigation
var CHANGE _AFTER _AUTH _PATH = exports . CHANGE _AFTER _AUTH _PATH = 'CHANGE_AFTER_AUTH_PATH' ;
var WINDOW _SCROLLED = exports . WINDOW _SCROLLED = 'WINDOW_SCROLLED' ;
var HISTORY _NAVIGATE = exports . HISTORY _NAVIGATE = 'HISTORY_NAVIGATE' ;
// Upgrades
var UPGRADE _CANCELLED = exports . UPGRADE _CANCELLED = 'UPGRADE_CANCELLED' ;
var DOWNLOAD _UPGRADE = exports . DOWNLOAD _UPGRADE = 'DOWNLOAD_UPGRADE' ;
var UPGRADE _DOWNLOAD _STARTED = exports . UPGRADE _DOWNLOAD _STARTED = 'UPGRADE_DOWNLOAD_STARTED' ;
var UPGRADE _DOWNLOAD _COMPLETED = exports . UPGRADE _DOWNLOAD _COMPLETED = 'UPGRADE_DOWNLOAD_COMPLETED' ;
var UPGRADE _DOWNLOAD _PROGRESSED = exports . UPGRADE _DOWNLOAD _PROGRESSED = 'UPGRADE_DOWNLOAD_PROGRESSED' ;
var CHECK _UPGRADE _AVAILABLE = exports . CHECK _UPGRADE _AVAILABLE = 'CHECK_UPGRADE_AVAILABLE' ;
var CHECK _UPGRADE _START = exports . CHECK _UPGRADE _START = 'CHECK_UPGRADE_START' ;
var CHECK _UPGRADE _SUCCESS = exports . CHECK _UPGRADE _SUCCESS = 'CHECK_UPGRADE_SUCCESS' ;
var CHECK _UPGRADE _FAIL = exports . CHECK _UPGRADE _FAIL = 'CHECK_UPGRADE_FAIL' ;
var CHECK _UPGRADE _SUBSCRIBE = exports . CHECK _UPGRADE _SUBSCRIBE = 'CHECK_UPGRADE_SUBSCRIBE' ;
var UPDATE _VERSION = exports . UPDATE _VERSION = 'UPDATE_VERSION' ;
var UPDATE _REMOTE _VERSION = exports . UPDATE _REMOTE _VERSION = 'UPDATE_REMOTE_VERSION' ;
var SKIP _UPGRADE = exports . SKIP _UPGRADE = 'SKIP_UPGRADE' ;
var START _UPGRADE = exports . START _UPGRADE = 'START_UPGRADE' ;
var AUTO _UPDATE _DECLINED = exports . AUTO _UPDATE _DECLINED = 'AUTO_UPDATE_DECLINED' ;
var AUTO _UPDATE _DOWNLOADED = exports . AUTO _UPDATE _DOWNLOADED = 'AUTO_UPDATE_DOWNLOADED' ;
var CLEAR _UPGRADE _TIMER = exports . CLEAR _UPGRADE _TIMER = 'CLEAR_UPGRADE_TIMER' ;
// Wallet
var GET _NEW _ADDRESS _STARTED = exports . GET _NEW _ADDRESS _STARTED = 'GET_NEW_ADDRESS_STARTED' ;
var GET _NEW _ADDRESS _COMPLETED = exports . GET _NEW _ADDRESS _COMPLETED = 'GET_NEW_ADDRESS_COMPLETED' ;
var FETCH _TRANSACTIONS _STARTED = exports . FETCH _TRANSACTIONS _STARTED = 'FETCH_TRANSACTIONS_STARTED' ;
var FETCH _TRANSACTIONS _COMPLETED = exports . FETCH _TRANSACTIONS _COMPLETED = 'FETCH_TRANSACTIONS_COMPLETED' ;
var UPDATE _BALANCE = exports . UPDATE _BALANCE = 'UPDATE_BALANCE' ;
var CHECK _ADDRESS _IS _MINE _STARTED = exports . CHECK _ADDRESS _IS _MINE _STARTED = 'CHECK_ADDRESS_IS_MINE_STARTED' ;
var CHECK _ADDRESS _IS _MINE _COMPLETED = exports . CHECK _ADDRESS _IS _MINE _COMPLETED = 'CHECK_ADDRESS_IS_MINE_COMPLETED' ;
var SEND _TRANSACTION _STARTED = exports . SEND _TRANSACTION _STARTED = 'SEND_TRANSACTION_STARTED' ;
var SEND _TRANSACTION _COMPLETED = exports . SEND _TRANSACTION _COMPLETED = 'SEND_TRANSACTION_COMPLETED' ;
var SEND _TRANSACTION _FAILED = exports . SEND _TRANSACTION _FAILED = 'SEND_TRANSACTION_FAILED' ;
var FETCH _BLOCK _SUCCESS = exports . FETCH _BLOCK _SUCCESS = 'FETCH_BLOCK_SUCCESS' ;
var SUPPORT _TRANSACTION _STARTED = exports . SUPPORT _TRANSACTION _STARTED = 'SUPPORT_TRANSACTION_STARTED' ;
var SUPPORT _TRANSACTION _COMPLETED = exports . SUPPORT _TRANSACTION _COMPLETED = 'SUPPORT_TRANSACTION_COMPLETED' ;
var SUPPORT _TRANSACTION _FAILED = exports . SUPPORT _TRANSACTION _FAILED = 'SUPPORT_TRANSACTION_FAILED' ;
var WALLET _ENCRYPT _START = exports . WALLET _ENCRYPT _START = 'WALLET_ENCRYPT_START' ;
var WALLET _ENCRYPT _COMPLETED = exports . WALLET _ENCRYPT _COMPLETED = 'WALLET_ENCRYPT_COMPLETED' ;
var WALLET _ENCRYPT _FAILED = exports . WALLET _ENCRYPT _FAILED = 'WALLET_ENCRYPT_FAILED' ;
var WALLET _UNLOCK _START = exports . WALLET _UNLOCK _START = 'WALLET_UNLOCK_START' ;
var WALLET _UNLOCK _COMPLETED = exports . WALLET _UNLOCK _COMPLETED = 'WALLET_UNLOCK_COMPLETED' ;
var WALLET _UNLOCK _FAILED = exports . WALLET _UNLOCK _FAILED = 'WALLET_UNLOCK_FAILED' ;
var WALLET _DECRYPT _START = exports . WALLET _DECRYPT _START = 'WALLET_DECRYPT_START' ;
var WALLET _DECRYPT _COMPLETED = exports . WALLET _DECRYPT _COMPLETED = 'WALLET_DECRYPT_COMPLETED' ;
var WALLET _DECRYPT _FAILED = exports . WALLET _DECRYPT _FAILED = 'WALLET_DECRYPT_FAILED' ;
var WALLET _LOCK _START = exports . WALLET _LOCK _START = 'WALLET_LOCK_START' ;
var WALLET _LOCK _COMPLETED = exports . WALLET _LOCK _COMPLETED = 'WALLET_LOCK_COMPLETED' ;
var WALLET _LOCK _FAILED = exports . WALLET _LOCK _FAILED = 'WALLET_LOCK_FAILED' ;
var WALLET _STATUS _START = exports . WALLET _STATUS _START = 'WALLET_STATUS_START' ;
var WALLET _STATUS _COMPLETED = exports . WALLET _STATUS _COMPLETED = 'WALLET_STATUS_COMPLETED' ;
var SET _TRANSACTION _LIST _FILTER = exports . SET _TRANSACTION _LIST _FILTER = 'SET_TRANSACTION_LIST_FILTER' ;
var UPDATE _CURRENT _HEIGHT = exports . UPDATE _CURRENT _HEIGHT = 'UPDATE_CURRENT_HEIGHT' ;
// Claims
var RESOLVE _URIS _STARTED = exports . RESOLVE _URIS _STARTED = 'RESOLVE_URIS_STARTED' ;
var RESOLVE _URIS _COMPLETED = exports . RESOLVE _URIS _COMPLETED = 'RESOLVE_URIS_COMPLETED' ;
var FETCH _CHANNEL _CLAIMS _STARTED = exports . FETCH _CHANNEL _CLAIMS _STARTED = 'FETCH_CHANNEL_CLAIMS_STARTED' ;
var FETCH _CHANNEL _CLAIMS _COMPLETED = exports . FETCH _CHANNEL _CLAIMS _COMPLETED = 'FETCH_CHANNEL_CLAIMS_COMPLETED' ;
var FETCH _CHANNEL _CLAIM _COUNT _STARTED = exports . FETCH _CHANNEL _CLAIM _COUNT _STARTED = 'FETCH_CHANNEL_CLAIM_COUNT_STARTED' ;
var FETCH _CHANNEL _CLAIM _COUNT _COMPLETED = exports . FETCH _CHANNEL _CLAIM _COUNT _COMPLETED = 'FETCH_CHANNEL_CLAIM_COUNT_COMPLETED' ;
var FETCH _CLAIM _LIST _MINE _STARTED = exports . FETCH _CLAIM _LIST _MINE _STARTED = 'FETCH_CLAIM_LIST_MINE_STARTED' ;
var FETCH _CLAIM _LIST _MINE _COMPLETED = exports . FETCH _CLAIM _LIST _MINE _COMPLETED = 'FETCH_CLAIM_LIST_MINE_COMPLETED' ;
var ABANDON _CLAIM _STARTED = exports . ABANDON _CLAIM _STARTED = 'ABANDON_CLAIM_STARTED' ;
var ABANDON _CLAIM _SUCCEEDED = exports . ABANDON _CLAIM _SUCCEEDED = 'ABANDON_CLAIM_SUCCEEDED' ;
var FETCH _CHANNEL _LIST _STARTED = exports . FETCH _CHANNEL _LIST _STARTED = 'FETCH_CHANNEL_LIST_STARTED' ;
var FETCH _CHANNEL _LIST _COMPLETED = exports . FETCH _CHANNEL _LIST _COMPLETED = 'FETCH_CHANNEL_LIST_COMPLETED' ;
var CREATE _CHANNEL _STARTED = exports . CREATE _CHANNEL _STARTED = 'CREATE_CHANNEL_STARTED' ;
var CREATE _CHANNEL _COMPLETED = exports . CREATE _CHANNEL _COMPLETED = 'CREATE_CHANNEL_COMPLETED' ;
var PUBLISH _STARTED = exports . PUBLISH _STARTED = 'PUBLISH_STARTED' ;
var PUBLISH _COMPLETED = exports . PUBLISH _COMPLETED = 'PUBLISH_COMPLETED' ;
var PUBLISH _FAILED = exports . PUBLISH _FAILED = 'PUBLISH_FAILED' ;
var SET _PLAYING _URI = exports . SET _PLAYING _URI = 'SET_PLAYING_URI' ;
var SET _CONTENT _POSITION = exports . SET _CONTENT _POSITION = 'SET_CONTENT_POSITION' ;
var SET _CONTENT _LAST _VIEWED = exports . SET _CONTENT _LAST _VIEWED = 'SET_CONTENT_LAST_VIEWED' ;
var CLEAR _CONTENT _HISTORY _URI = exports . CLEAR _CONTENT _HISTORY _URI = 'CLEAR_CONTENT_HISTORY_URI' ;
var CLEAR _CONTENT _HISTORY _ALL = exports . CLEAR _CONTENT _HISTORY _ALL = 'CLEAR_CONTENT_HISTORY_ALL' ;
// Files
var FILE _LIST _STARTED = exports . FILE _LIST _STARTED = 'FILE_LIST_STARTED' ;
var FILE _LIST _SUCCEEDED = exports . FILE _LIST _SUCCEEDED = 'FILE_LIST_SUCCEEDED' ;
var FETCH _FILE _INFO _STARTED = exports . FETCH _FILE _INFO _STARTED = 'FETCH_FILE_INFO_STARTED' ;
var FETCH _FILE _INFO _COMPLETED = exports . FETCH _FILE _INFO _COMPLETED = 'FETCH_FILE_INFO_COMPLETED' ;
var LOADING _VIDEO _STARTED = exports . LOADING _VIDEO _STARTED = 'LOADING_VIDEO_STARTED' ;
var LOADING _VIDEO _COMPLETED = exports . LOADING _VIDEO _COMPLETED = 'LOADING_VIDEO_COMPLETED' ;
var LOADING _VIDEO _FAILED = exports . LOADING _VIDEO _FAILED = 'LOADING_VIDEO_FAILED' ;
var DOWNLOADING _STARTED = exports . DOWNLOADING _STARTED = 'DOWNLOADING_STARTED' ;
var DOWNLOADING _PROGRESSED = exports . DOWNLOADING _PROGRESSED = 'DOWNLOADING_PROGRESSED' ;
var DOWNLOADING _COMPLETED = exports . DOWNLOADING _COMPLETED = 'DOWNLOADING_COMPLETED' ;
var DOWNLOADING _CANCELED = exports . DOWNLOADING _CANCELED = 'DOWNLOADING_CANCELED' ;
var PLAY _VIDEO _STARTED = exports . PLAY _VIDEO _STARTED = 'PLAY_VIDEO_STARTED' ;
var FETCH _AVAILABILITY _STARTED = exports . FETCH _AVAILABILITY _STARTED = 'FETCH_AVAILABILITY_STARTED' ;
var FETCH _AVAILABILITY _COMPLETED = exports . FETCH _AVAILABILITY _COMPLETED = 'FETCH_AVAILABILITY_COMPLETED' ;
var FILE _DELETE = exports . FILE _DELETE = 'FILE_DELETE' ;
var SET _FILE _LIST _SORT = exports . SET _FILE _LIST _SORT = 'SET_FILE_LIST_SORT' ;
// Search
var SEARCH _START = exports . SEARCH _START = 'SEARCH_START' ;
var SEARCH _SUCCESS = exports . SEARCH _SUCCESS = 'SEARCH_SUCCESS' ;
var SEARCH _FAIL = exports . SEARCH _FAIL = 'SEARCH_FAIL' ;
var UPDATE _SEARCH _QUERY = exports . UPDATE _SEARCH _QUERY = 'UPDATE_SEARCH_QUERY' ;
2019-02-18 17:24:18 +01:00
var UPDATE _SEARCH _OPTIONS = exports . UPDATE _SEARCH _OPTIONS = 'UPDATE_SEARCH_OPTIONS' ;
2018-11-12 19:01:14 +01:00
var UPDATE _SEARCH _SUGGESTIONS = exports . UPDATE _SEARCH _SUGGESTIONS = 'UPDATE_SEARCH_SUGGESTIONS' ;
var SEARCH _FOCUS = exports . SEARCH _FOCUS = 'SEARCH_FOCUS' ;
var SEARCH _BLUR = exports . SEARCH _BLUR = 'SEARCH_BLUR' ;
// Settings
var DAEMON _SETTINGS _RECEIVED = exports . DAEMON _SETTINGS _RECEIVED = 'DAEMON_SETTINGS_RECEIVED' ;
var CLIENT _SETTING _CHANGED = exports . CLIENT _SETTING _CHANGED = 'CLIENT_SETTING_CHANGED' ;
var UPDATE _IS _NIGHT = exports . UPDATE _IS _NIGHT = 'UPDATE_IS_NIGHT' ;
// User
var AUTHENTICATION _STARTED = exports . AUTHENTICATION _STARTED = 'AUTHENTICATION_STARTED' ;
var AUTHENTICATION _SUCCESS = exports . AUTHENTICATION _SUCCESS = 'AUTHENTICATION_SUCCESS' ;
var AUTHENTICATION _FAILURE = exports . AUTHENTICATION _FAILURE = 'AUTHENTICATION_FAILURE' ;
var USER _EMAIL _DECLINE = exports . USER _EMAIL _DECLINE = 'USER_EMAIL_DECLINE' ;
var USER _EMAIL _NEW _STARTED = exports . USER _EMAIL _NEW _STARTED = 'USER_EMAIL_NEW_STARTED' ;
var USER _EMAIL _NEW _SUCCESS = exports . USER _EMAIL _NEW _SUCCESS = 'USER_EMAIL_NEW_SUCCESS' ;
var USER _EMAIL _NEW _EXISTS = exports . USER _EMAIL _NEW _EXISTS = 'USER_EMAIL_NEW_EXISTS' ;
var USER _EMAIL _NEW _FAILURE = exports . USER _EMAIL _NEW _FAILURE = 'USER_EMAIL_NEW_FAILURE' ;
var USER _EMAIL _VERIFY _SET = exports . USER _EMAIL _VERIFY _SET = 'USER_EMAIL_VERIFY_SET' ;
var USER _EMAIL _VERIFY _STARTED = exports . USER _EMAIL _VERIFY _STARTED = 'USER_EMAIL_VERIFY_STARTED' ;
var USER _EMAIL _VERIFY _SUCCESS = exports . USER _EMAIL _VERIFY _SUCCESS = 'USER_EMAIL_VERIFY_SUCCESS' ;
var USER _EMAIL _VERIFY _FAILURE = exports . USER _EMAIL _VERIFY _FAILURE = 'USER_EMAIL_VERIFY_FAILURE' ;
2018-11-29 06:56:14 +01:00
var USER _EMAIL _VERIFY _RETRY = exports . USER _EMAIL _VERIFY _RETRY = 'USER_EMAIL_VERIFY_RETRY' ;
2018-11-12 19:01:14 +01:00
var USER _PHONE _RESET = exports . USER _PHONE _RESET = 'USER_PHONE_RESET' ;
var USER _PHONE _NEW _STARTED = exports . USER _PHONE _NEW _STARTED = 'USER_PHONE_NEW_STARTED' ;
var USER _PHONE _NEW _SUCCESS = exports . USER _PHONE _NEW _SUCCESS = 'USER_PHONE_NEW_SUCCESS' ;
var USER _PHONE _NEW _FAILURE = exports . USER _PHONE _NEW _FAILURE = 'USER_PHONE_NEW_FAILURE' ;
var USER _PHONE _VERIFY _STARTED = exports . USER _PHONE _VERIFY _STARTED = 'USER_PHONE_VERIFY_STARTED' ;
var USER _PHONE _VERIFY _SUCCESS = exports . USER _PHONE _VERIFY _SUCCESS = 'USER_PHONE_VERIFY_SUCCESS' ;
var USER _PHONE _VERIFY _FAILURE = exports . USER _PHONE _VERIFY _FAILURE = 'USER_PHONE_VERIFY_FAILURE' ;
var USER _IDENTITY _VERIFY _STARTED = exports . USER _IDENTITY _VERIFY _STARTED = 'USER_IDENTITY_VERIFY_STARTED' ;
var USER _IDENTITY _VERIFY _SUCCESS = exports . USER _IDENTITY _VERIFY _SUCCESS = 'USER_IDENTITY_VERIFY_SUCCESS' ;
var USER _IDENTITY _VERIFY _FAILURE = exports . USER _IDENTITY _VERIFY _FAILURE = 'USER_IDENTITY_VERIFY_FAILURE' ;
var USER _FETCH _STARTED = exports . USER _FETCH _STARTED = 'USER_FETCH_STARTED' ;
var USER _FETCH _SUCCESS = exports . USER _FETCH _SUCCESS = 'USER_FETCH_SUCCESS' ;
var USER _FETCH _FAILURE = exports . USER _FETCH _FAILURE = 'USER_FETCH_FAILURE' ;
var USER _INVITE _STATUS _FETCH _STARTED = exports . USER _INVITE _STATUS _FETCH _STARTED = 'USER_INVITE_STATUS_FETCH_STARTED' ;
var USER _INVITE _STATUS _FETCH _SUCCESS = exports . USER _INVITE _STATUS _FETCH _SUCCESS = 'USER_INVITE_STATUS_FETCH_SUCCESS' ;
var USER _INVITE _STATUS _FETCH _FAILURE = exports . USER _INVITE _STATUS _FETCH _FAILURE = 'USER_INVITE_STATUS_FETCH_FAILURE' ;
var USER _INVITE _NEW _STARTED = exports . USER _INVITE _NEW _STARTED = 'USER_INVITE_NEW_STARTED' ;
var USER _INVITE _NEW _SUCCESS = exports . USER _INVITE _NEW _SUCCESS = 'USER_INVITE_NEW_SUCCESS' ;
var USER _INVITE _NEW _FAILURE = exports . USER _INVITE _NEW _FAILURE = 'USER_INVITE_NEW_FAILURE' ;
var FETCH _ACCESS _TOKEN _SUCCESS = exports . FETCH _ACCESS _TOKEN _SUCCESS = 'FETCH_ACCESS_TOKEN_SUCCESS' ;
// Rewards
var FETCH _REWARDS _STARTED = exports . FETCH _REWARDS _STARTED = 'FETCH_REWARDS_STARTED' ;
var FETCH _REWARDS _COMPLETED = exports . FETCH _REWARDS _COMPLETED = 'FETCH_REWARDS_COMPLETED' ;
var CLAIM _REWARD _STARTED = exports . CLAIM _REWARD _STARTED = 'CLAIM_REWARD_STARTED' ;
var CLAIM _REWARD _SUCCESS = exports . CLAIM _REWARD _SUCCESS = 'CLAIM_REWARD_SUCCESS' ;
var CLAIM _REWARD _FAILURE = exports . CLAIM _REWARD _FAILURE = 'CLAIM_REWARD_FAILURE' ;
var CLAIM _REWARD _CLEAR _ERROR = exports . CLAIM _REWARD _CLEAR _ERROR = 'CLAIM_REWARD_CLEAR_ERROR' ;
var FETCH _REWARD _CONTENT _COMPLETED = exports . FETCH _REWARD _CONTENT _COMPLETED = 'FETCH_REWARD_CONTENT_COMPLETED' ;
// Language
var DOWNLOAD _LANGUAGE _SUCCEEDED = exports . DOWNLOAD _LANGUAGE _SUCCEEDED = 'DOWNLOAD_LANGUAGE_SUCCEEDED' ;
var DOWNLOAD _LANGUAGE _FAILED = exports . DOWNLOAD _LANGUAGE _FAILED = 'DOWNLOAD_LANGUAGE_FAILED' ;
// ShapeShift
var GET _SUPPORTED _COINS _START = exports . GET _SUPPORTED _COINS _START = 'GET_SUPPORTED_COINS_START' ;
var GET _SUPPORTED _COINS _SUCCESS = exports . GET _SUPPORTED _COINS _SUCCESS = 'GET_SUPPORTED_COINS_SUCCESS' ;
var GET _SUPPORTED _COINS _FAIL = exports . GET _SUPPORTED _COINS _FAIL = 'GET_SUPPORTED_COINS_FAIL' ;
var GET _COIN _STATS _START = exports . GET _COIN _STATS _START = 'GET_COIN_STATS_START' ;
var GET _COIN _STATS _SUCCESS = exports . GET _COIN _STATS _SUCCESS = 'GET_COIN_STATS_SUCCESS' ;
var GET _COIN _STATS _FAIL = exports . GET _COIN _STATS _FAIL = 'GET_COIN_STATS_FAIL' ;
var PREPARE _SHAPE _SHIFT _START = exports . PREPARE _SHAPE _SHIFT _START = 'PREPARE_SHAPE_SHIFT_START' ;
var PREPARE _SHAPE _SHIFT _SUCCESS = exports . PREPARE _SHAPE _SHIFT _SUCCESS = 'PREPARE_SHAPE_SHIFT_SUCCESS' ;
var PREPARE _SHAPE _SHIFT _FAIL = exports . PREPARE _SHAPE _SHIFT _FAIL = 'PREPARE_SHAPE_SHIFT_FAIL' ;
var GET _ACTIVE _SHIFT _START = exports . GET _ACTIVE _SHIFT _START = 'GET_ACTIVE_SHIFT_START' ;
var GET _ACTIVE _SHIFT _SUCCESS = exports . GET _ACTIVE _SHIFT _SUCCESS = 'GET_ACTIVE_SHIFT_SUCCESS' ;
var GET _ACTIVE _SHIFT _FAIL = exports . GET _ACTIVE _SHIFT _FAIL = 'GET_ACTIVE_SHIFT_FAIL' ;
var CLEAR _SHAPE _SHIFT = exports . CLEAR _SHAPE _SHIFT = 'CLEAR_SHAPE_SHIFT' ;
// Subscriptions
var CHANNEL _SUBSCRIBE = exports . CHANNEL _SUBSCRIBE = 'CHANNEL_SUBSCRIBE' ;
var CHANNEL _UNSUBSCRIBE = exports . CHANNEL _UNSUBSCRIBE = 'CHANNEL_UNSUBSCRIBE' ;
var HAS _FETCHED _SUBSCRIPTIONS = exports . HAS _FETCHED _SUBSCRIPTIONS = 'HAS_FETCHED_SUBSCRIPTIONS' ;
var SET _SUBSCRIPTION _LATEST = exports . SET _SUBSCRIPTION _LATEST = 'SET_SUBSCRIPTION_LATEST' ;
var SET _SUBSCRIPTION _NOTIFICATION = exports . SET _SUBSCRIPTION _NOTIFICATION = 'SET_SUBSCRIPTION_NOTIFICATION' ;
var SET _SUBSCRIPTION _NOTIFICATIONS = exports . SET _SUBSCRIPTION _NOTIFICATIONS = 'SET_SUBSCRIPTION_NOTIFICATIONS' ;
var CHECK _SUBSCRIPTION _STARTED = exports . CHECK _SUBSCRIPTION _STARTED = 'CHECK_SUBSCRIPTION_STARTED' ;
var CHECK _SUBSCRIPTION _COMPLETED = exports . CHECK _SUBSCRIPTION _COMPLETED = 'CHECK_SUBSCRIPTION_COMPLETED' ;
var CHECK _SUBSCRIPTIONS _SUBSCRIBE = exports . CHECK _SUBSCRIPTIONS _SUBSCRIBE = 'CHECK_SUBSCRIPTIONS_SUBSCRIBE' ;
// Publishing
var CLEAR _PUBLISH = exports . CLEAR _PUBLISH = 'CLEAR_PUBLISH' ;
var UPDATE _PUBLISH _FORM = exports . UPDATE _PUBLISH _FORM = 'UPDATE_PUBLISH_FORM' ;
var PUBLISH _START = exports . PUBLISH _START = 'PUBLISH_START' ;
var PUBLISH _SUCCESS = exports . PUBLISH _SUCCESS = 'PUBLISH_SUCCESS' ;
var PUBLISH _FAIL = exports . PUBLISH _FAIL = 'PUBLISH_FAIL' ;
var CLEAR _PUBLISH _ERROR = exports . CLEAR _PUBLISH _ERROR = 'CLEAR_PUBLISH_ERROR' ;
var REMOVE _PENDING _PUBLISH = exports . REMOVE _PENDING _PUBLISH = 'REMOVE_PENDING_PUBLISH' ;
var DO _PREPARE _EDIT = exports . DO _PREPARE _EDIT = 'DO_PREPARE_EDIT' ;
// Notifications
2018-11-13 01:20:52 +01:00
var CREATE _NOTIFICATION = exports . CREATE _NOTIFICATION = 'CREATE_NOTIFICATION' ;
var EDIT _NOTIFICATION = exports . EDIT _NOTIFICATION = 'EDIT_NOTIFICATION' ;
var DELETE _NOTIFICATION = exports . DELETE _NOTIFICATION = 'DELETE_NOTIFICATION' ;
2018-11-12 19:01:14 +01:00
var CREATE _TOAST = exports . CREATE _TOAST = 'CREATE_TOAST' ;
var DISMISS _TOAST = exports . DISMISS _TOAST = 'DISMISS_TOAST' ;
var CREATE _ERROR = exports . CREATE _ERROR = 'CREATE_ERROR' ;
var DISMISS _ERROR = exports . DISMISS _ERROR = 'DISMISS_ERROR' ;
/***/ } ) ,
/* 3 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . parseURI = parseURI ;
exports . buildURI = buildURI ;
exports . normalizeURI = normalizeURI ;
exports . isURIValid = isURIValid ;
exports . isNameValid = isNameValid ;
exports . isURIClaimable = isURIClaimable ;
2018-05-30 16:19:54 +02:00
exports . convertToShareLink = convertToShareLink ;
2018-05-15 06:18:50 +02:00
var channelNameMinLength = 1 ;
var claimIdMaxLength = 40 ;
var regexInvalidURI = exports . regexInvalidURI = /[^A-Za-z0-9-]/g ;
2019-03-18 06:13:12 +01:00
var regexAddress = exports . regexAddress = /^(b|r)(?=[^0OIl]{32,33})[0-9A-Za-z]{32,33}$/ ;
2018-05-15 06:18:50 +02:00
2019-02-18 17:24:18 +01:00
/ * *
* Parses a LBRY name into its component parts . Throws errors with user - friendly
* messages for invalid names .
*
* N . B . that "name" indicates the value in the name position of the URI . For
* claims for channel content , this will actually be the channel name , and
* the content name is in the path ( e . g . lbry : //@channel/content)
*
* In most situations , you ' ll want to use the contentName and channelName keys
* and ignore the name key .
*
* Returns a dictionary with keys :
* - name ( string ) : The value in the "name" position in the URI . Note that this
* could be either content name or channel name ; see above .
* - path ( string , if persent )
* - claimSequence ( int , if present )
* - bidPosition ( int , if present )
* - claimId ( string , if present )
* - isChannel ( boolean )
* - contentName ( string ) : For anon claims , the name ; for channel claims , the path
* - channelName ( string , if present ) : Channel name without @
2018-05-15 06:18:50 +02:00
* /
function parseURI ( URI ) {
var requireProto = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
// Break into components. Empty sub-matches are converted to null
var componentsRegex = new RegExp ( '^((?:lbry://)?)' + // protocol
'([^:$#/]*)' + // claim name (stops at the first separator or end)
'([:$#]?)([^/]*)' + // modifier separator, modifier (stops at the first path separator or end)
'(/?)(.*)' // path separator, path
) ;
var _componentsRegex$exec = componentsRegex . exec ( URI ) . slice ( 1 ) . map ( function ( match ) {
return match || null ;
} ) ,
_componentsRegex$exec2 = _slicedToArray ( _componentsRegex$exec , 6 ) ,
proto = _componentsRegex$exec2 [ 0 ] ,
claimName = _componentsRegex$exec2 [ 1 ] ,
modSep = _componentsRegex$exec2 [ 2 ] ,
modVal = _componentsRegex$exec2 [ 3 ] ,
pathSep = _componentsRegex$exec2 [ 4 ] ,
path = _componentsRegex$exec2 [ 5 ] ;
var contentName = void 0 ;
// Validate protocol
if ( requireProto && ! proto ) {
throw new Error ( _ _ ( 'LBRY URIs must include a protocol prefix (lbry://).' ) ) ;
}
// Validate and process name
if ( ! claimName ) {
throw new Error ( _ _ ( 'URI does not include name.' ) ) ;
}
var isChannel = claimName . startsWith ( '@' ) ;
var channelName = isChannel ? claimName . slice ( 1 ) : claimName ;
if ( isChannel ) {
if ( ! channelName ) {
throw new Error ( _ _ ( 'No channel name after @.' ) ) ;
}
if ( channelName . length < channelNameMinLength ) {
throw new Error ( _ _ ( 'Channel names must be at least %s characters.' , channelNameMinLength ) ) ;
}
contentName = path ;
}
var nameBadChars = ( channelName || claimName ) . match ( regexInvalidURI ) ;
if ( nameBadChars ) {
throw new Error ( _ _ ( 'Invalid character %s in name: %s.' , nameBadChars . length === 1 ? '' : 's' , nameBadChars . join ( ', ' ) ) ) ;
}
// Validate and process modifier (claim ID, bid position or claim sequence)
var claimId = void 0 ;
var claimSequence = void 0 ;
var bidPosition = void 0 ;
if ( modSep ) {
if ( ! modVal ) {
throw new Error ( _ _ ( 'No modifier provided after separator %s.' , modSep ) ) ;
}
if ( modSep === '#' ) {
claimId = modVal ;
} else if ( modSep === ':' ) {
claimSequence = modVal ;
} else if ( modSep === '$' ) {
bidPosition = modVal ;
}
}
2018-10-25 19:48:23 +02:00
if ( claimId && ( claimId . length > claimIdMaxLength || ! claimId . match ( /^[0-9a-f]+$/ ) ) ) {
throw new Error ( _ _ ( 'Invalid claim ID %s.' , claimId ) ) ;
}
2018-05-15 06:18:50 +02:00
if ( claimSequence && ! claimSequence . match ( /^-?[1-9][0-9]*$/ ) ) {
throw new Error ( _ _ ( 'Claim sequence must be a number.' ) ) ;
}
if ( bidPosition && ! bidPosition . match ( /^-?[1-9][0-9]*$/ ) ) {
throw new Error ( _ _ ( 'Bid position must be a number.' ) ) ;
}
// Validate and process path
if ( path ) {
if ( ! isChannel ) {
throw new Error ( _ _ ( 'Only channel URIs may have a path.' ) ) ;
}
var pathBadChars = path . match ( regexInvalidURI ) ;
if ( pathBadChars ) {
throw new Error ( _ _ ( 'Invalid character in path: %s' , pathBadChars . join ( ', ' ) ) ) ;
}
contentName = path ;
} else if ( pathSep ) {
throw new Error ( _ _ ( 'No path provided after /' ) ) ;
}
return _extends ( {
claimName : claimName ,
path : path ,
isChannel : isChannel
} , contentName ? { contentName : contentName } : { } , channelName ? { channelName : channelName } : { } , claimSequence ? { claimSequence : parseInt ( claimSequence , 10 ) } : { } , bidPosition ? { bidPosition : parseInt ( bidPosition , 10 ) } : { } , claimId ? { claimId : claimId } : { } , path ? { path : path } : { } ) ;
}
2019-02-18 17:24:18 +01:00
/ * *
* Takes an object in the same format returned by parse ( ) and builds a URI .
*
* The channelName key will accept names with or without the @ prefix .
2018-05-15 06:18:50 +02:00
* /
function buildURI ( URIObj ) {
var includeProto = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : true ;
2018-05-30 16:19:54 +02:00
var protoDefault = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : 'lbry://' ;
2018-05-15 06:18:50 +02:00
var claimId = URIObj . claimId ,
claimSequence = URIObj . claimSequence ,
bidPosition = URIObj . bidPosition ,
contentName = URIObj . contentName ,
channelName = URIObj . channelName ;
var claimName = URIObj . claimName ,
path = URIObj . path ;
if ( channelName ) {
var channelNameFormatted = channelName . startsWith ( '@' ) ? channelName : '@' + channelName ;
if ( ! claimName ) {
claimName = channelNameFormatted ;
} else if ( claimName !== channelNameFormatted ) {
throw new Error ( _ _ ( 'Received a channel content URI, but claim name and channelName do not match. "name" represents the value in the name position of the URI (lbry://name...), which for channel content will be the channel name. In most cases, to construct a channel URI you should just pass channelName and contentName.' ) ) ;
}
}
if ( contentName ) {
if ( ! claimName ) {
claimName = contentName ;
} else if ( ! path ) {
path = contentName ;
}
if ( path && path !== contentName ) {
throw new Error ( _ _ ( 'Path and contentName do not match. Only one is required; most likely you wanted contentName.' ) ) ;
}
}
2018-05-30 16:19:54 +02:00
return ( includeProto ? protoDefault : '' ) + claimName + ( claimId ? '#' + claimId : '' ) + ( claimSequence ? ':' + claimSequence : '' ) + ( bidPosition ? '' + bidPosition : '' ) + ( path ? '/' + path : '' ) ;
2018-05-15 06:18:50 +02:00
}
/* Takes a parseable LBRY URI and converts it to standard, canonical format */
function normalizeURI ( URI ) {
var _parseURI = parseURI ( URI ) ,
claimName = _parseURI . claimName ,
path = _parseURI . path ,
bidPosition = _parseURI . bidPosition ,
claimSequence = _parseURI . claimSequence ,
claimId = _parseURI . claimId ;
return buildURI ( { claimName : claimName , path : path , claimSequence : claimSequence , bidPosition : bidPosition , claimId : claimId } ) ;
}
function isURIValid ( URI ) {
var parts = void 0 ;
try {
parts = parseURI ( normalizeURI ( URI ) ) ;
} catch ( error ) {
return false ;
}
return parts && parts . claimName ;
}
function isNameValid ( claimName ) {
var checkCase = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : true ;
var regexp = new RegExp ( '^[a-z0-9-]+$' , checkCase ? '' : 'i' ) ;
return regexp . test ( claimName ) ;
}
function isURIClaimable ( URI ) {
var parts = void 0 ;
try {
parts = parseURI ( normalizeURI ( URI ) ) ;
} catch ( error ) {
return false ;
}
return parts && parts . claimName && ! parts . claimId && ! parts . bidPosition && ! parts . claimSequence && ! parts . isChannel && ! parts . path ;
}
2018-05-30 16:19:54 +02:00
function convertToShareLink ( URI ) {
2018-06-01 06:43:13 +02:00
var _parseURI2 = parseURI ( URI ) ,
claimName = _parseURI2 . claimName ,
path = _parseURI2 . path ,
bidPosition = _parseURI2 . bidPosition ,
claimSequence = _parseURI2 . claimSequence ,
claimId = _parseURI2 . claimId ;
return buildURI ( { claimName : claimName , path : path , claimSequence : claimSequence , bidPosition : bidPosition , claimId : claimId } , true , 'https://open.lbry.io/' ) ;
2018-05-30 16:19:54 +02:00
}
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2018-11-12 19:01:14 +01:00
/* 4 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-12 19:01:14 +01:00
exports . doToast = doToast ;
exports . doDismissToast = doDismissToast ;
exports . doError = doError ;
exports . doDismissError = doDismissError ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _v = _ _webpack _require _ _ ( 5 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _v2 = _interopRequireDefault ( _v ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
2018-05-15 06:18:50 +02:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-11-13 01:20:52 +01:00
// @flow
/*:: import type { ToastParams } from 'types/Notification';*/
2018-11-12 19:01:14 +01:00
function doToast ( params /*: ToastParams*/ ) {
if ( ! params ) {
throw Error ( "'params' object is required to create a toast notification" ) ;
}
return {
type : ACTIONS . CREATE _TOAST ,
data : {
id : ( 0 , _v2 . default ) ( ) ,
params : params
}
} ;
}
function doDismissToast ( ) {
2018-05-15 06:18:50 +02:00
return {
2018-11-12 19:01:14 +01:00
type : ACTIONS . DISMISS _TOAST
} ;
}
function doError ( error /*: string | {}*/ ) {
return {
type : ACTIONS . CREATE _ERROR ,
2018-05-15 06:18:50 +02:00
data : {
2018-11-12 19:01:14 +01:00
error : error
2018-05-15 06:18:50 +02:00
}
} ;
}
2018-11-12 19:01:14 +01:00
function doDismissError ( ) {
2018-05-15 06:18:50 +02:00
return {
2018-11-12 19:01:14 +01:00
type : ACTIONS . DISMISS _ERROR
2018-05-15 06:18:50 +02:00
} ;
}
/***/ } ) ,
2018-11-12 19:01:14 +01:00
/* 5 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
2018-11-12 19:01:14 +01:00
var rng = _ _webpack _require _ _ ( 6 ) ;
var bytesToUuid = _ _webpack _require _ _ ( 7 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
function v4 ( options , buf , offset ) {
var i = buf && offset || 0 ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
if ( typeof ( options ) == 'string' ) {
buf = options === 'binary' ? new Array ( 16 ) : null ;
options = null ;
}
options = options || { } ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var rnds = options . random || ( options . rng || rng ) ( ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
rnds [ 6 ] = ( rnds [ 6 ] & 0x0f ) | 0x40 ;
rnds [ 8 ] = ( rnds [ 8 ] & 0x3f ) | 0x80 ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
// Copy bytes to buffer, if provided
if ( buf ) {
for ( var ii = 0 ; ii < 16 ; ++ ii ) {
buf [ i + ii ] = rnds [ ii ] ;
}
}
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
return buf || bytesToUuid ( rnds ) ;
}
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
module . exports = v4 ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
/***/ } ) ,
/* 6 */
/***/ ( function ( module , exports ) {
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
// Unique ID creation requires a high quality random # generator. In the
// browser this is a little complicated due to unknown quality of Math.random()
// and inconsistent support for the `crypto` API. We do the best we can via
// feature-detection
2019-02-18 21:50:40 +01:00
// getRandomValues needs to be invoked in a context where "this" is a Crypto
// implementation. Also, find the complete implementation of crypto on IE11.
var getRandomValues = ( typeof ( crypto ) != 'undefined' && crypto . getRandomValues && crypto . getRandomValues . bind ( crypto ) ) ||
( typeof ( msCrypto ) != 'undefined' && typeof window . msCrypto . getRandomValues == 'function' && msCrypto . getRandomValues . bind ( msCrypto ) ) ;
2018-11-12 19:01:14 +01:00
if ( getRandomValues ) {
// WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
var rnds8 = new Uint8Array ( 16 ) ; // eslint-disable-line no-undef
module . exports = function whatwgRNG ( ) {
getRandomValues ( rnds8 ) ;
return rnds8 ;
} ;
} else {
// Math.random()-based (RNG)
//
// If all else fails, use Math.random(). It's fast, but is of unspecified
// quality.
var rnds = new Array ( 16 ) ;
module . exports = function mathRNG ( ) {
for ( var i = 0 , r ; i < 16 ; i ++ ) {
if ( ( i & 0x03 ) === 0 ) r = Math . random ( ) * 0x100000000 ;
rnds [ i ] = r >>> ( ( i & 0x03 ) << 3 ) & 0xff ;
}
return rnds ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
/***/ } ) ,
/* 7 */
/***/ ( function ( module , exports ) {
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
/ * *
* Convert array of 16 byte values to UUID string format of the form :
* XXXXXXXX - XXXX - XXXX - XXXX - XXXXXXXXXXXX
* /
var byteToHex = [ ] ;
for ( var i = 0 ; i < 256 ; ++ i ) {
byteToHex [ i ] = ( i + 0x100 ) . toString ( 16 ) . substr ( 1 ) ;
}
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
function bytesToUuid ( buf , offset ) {
var i = offset || 0 ;
var bth = byteToHex ;
2019-02-18 21:50:40 +01:00
// join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
return ( [ bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] ,
bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] , '-' ,
bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] , '-' ,
bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] , '-' ,
bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] , '-' ,
bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] ,
bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] ,
bth [ buf [ i ++ ] ] , bth [ buf [ i ++ ] ] ] ) . join ( '' ) ;
2018-11-12 19:01:14 +01:00
}
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
module . exports = bytesToUuid ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2018-11-12 19:01:14 +01:00
/* 8 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . doResolveUris = doResolveUris ;
exports . doResolveUri = doResolveUri ;
exports . doFetchClaimListMine = doFetchClaimListMine ;
exports . doAbandonClaim = doAbandonClaim ;
2018-05-25 13:34:12 +02:00
exports . doFetchClaimsByChannel = doFetchClaimsByChannel ;
exports . doFetchClaimCountByChannel = doFetchClaimCountByChannel ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-11-12 19:01:14 +01:00
var _lbry = _ _webpack _require _ _ ( 9 ) ;
2018-05-15 06:18:50 +02:00
var _lbry2 = _interopRequireDefault ( _lbry ) ;
2018-11-12 19:01:14 +01:00
var _lbryURI = _ _webpack _require _ _ ( 3 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _notifications = _ _webpack _require _ _ ( 4 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _claims = _ _webpack _require _ _ ( 12 ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _wallet = _ _webpack _require _ _ ( 19 ) ;
2018-11-08 17:22:08 +01:00
2018-05-15 06:18:50 +02:00
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
function doResolveUris ( uris ) {
2019-01-30 08:34:59 +01:00
var returnCachedClaims = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
2018-05-15 06:18:50 +02:00
return function ( dispatch , getState ) {
var normalizedUris = uris . map ( _lbryURI . normalizeURI ) ;
var state = getState ( ) ;
var resolvingUris = ( 0 , _claims . selectResolvingUris ) ( state ) ;
2019-01-30 08:34:59 +01:00
var claimsByUri = ( 0 , _claims . selectClaimsByUri ) ( state ) ;
2018-05-15 06:18:50 +02:00
var urisToResolve = normalizedUris . filter ( function ( uri ) {
2019-01-30 08:34:59 +01:00
if ( resolvingUris . includes ( uri ) ) {
return false ;
}
return returnCachedClaims ? ! claimsByUri [ uri ] : true ;
2018-05-15 06:18:50 +02:00
} ) ;
if ( urisToResolve . length === 0 ) {
return ;
}
dispatch ( {
type : ACTIONS . RESOLVE _URIS _STARTED ,
data : { uris : normalizedUris }
} ) ;
var resolveInfo = { } ;
2019-02-18 15:11:32 +01:00
_lbry2 . default . resolve ( { urls : urisToResolve } ) . then ( function ( result ) {
2018-05-15 06:18:50 +02:00
Object . entries ( result ) . forEach ( function ( _ref ) {
var _ref2 = _slicedToArray ( _ref , 2 ) ,
uri = _ref2 [ 0 ] ,
uriResolveInfo = _ref2 [ 1 ] ;
var fallbackResolveInfo = {
claim : null ,
claimsInChannel : null ,
certificate : null
} ;
var _ref3 = uriResolveInfo && ! uriResolveInfo . error ? uriResolveInfo : fallbackResolveInfo ,
claim = _ref3 . claim ,
certificate = _ref3 . certificate ,
claimsInChannel = _ref3 . claims _in _channel ;
resolveInfo [ uri ] = { claim : claim , certificate : certificate , claimsInChannel : claimsInChannel } ;
} ) ;
dispatch ( {
type : ACTIONS . RESOLVE _URIS _COMPLETED ,
data : { resolveInfo : resolveInfo }
} ) ;
} ) ;
} ;
}
function doResolveUri ( uri ) {
return doResolveUris ( [ uri ] ) ;
}
function doFetchClaimListMine ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . FETCH _CLAIM _LIST _MINE _STARTED
} ) ;
_lbry2 . default . claim _list _mine ( ) . then ( function ( claims ) {
dispatch ( {
type : ACTIONS . FETCH _CLAIM _LIST _MINE _COMPLETED ,
data : {
claims : claims
}
} ) ;
} ) ;
} ;
}
function doAbandonClaim ( txid , nout ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var myClaims = ( 0 , _claims . selectMyClaimsRaw ) ( state ) ;
var _myClaims$find = myClaims . find ( function ( claim ) {
return claim . txid === txid && claim . nout === nout ;
} ) ,
2018-11-07 02:02:34 +01:00
claimId = _myClaims$find . claim _id ;
2018-05-15 06:18:50 +02:00
dispatch ( {
type : ACTIONS . ABANDON _CLAIM _STARTED ,
data : {
claimId : claimId
}
} ) ;
var errorCallback = function errorCallback ( ) {
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
message : 'Transaction failed' ,
isError : true
2018-05-15 06:18:50 +02:00
} ) ) ;
} ;
var successCallback = function successCallback ( results ) {
2018-10-30 21:59:55 +01:00
if ( results . success === true ) {
2018-05-15 06:18:50 +02:00
dispatch ( {
type : ACTIONS . ABANDON _CLAIM _SUCCEEDED ,
data : {
claimId : claimId
}
} ) ;
2018-11-13 01:20:52 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
message : 'Successfully abandoned your claim'
2018-10-30 21:59:55 +01:00
} ) ) ;
2018-11-08 17:22:08 +01:00
// After abandoning, call claim_list_mine to show the claim as abandoned
// Also fetch transactions to show the new abandon transaction
2018-05-15 06:18:50 +02:00
dispatch ( doFetchClaimListMine ( ) ) ;
2018-11-08 17:22:08 +01:00
dispatch ( ( 0 , _wallet . doFetchTransactions ) ( ) ) ;
2018-05-15 06:18:50 +02:00
} else {
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-10-30 21:59:55 +01:00
message : 'Error abandoning claim' ,
2018-11-12 19:01:14 +01:00
isError : true
2018-05-15 06:18:50 +02:00
} ) ) ;
}
} ;
_lbry2 . default . claim _abandon ( {
txid : txid ,
nout : nout
} ) . then ( successCallback , errorCallback ) ;
} ;
}
2018-05-25 13:34:12 +02:00
function doFetchClaimsByChannel ( uri , page ) {
2018-05-27 22:30:07 +02:00
return function ( dispatch ) {
2018-05-25 13:34:12 +02:00
dispatch ( {
type : ACTIONS . FETCH _CHANNEL _CLAIMS _STARTED ,
data : { uri : uri , page : page }
} ) ;
_lbry2 . default . claim _list _by _channel ( { uri : uri , page : page || 1 } ) . then ( function ( result ) {
var claimResult = result [ uri ] || { } ;
var claimsInChannel = claimResult . claims _in _channel ,
returnedPage = claimResult . returned _page ;
dispatch ( {
type : ACTIONS . FETCH _CHANNEL _CLAIMS _COMPLETED ,
data : {
uri : uri ,
claims : claimsInChannel || [ ] ,
page : returnedPage || undefined
}
} ) ;
} ) ;
} ;
}
function doFetchClaimCountByChannel ( uri ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . FETCH _CHANNEL _CLAIM _COUNT _STARTED ,
data : { uri : uri }
} ) ;
_lbry2 . default . claim _list _by _channel ( { uri : uri } ) . then ( function ( result ) {
var claimResult = result [ uri ] ;
var totalClaims = claimResult ? claimResult . claims _in _channel : 0 ;
dispatch ( {
type : ACTIONS . FETCH _CHANNEL _CLAIM _COUNT _COMPLETED ,
data : {
uri : uri ,
totalClaims : totalClaims
}
} ) ;
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2018-11-12 19:01:14 +01:00
/* 9 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-12 19:01:14 +01:00
_ _webpack _require _ _ ( 10 ) ;
2018-05-15 06:18:50 +02:00
var CHECK _DAEMON _STARTED _TRY _NUMBER = 200 ; // @flow
var Lbry = {
isConnected : false ,
daemonConnectionString : 'http://localhost:5279' ,
pendingPublishTimeout : 20 * 60 * 1000
} ;
function checkAndParse ( response ) {
if ( response . status >= 200 && response . status < 300 ) {
return response . json ( ) ;
}
return response . json ( ) . then ( function ( json ) {
var error = void 0 ;
if ( json . error ) {
error = new Error ( json . error ) ;
} else {
error = new Error ( 'Protocol error with unknown response signature' ) ;
}
return Promise . reject ( error ) ;
} ) ;
}
function apiCall ( method /*: string*/ , params /*: ?{}*/ , resolve /*: Function*/ , reject /*: Function*/ ) {
var counter = new Date ( ) . getTime ( ) ;
var options = {
method : 'POST' ,
body : JSON . stringify ( {
jsonrpc : '2.0' ,
method : method ,
params : params ,
id : counter
} )
} ;
return fetch ( Lbry . daemonConnectionString , options ) . then ( checkAndParse ) . then ( function ( response ) {
var error = response . error || response . result && response . result . error ;
if ( error ) {
return reject ( error ) ;
}
return resolve ( response . result ) ;
} ) . catch ( reject ) ;
}
var daemonCallWithResult = function daemonCallWithResult ( name ) {
var params = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( name , params , function ( result ) {
resolve ( result ) ;
} , reject ) ;
} ) ;
} ;
2018-08-15 21:58:25 +02:00
// blobs
Lbry . blob _delete = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'blob_delete' , params ) ;
} ;
Lbry . blob _list = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'blob_list' , params ) ;
} ;
2018-05-15 06:18:50 +02:00
// core
Lbry . status = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'status' , params ) ;
} ;
Lbry . version = function ( ) {
return daemonCallWithResult ( 'version' , { } ) ;
} ;
Lbry . file _delete = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'file_delete' , params ) ;
} ;
Lbry . file _set _status = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'file_set_status' , params ) ;
} ;
2019-02-18 15:11:32 +01:00
Lbry . stop = function ( ) {
return daemonCallWithResult ( 'stop' , { } ) ;
} ;
2018-05-15 06:18:50 +02:00
2018-05-25 13:34:12 +02:00
// claims
Lbry . claim _list _by _channel = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'claim_list_by_channel' , params ) ;
} ;
2018-05-15 06:18:50 +02:00
// wallet
2018-10-25 18:57:55 +02:00
Lbry . account _balance = function ( ) {
2018-05-15 06:18:50 +02:00
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
2018-10-25 18:57:55 +02:00
return daemonCallWithResult ( 'account_balance' , params ) ;
2018-05-15 06:18:50 +02:00
} ;
2018-10-25 18:57:55 +02:00
Lbry . account _decrypt = function ( ) {
return daemonCallWithResult ( 'account_decrypt' , { } ) ;
2018-08-24 13:22:00 +02:00
} ;
2018-10-25 18:57:55 +02:00
Lbry . account _encrypt = function ( ) {
2018-08-24 13:22:00 +02:00
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
2018-10-25 18:57:55 +02:00
return daemonCallWithResult ( 'account_encrypt' , params ) ;
2018-08-24 13:22:00 +02:00
} ;
2019-02-22 08:02:20 +01:00
Lbry . account _list = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'account_list' , params ) ;
} ;
2018-10-25 18:57:55 +02:00
Lbry . address _is _mine = function ( ) {
2018-05-15 06:18:50 +02:00
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
2018-10-25 18:57:55 +02:00
return daemonCallWithResult ( 'address_is_mine' , params ) ;
2018-05-15 06:18:50 +02:00
} ;
2018-08-24 13:22:00 +02:00
Lbry . wallet _lock = function ( ) {
return daemonCallWithResult ( 'wallet_lock' , { } ) ;
} ;
2018-10-25 18:57:55 +02:00
Lbry . address _unused = function ( ) {
2018-05-15 06:18:50 +02:00
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
2018-10-25 18:57:55 +02:00
return daemonCallWithResult ( 'address_unused' , params ) ;
2018-05-15 06:18:50 +02:00
} ;
Lbry . wallet _send = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'wallet_send' , params ) ;
} ;
2018-10-25 18:57:55 +02:00
Lbry . account _unlock = function ( ) {
2018-05-15 06:18:50 +02:00
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
2018-10-25 18:57:55 +02:00
return daemonCallWithResult ( 'account_unlock' , params ) ;
} ;
Lbry . address _unused = function ( ) {
return daemonCallWithResult ( 'address_unused' , { } ) ;
2018-05-15 06:18:50 +02:00
} ;
2018-10-25 18:57:55 +02:00
Lbry . claim _tip = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'claim_tip' , params ) ;
2018-07-18 20:15:33 +02:00
} ;
2018-05-15 06:18:50 +02:00
// transactions
Lbry . transaction _list = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'transaction_list' , params ) ;
} ;
2019-02-18 21:50:40 +01:00
Lbry . utxo _release = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return daemonCallWithResult ( 'utxo_release' , params ) ;
} ;
2018-05-15 06:18:50 +02:00
Lbry . connectPromise = null ;
Lbry . connect = function ( ) {
if ( Lbry . connectPromise === null ) {
Lbry . connectPromise = new Promise ( function ( resolve , reject ) {
var tryNum = 0 ;
// Check every half second to see if the daemon is accepting connections
function checkDaemonStarted ( ) {
tryNum += 1 ;
Lbry . status ( ) . then ( resolve ) . catch ( function ( ) {
if ( tryNum <= CHECK _DAEMON _STARTED _TRY _NUMBER ) {
setTimeout ( checkDaemonStarted , tryNum < 50 ? 400 : 1000 ) ;
} else {
reject ( new Error ( 'Unable to connect to LBRY' ) ) ;
}
} ) ;
}
checkDaemonStarted ( ) ;
} ) ;
}
return Lbry . connectPromise ;
} ;
2018-07-09 06:56:32 +02:00
Lbry . getMediaType = function ( contentType , extname ) {
if ( extname ) {
var formats = [ [ /^(mp4|m4v|webm|flv|f4v|ogv)$/i , 'video' ] , [ /^(mp3|m4a|aac|wav|flac|ogg|opus)$/i , 'audio' ] , [ /^(html|htm|xml|pdf|odf|doc|docx|md|markdown|txt|epub|org)$/i , 'document' ] , [ /^(stl|obj|fbx|gcode)$/i , '3D-file' ] ] ;
2018-05-15 06:18:50 +02:00
var res = formats . reduce ( function ( ret , testpair ) {
switch ( testpair [ 0 ] . test ( ret ) ) {
case true :
return testpair [ 1 ] ;
default :
return ret ;
}
2018-07-09 06:56:32 +02:00
} , extname ) ;
return res === extname ? 'unknown' : res ;
} else if ( contentType ) {
return ( /^[^/]+/ . exec ( contentType ) [ 0 ]
) ;
2018-05-15 06:18:50 +02:00
}
return 'unknown' ;
} ;
/ * *
* Wrappers for API methods to simulate missing or future behavior . Unlike the old - style stubs ,
* these are designed to be transparent wrappers around the corresponding API methods .
* /
/ * *
* Returns results from the file _list API method , plus dummy entries for pending publishes .
* ( If a real publish with the same name is found , the pending publish will be ignored and removed . )
* /
Lbry . file _list = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'file_list' , params , function ( fileInfos ) {
resolve ( fileInfos ) ;
} , reject ) ;
} ) ;
} ;
Lbry . claim _list _mine = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'claim_list_mine' , params , function ( claims ) {
resolve ( claims ) ;
} , reject ) ;
} ) ;
} ;
Lbry . get = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'get' , params , function ( streamInfo ) {
resolve ( streamInfo ) ;
} , reject ) ;
} ) ;
} ;
Lbry . resolve = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( 'resolve' , params , function ( data ) {
2019-02-18 15:11:32 +01:00
resolve ( data || { } ) ;
2018-05-15 06:18:50 +02:00
} , reject ) ;
} ) ;
} ;
2019-02-22 08:02:20 +01:00
Lbry . publish = function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
if ( Lbry . overrides . publish ) {
Lbry . overrides . publish ( params ) . then ( resolve , reject ) ;
} else {
apiCall ( 'publish' , params , resolve , reject ) ;
}
} ) ;
} ;
// Allow overriding Lbry methods
Lbry . overrides = { } ;
Lbry . setOverride = function ( methodName , newMethod ) {
Lbry . overrides [ methodName ] = newMethod ;
} ;
// Allow overriding daemon connection string (e.g. to `/api/proxy` for lbryweb)
Lbry . setDaemonConnectionString = function ( value ) {
Lbry . daemonConnectionString = value ;
} ;
2018-05-15 06:18:50 +02:00
var lbryProxy = new Proxy ( Lbry , {
get : function get ( target , name ) {
if ( name in target ) {
return target [ name ] ;
}
return function ( ) {
var params = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : { } ;
return new Promise ( function ( resolve , reject ) {
apiCall ( name , params , resolve , reject ) ;
} ) ;
} ;
}
} ) ;
exports . default = lbryProxy ;
/***/ } ) ,
2018-11-12 19:01:14 +01:00
/* 10 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
/* WEBPACK VAR INJECTION */ ( function ( global ) { / *
* Copyright 2016 Google Inc . All rights reserved .
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ; you may not
* use this file except in compliance with the License . You may obtain a copy of
* the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an "AS IS" BASIS , WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied . See the
* License for the specific language governing permissions and limitations under
* the License .
* /
( function ( scope ) {
if ( scope [ 'Proxy' ] ) {
return ;
}
let lastRevokeFn = null ;
/ * *
* @ param { * } o
* @ return { boolean } whether this is probably a ( non - null ) Object
* /
function isObject ( o ) {
return o ? ( typeof o == 'object' || typeof o == 'function' ) : false ;
}
/ * *
* @ constructor
* @ param { ! Object } target
* @ param { { apply , construct , get , set } } handler
* /
scope . Proxy = function ( target , handler ) {
if ( ! isObject ( target ) || ! isObject ( handler ) ) {
throw new TypeError ( 'Cannot create proxy with a non-object as target or handler' ) ;
}
// Construct revoke function, and set lastRevokeFn so that Proxy.revocable can steal it.
// The caller might get the wrong revoke function if a user replaces or wraps scope.Proxy
// to call itself, but that seems unlikely especially when using the polyfill.
let throwRevoked = function ( ) { } ;
lastRevokeFn = function ( ) {
throwRevoked = function ( trap ) {
throw new TypeError ( ` Cannot perform ' ${ trap } ' on a proxy that has been revoked ` ) ;
} ;
} ;
// Fail on unsupported traps: Chrome doesn't do this, but ensure that users of the polyfill
// are a bit more careful. Copy the internal parts of handler to prevent user changes.
let unsafeHandler = handler ;
handler = { 'get' : null , 'set' : null , 'apply' : null , 'construct' : null } ;
for ( let k in unsafeHandler ) {
if ( ! ( k in handler ) ) {
throw new TypeError ( ` Proxy polyfill does not support trap ' ${ k } ' ` ) ;
}
handler [ k ] = unsafeHandler [ k ] ;
}
if ( typeof unsafeHandler == 'function' ) {
// Allow handler to be a function (which has an 'apply' method). This matches what is
// probably a bug in native versions. It treats the apply call as a trap to be configured.
handler . apply = unsafeHandler . apply . bind ( unsafeHandler ) ;
}
// Define proxy as this, or a Function (if either it's callable, or apply is set).
// TODO(samthor): Closure compiler doesn't know about 'construct', attempts to rename it.
let proxy = this ;
let isMethod = false ;
let targetIsFunction = typeof target == 'function' ;
if ( handler . apply || handler [ 'construct' ] || targetIsFunction ) {
proxy = function Proxy ( ) {
let usingNew = ( this && this . constructor === proxy ) ;
throwRevoked ( usingNew ? 'construct' : 'apply' ) ;
if ( usingNew && handler [ 'construct' ] ) {
return handler [ 'construct' ] . call ( this , target , arguments ) ;
} else if ( ! usingNew && handler . apply ) {
return handler . apply ( target , this , arguments ) ;
} else if ( targetIsFunction ) {
// since the target was a function, fallback to calling it directly.
if ( usingNew ) {
// inspired by answers to https://stackoverflow.com/q/1606797
let all = Array . prototype . slice . call ( arguments ) ;
all . unshift ( target ) ; // pass class as first arg to constructor, although irrelevant
// nb. cast to convince Closure compiler that this is a constructor
let f = /** @type {!Function} */ ( target . bind . apply ( target , all ) ) ;
return new f ( ) ;
}
return target . apply ( this , arguments ) ;
}
throw new TypeError ( usingNew ? 'not a constructor' : 'not a function' ) ;
} ;
isMethod = true ;
}
// Create default getters/setters. Create different code paths as handler.get/handler.set can't
// change after creation.
let getter = handler . get ? function ( prop ) {
throwRevoked ( 'get' ) ;
return handler . get ( this , prop , proxy ) ;
} : function ( prop ) {
throwRevoked ( 'get' ) ;
return this [ prop ] ;
} ;
let setter = handler . set ? function ( prop , value ) {
throwRevoked ( 'set' ) ;
let status = handler . set ( this , prop , value , proxy ) ;
if ( ! status ) {
// TODO(samthor): If the calling code is in strict mode, throw TypeError.
// It's (sometimes) possible to work this out, if this code isn't strict- try to load the
// callee, and if it's available, that code is non-strict. However, this isn't exhaustive.
}
} : function ( prop , value ) {
throwRevoked ( 'set' ) ;
this [ prop ] = value ;
} ;
// Clone direct properties (i.e., not part of a prototype).
let propertyNames = Object . getOwnPropertyNames ( target ) ;
let propertyMap = { } ;
propertyNames . forEach ( function ( prop ) {
if ( isMethod && prop in proxy ) {
return ; // ignore properties already here, e.g. 'bind', 'prototype' etc
}
let real = Object . getOwnPropertyDescriptor ( target , prop ) ;
let desc = {
enumerable : ! ! real . enumerable ,
get : getter . bind ( target , prop ) ,
set : setter . bind ( target , prop ) ,
} ;
Object . defineProperty ( proxy , prop , desc ) ;
propertyMap [ prop ] = true ;
} ) ;
// Set the prototype, or clone all prototype methods (always required if a getter is provided).
// TODO(samthor): We don't allow prototype methods to be set. It's (even more) awkward.
// An alternative here would be to _just_ clone methods to keep behavior consistent.
let prototypeOk = true ;
if ( Object . setPrototypeOf ) {
Object . setPrototypeOf ( proxy , Object . getPrototypeOf ( target ) ) ;
} else if ( proxy . _ _proto _ _ ) {
proxy . _ _proto _ _ = target . _ _proto _ _ ;
} else {
prototypeOk = false ;
}
if ( handler . get || ! prototypeOk ) {
for ( let k in target ) {
if ( propertyMap [ k ] ) {
continue ;
}
Object . defineProperty ( proxy , k , { get : getter . bind ( target , k ) } ) ;
}
}
// The Proxy polyfill cannot handle adding new properties. Seal the target and proxy.
Object . seal ( target ) ;
Object . seal ( proxy ) ;
return proxy ; // nb. if isMethod is true, proxy != this
} ;
scope . Proxy . revocable = function ( target , handler ) {
let p = new scope . Proxy ( target , handler ) ;
return { 'proxy' : p , 'revoke' : lastRevokeFn } ;
} ;
scope . Proxy [ 'revocable' ] = scope . Proxy . revocable ;
scope [ 'Proxy' ] = scope . Proxy ;
} ) ( typeof module !== 'undefined' && module [ 'exports' ] ? global : window ) ;
2018-11-12 19:01:14 +01:00
/* WEBPACK VAR INJECTION */ } . call ( this , _ _webpack _require _ _ ( 11 ) ) )
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2018-11-12 19:01:14 +01:00
/* 11 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports ) {
2018-11-07 16:55:44 +01:00
var g ;
// This works in non-strict mode
g = ( function ( ) {
return this ;
} ) ( ) ;
try {
// This works if eval is allowed (see CSP)
g = g || Function ( "return this" ) ( ) || ( 1 , eval ) ( "this" ) ;
} catch ( e ) {
// This works if the window reference is available
if ( typeof window === "object" ) g = window ;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module . exports = g ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2018-11-12 19:01:14 +01:00
/* 12 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2019-03-11 03:03:28 +01:00
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2019-03-11 03:03:28 +01:00
exports . makeSelectChannelForClaimUri = exports . makeSelectFirstRecommendedFileForUri = exports . makeSelectRecommendedContentForUri = exports . makeSelectNsfwCountForChannel = exports . makeSelectNsfwCountFromUris = exports . makeSelectTotalPagesForChannel = exports . makeSelectTotalItemsForChannel = exports . selectChannelClaimCounts = exports . selectPlayingUri = exports . makeSelectIsUriResolving = exports . selectResolvingUris = exports . selectMyChannelClaims = exports . selectFetchingMyChannels = exports . selectMyClaimsOutpoints = exports . selectAllMyClaimsByOutpoint = exports . selectMyClaimsWithoutChannels = exports . selectMyClaims = exports . selectIsFetchingClaimListMine = exports . makeSelectContentTypeForUri = exports . makeSelectTitleForUri = exports . makeSelectMetadataForUri = exports . makeSelectClaimsInChannelForCurrentPageState = exports . makeSelectClaimsInChannelForCurrentPage = exports . makeSelectClaimsInChannelForPage = exports . makeSelectFetchingChannelClaims = exports . selectAllFetchingChannelClaims = exports . makeSelectClaimIsMine = exports . selectMyActiveClaims = exports . selectAbandoningIds = exports . selectMyClaimsRaw = exports . makeSelectClaimForUri = exports . makeSelectPendingByUri = exports . makeSelectClaimIsPending = exports . selectPendingClaims = exports . selectPendingById = exports . selectAllClaimsByChannel = exports . selectClaimsByUri = exports . selectCurrentChannelPage = exports . selectClaimsById = undefined ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _lbryURI = _ _webpack _require _ _ ( 3 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _navigation = _ _webpack _require _ _ ( 13 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _search = _ _webpack _require _ _ ( 17 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _reselect = _ _webpack _require _ _ ( 14 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _claim = _ _webpack _require _ _ ( 18 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _query _params = _ _webpack _require _ _ ( 15 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
function _toConsumableArray ( arr ) { if ( Array . isArray ( arr ) ) { for ( var i = 0 , arr2 = Array ( arr . length ) ; i < arr . length ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; } else { return Array . from ( arr ) ; } }
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectState = function selectState ( state ) {
return state . claims || { } ;
2018-05-15 06:18:50 +02:00
} ;
2019-03-11 03:03:28 +01:00
var selectClaimsById = exports . selectClaimsById = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . byId || { } ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectCurrentChannelPage = exports . selectCurrentChannelPage = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . currentChannelPage || 1 ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectClaimsByUri = exports . selectClaimsByUri = ( 0 , _reselect . createSelector ) ( selectState , selectClaimsById , function ( state , byId ) {
var byUri = state . claimsByUri || { } ;
var claims = { } ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
Object . keys ( byUri ) . forEach ( function ( uri ) {
var claimId = byUri [ uri ] ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
// NOTE returning a null claim allows us to differentiate between an
// undefined (never fetched claim) and one which just doesn't exist. Not
// the cleanest solution but couldn't think of anything better right now
if ( claimId === null ) {
claims [ uri ] = null ;
} else {
claims [ uri ] = byId [ claimId ] ;
}
2018-05-15 06:18:50 +02:00
} ) ;
2019-03-11 03:03:28 +01:00
return claims ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectAllClaimsByChannel = exports . selectAllClaimsByChannel = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . claimsByChannel || { } ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectPendingById = exports . selectPendingById = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . pendingById || { } ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectPendingClaims = exports . selectPendingClaims = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return Object . values ( state . pendingById || [ ] ) ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var makeSelectClaimIsPending = exports . makeSelectClaimIsPending = function makeSelectClaimIsPending ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectPendingById , function ( pendingById ) {
var _parseURI = ( 0 , _lbryURI . parseURI ) ( uri ) ,
claimId = _parseURI . claimId ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
return Boolean ( pendingById [ claimId ] ) ;
} ) ;
} ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var makeSelectPendingByUri = exports . makeSelectPendingByUri = function makeSelectPendingByUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectPendingById , function ( pendingById ) {
var _parseURI2 = ( 0 , _lbryURI . parseURI ) ( uri ) ,
claimId = _parseURI2 . claimId ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
return pendingById [ claimId ] ;
} ) ;
} ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var makeSelectClaimForUri = exports . makeSelectClaimForUri = function makeSelectClaimForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectClaimsByUri , selectPendingById , function ( byUri , pendingById ) {
// Check if a claim is pending first
// It won't be in claimsByUri because resolving it will return nothing
var _parseURI3 = ( 0 , _lbryURI . parseURI ) ( uri ) ,
claimId = _parseURI3 . claimId ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var pendingClaim = pendingById [ claimId ] ;
if ( pendingClaim ) {
return pendingClaim ;
2018-05-15 06:18:50 +02:00
}
2019-03-11 03:03:28 +01:00
return byUri && byUri [ ( 0 , _lbryURI . normalizeURI ) ( uri ) ] ;
} ) ;
2018-05-15 06:18:50 +02:00
} ;
2019-03-11 03:03:28 +01:00
var selectMyClaimsRaw = exports . selectMyClaimsRaw = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . myClaims ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectAbandoningIds = exports . selectAbandoningIds = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return Object . keys ( state . abandoningById || { } ) ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var selectMyActiveClaims = exports . selectMyActiveClaims = ( 0 , _reselect . createSelector ) ( selectMyClaimsRaw , selectAbandoningIds , function ( claims , abandoningIds ) {
return new Set ( claims && claims . map ( function ( claim ) {
return claim . claim _id ;
} ) . filter ( function ( claimId ) {
return Object . keys ( abandoningIds ) . indexOf ( claimId ) === - 1 ;
} ) ) ;
} ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var makeSelectClaimIsMine = exports . makeSelectClaimIsMine = function makeSelectClaimIsMine ( rawUri ) {
var uri = ( 0 , _lbryURI . normalizeURI ) ( rawUri ) ;
return ( 0 , _reselect . createSelector ) ( selectClaimsByUri , selectMyActiveClaims , function ( claims , myClaims ) {
return claims && claims [ uri ] && claims [ uri ] . claim _id && myClaims . has ( claims [ uri ] . claim _id ) ;
} ) ;
2018-05-15 06:18:50 +02:00
} ;
2019-03-11 03:03:28 +01:00
var selectAllFetchingChannelClaims = exports . selectAllFetchingChannelClaims = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetchingChannelClaims || { } ;
} ) ;
2018-05-15 06:18:50 +02:00
var makeSelectFetchingChannelClaims = exports . makeSelectFetchingChannelClaims = function makeSelectFetchingChannelClaims ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectAllFetchingChannelClaims , function ( fetching ) {
return fetching && fetching [ uri ] ;
} ) ;
} ;
2018-05-25 13:34:12 +02:00
var makeSelectClaimsInChannelForPage = exports . makeSelectClaimsInChannelForPage = function makeSelectClaimsInChannelForPage ( uri , page ) {
return ( 0 , _reselect . createSelector ) ( selectClaimsById , selectAllClaimsByChannel , function ( byId , allClaims ) {
var byChannel = allClaims [ uri ] || { } ;
var claimIds = byChannel [ page || 1 ] ;
if ( ! claimIds ) return claimIds ;
return claimIds . map ( function ( claimId ) {
return byId [ claimId ] ;
} ) ;
} ) ;
} ;
2018-05-15 06:18:50 +02:00
var makeSelectClaimsInChannelForCurrentPage = exports . makeSelectClaimsInChannelForCurrentPage = function makeSelectClaimsInChannelForCurrentPage ( uri ) {
var pageSelector = ( 0 , _navigation . makeSelectCurrentParam ) ( 'page' ) ;
return ( 0 , _reselect . createSelector ) ( selectClaimsById , selectAllClaimsByChannel , pageSelector , function ( byId , allClaims , page ) {
var byChannel = allClaims [ uri ] || { } ;
var claimIds = byChannel [ page || 1 ] ;
if ( ! claimIds ) return claimIds ;
return claimIds . map ( function ( claimId ) {
return byId [ claimId ] ;
} ) ;
} ) ;
} ;
2019-02-19 02:30:10 +01:00
var makeSelectClaimsInChannelForCurrentPageState = exports . makeSelectClaimsInChannelForCurrentPageState = function makeSelectClaimsInChannelForCurrentPageState ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectClaimsById , selectAllClaimsByChannel , selectCurrentChannelPage , function ( byId , allClaims , page ) {
var byChannel = allClaims [ uri ] || { } ;
var claimIds = byChannel [ page || 1 ] ;
if ( ! claimIds ) return claimIds ;
return claimIds . map ( function ( claimId ) {
return byId [ claimId ] ;
} ) ;
} ) ;
} ;
2018-05-15 06:18:50 +02:00
var makeSelectMetadataForUri = exports . makeSelectMetadataForUri = function makeSelectMetadataForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectClaimForUri ( uri ) , function ( claim ) {
var metadata = claim && claim . value && claim . value . stream && claim . value . stream . metadata ;
return metadata || ( claim === undefined ? undefined : null ) ;
} ) ;
} ;
var makeSelectTitleForUri = exports . makeSelectTitleForUri = function makeSelectTitleForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectMetadataForUri ( uri ) , function ( metadata ) {
return metadata && metadata . title ;
} ) ;
} ;
var makeSelectContentTypeForUri = exports . makeSelectContentTypeForUri = function makeSelectContentTypeForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectClaimForUri ( uri ) , function ( claim ) {
var source = claim && claim . value && claim . value . stream && claim . value . stream . source ;
return source ? source . contentType : undefined ;
} ) ;
} ;
var selectIsFetchingClaimListMine = exports . selectIsFetchingClaimListMine = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . isFetchingClaimListMine ;
} ) ;
var selectMyClaims = exports . selectMyClaims = ( 0 , _reselect . createSelector ) ( selectMyActiveClaims , selectClaimsById , selectAbandoningIds , selectPendingClaims , function ( myClaimIds , byId , abandoningIds , pendingClaims ) {
var claims = [ ] ;
myClaimIds . forEach ( function ( id ) {
var claim = byId [ id ] ;
if ( claim && abandoningIds . indexOf ( id ) === - 1 ) claims . push ( claim ) ;
} ) ;
return [ ] . concat ( claims , _toConsumableArray ( pendingClaims ) ) ;
} ) ;
var selectMyClaimsWithoutChannels = exports . selectMyClaimsWithoutChannels = ( 0 , _reselect . createSelector ) ( selectMyClaims , function ( myClaims ) {
return myClaims . filter ( function ( claim ) {
return ! claim . name . match ( /^@/ ) ;
} ) ;
} ) ;
var selectAllMyClaimsByOutpoint = exports . selectAllMyClaimsByOutpoint = ( 0 , _reselect . createSelector ) ( selectMyClaimsRaw , function ( claims ) {
return new Set ( claims && claims . length ? claims . map ( function ( claim ) {
return claim . txid + ':' + claim . nout ;
} ) : null ) ;
} ) ;
var selectMyClaimsOutpoints = exports . selectMyClaimsOutpoints = ( 0 , _reselect . createSelector ) ( selectMyClaims , function ( myClaims ) {
var outpoints = [ ] ;
myClaims . forEach ( function ( claim ) {
return outpoints . push ( claim . txid + ':' + claim . nout ) ;
} ) ;
return outpoints ;
} ) ;
var selectFetchingMyChannels = exports . selectFetchingMyChannels = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetchingMyChannels ;
} ) ;
var selectMyChannelClaims = exports . selectMyChannelClaims = ( 0 , _reselect . createSelector ) ( selectState , selectClaimsById , function ( state , byId ) {
var ids = state . myChannelClaims || [ ] ;
var claims = [ ] ;
ids . forEach ( function ( id ) {
if ( byId [ id ] ) {
2018-07-17 18:52:23 +02:00
// I'm not sure why this check is necessary, but it ought to be a quick fix for https://github.com/lbryio/lbry-desktop/issues/544
2018-05-15 06:18:50 +02:00
claims . push ( byId [ id ] ) ;
}
} ) ;
return claims ;
} ) ;
var selectResolvingUris = exports . selectResolvingUris = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . resolvingUris || [ ] ;
} ) ;
var makeSelectIsUriResolving = exports . makeSelectIsUriResolving = function makeSelectIsUriResolving ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectResolvingUris , function ( resolvingUris ) {
return resolvingUris && resolvingUris . indexOf ( uri ) !== - 1 ;
} ) ;
} ;
var selectPlayingUri = exports . selectPlayingUri = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . playingUri ;
} ) ;
var selectChannelClaimCounts = exports . selectChannelClaimCounts = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . channelClaimCounts || { } ;
} ) ;
var makeSelectTotalItemsForChannel = exports . makeSelectTotalItemsForChannel = function makeSelectTotalItemsForChannel ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectChannelClaimCounts , function ( byUri ) {
return byUri && byUri [ uri ] ;
} ) ;
} ;
var makeSelectTotalPagesForChannel = exports . makeSelectTotalPagesForChannel = function makeSelectTotalPagesForChannel ( uri ) {
2018-11-03 03:05:22 +01:00
var pageSize = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : 10 ;
2018-05-15 06:18:50 +02:00
return ( 0 , _reselect . createSelector ) ( selectChannelClaimCounts , function ( byUri ) {
2018-11-03 03:05:22 +01:00
return byUri && byUri [ uri ] && Math . ceil ( byUri [ uri ] / pageSize ) ;
2018-05-15 06:18:50 +02:00
} ) ;
} ;
2018-07-11 01:15:39 +02:00
var makeSelectNsfwCountFromUris = exports . makeSelectNsfwCountFromUris = function makeSelectNsfwCountFromUris ( uris ) {
return ( 0 , _reselect . createSelector ) ( selectClaimsByUri , function ( claims ) {
return uris . reduce ( function ( acc , uri ) {
var claim = claims [ uri ] ;
if ( ( 0 , _claim . isClaimNsfw ) ( claim ) ) {
return acc + 1 ;
}
return acc ;
} , 0 ) ;
} ) ;
} ;
var makeSelectNsfwCountForChannel = exports . makeSelectNsfwCountForChannel = function makeSelectNsfwCountForChannel ( uri ) {
var pageSelector = ( 0 , _navigation . makeSelectCurrentParam ) ( 'page' ) ;
return ( 0 , _reselect . createSelector ) ( selectClaimsById , selectAllClaimsByChannel , pageSelector , function ( byId , allClaims , page ) {
var byChannel = allClaims [ uri ] || { } ;
var claimIds = byChannel [ page || 1 ] ;
if ( ! claimIds ) return 0 ;
return claimIds . reduce ( function ( acc , claimId ) {
var claim = byId [ claimId ] ;
if ( ( 0 , _claim . isClaimNsfw ) ( claim ) ) {
return acc + 1 ;
}
return acc ;
} , 0 ) ;
} ) ;
} ;
2018-08-02 05:31:51 +02:00
var makeSelectRecommendedContentForUri = exports . makeSelectRecommendedContentForUri = function makeSelectRecommendedContentForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectClaimForUri ( uri ) , _search . selectSearchUrisByQuery , function ( claim , searchUrisByQuery ) {
2018-08-27 04:43:25 +02:00
var atVanityURI = ! uri . includes ( '#' ) ;
2018-08-02 05:31:51 +02:00
2018-08-27 04:43:25 +02:00
var recommendedContent = void 0 ;
2018-08-02 05:31:51 +02:00
if ( claim ) {
2018-11-14 18:41:50 +01:00
// If we are at a vanity uri, build the full uri so we can properly filter
var currentUri = atVanityURI ? ( 0 , _lbryURI . buildURI ) ( { claimId : claim . claim _id , claimName : claim . name } ) : uri ;
2018-08-02 05:31:51 +02:00
var title = claim . value . stream . metadata . title ;
2018-11-14 18:41:50 +01:00
2019-02-18 17:24:18 +01:00
var searchQuery = ( 0 , _query _params . getSearchQueryString ) ( title . replace ( /\// , ' ' ) ) ;
var searchUris = searchUrisByQuery [ searchQuery ] ;
2018-08-02 05:31:51 +02:00
if ( searchUris ) {
searchUris = searchUris . filter ( function ( searchUri ) {
2018-11-14 18:41:50 +01:00
return searchUri !== currentUri ;
2018-08-02 05:31:51 +02:00
} ) ;
recommendedContent = searchUris ;
}
}
return recommendedContent ;
} ) ;
} ;
2019-01-28 20:38:28 +01:00
var makeSelectFirstRecommendedFileForUri = exports . makeSelectFirstRecommendedFileForUri = function makeSelectFirstRecommendedFileForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( makeSelectRecommendedContentForUri ( uri ) , function ( recommendedContent ) {
return recommendedContent ? recommendedContent [ 0 ] : null ;
} ) ;
} ;
2018-10-18 19:46:31 +02:00
// Returns the associated channel uri for a given claim uri
var makeSelectChannelForClaimUri = exports . makeSelectChannelForClaimUri = function makeSelectChannelForClaimUri ( uri ) {
var includePrefix = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : false ;
return ( 0 , _reselect . createSelector ) ( makeSelectClaimForUri ( uri ) , function ( claim ) {
if ( ! claim ) {
return null ;
}
var channelName = claim . channel _name ,
value = claim . value ;
var channelClaimId = value && value . publisherSignature && value . publisherSignature . certificateId ;
return channelName && channelClaimId ? ( 0 , _lbryURI . buildURI ) ( { channelName : channelName , claimId : channelClaimId } , includePrefix ) : null ;
} ) ;
} ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-11 03:03:28 +01:00
/* 13 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-09-04 19:23:29 +02:00
exports . selectPageTitle = exports . selectActiveHistoryEntry = exports . selectHistoryStack = exports . selectHistoryIndex = exports . selectIsHome = exports . selectIsForwardDisabled = exports . selectIsBackDisabled = exports . selectPathAfterAuth = exports . makeSelectCurrentParam = exports . selectCurrentParams = exports . selectCurrentPage = exports . computePageFromPath = exports . selectCurrentPath = exports . selectState = undefined ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _reselect = _ _webpack _require _ _ ( 14 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _query _params = _ _webpack _require _ _ ( 15 ) ;
2018-05-15 06:18:50 +02:00
var selectState = exports . selectState = function selectState ( state ) {
return state . navigation || { } ;
} ;
var selectCurrentPath = exports . selectCurrentPath = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . currentPath ;
} ) ;
var computePageFromPath = exports . computePageFromPath = function computePageFromPath ( path ) {
2019-02-19 02:30:10 +01:00
return path ? path . replace ( /^\// , '' ) . split ( '?' ) [ 0 ] : '' ;
2018-05-15 06:18:50 +02:00
} ;
var selectCurrentPage = exports . selectCurrentPage = ( 0 , _reselect . createSelector ) ( selectCurrentPath , function ( path ) {
return computePageFromPath ( path ) ;
} ) ;
var selectCurrentParams = exports . selectCurrentParams = ( 0 , _reselect . createSelector ) ( selectCurrentPath , function ( path ) {
if ( path === undefined ) return { } ;
if ( ! path . match ( /\?/ ) ) return { } ;
return ( 0 , _query _params . parseQueryParams ) ( path . split ( '?' ) [ 1 ] ) ;
} ) ;
var makeSelectCurrentParam = exports . makeSelectCurrentParam = function makeSelectCurrentParam ( param ) {
return ( 0 , _reselect . createSelector ) ( selectCurrentParams , function ( params ) {
return params ? params [ param ] : undefined ;
} ) ;
} ;
var selectPathAfterAuth = exports . selectPathAfterAuth = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . pathAfterAuth ;
} ) ;
var selectIsBackDisabled = exports . selectIsBackDisabled = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . index === 0 ;
} ) ;
var selectIsForwardDisabled = exports . selectIsForwardDisabled = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . index === state . stack . length - 1 ;
} ) ;
var selectIsHome = exports . selectIsHome = ( 0 , _reselect . createSelector ) ( selectCurrentPage , function ( page ) {
return page === 'discover' ;
} ) ;
var selectHistoryIndex = exports . selectHistoryIndex = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . index ;
} ) ;
var selectHistoryStack = exports . selectHistoryStack = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . stack ;
} ) ;
// returns current page attributes (scrollY, path)
var selectActiveHistoryEntry = exports . selectActiveHistoryEntry = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . stack [ state . index ] ;
} ) ;
var selectPageTitle = exports . selectPageTitle = ( 0 , _reselect . createSelector ) ( selectCurrentPage , function ( page ) {
switch ( page ) {
default :
return '' ;
}
} ) ;
/***/ } ) ,
2019-03-11 03:03:28 +01:00
/* 14 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
exports . _ _esModule = true ;
exports . defaultMemoize = defaultMemoize ;
exports . createSelectorCreator = createSelectorCreator ;
exports . createStructuredSelector = createStructuredSelector ;
function defaultEqualityCheck ( a , b ) {
return a === b ;
}
function areArgumentsShallowlyEqual ( equalityCheck , prev , next ) {
if ( prev === null || next === null || prev . length !== next . length ) {
return false ;
}
// Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
var length = prev . length ;
for ( var i = 0 ; i < length ; i ++ ) {
if ( ! equalityCheck ( prev [ i ] , next [ i ] ) ) {
return false ;
}
}
return true ;
}
function defaultMemoize ( func ) {
var equalityCheck = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : defaultEqualityCheck ;
var lastArgs = null ;
var lastResult = null ;
// we reference arguments instead of spreading them for performance reasons
return function ( ) {
if ( ! areArgumentsShallowlyEqual ( equalityCheck , lastArgs , arguments ) ) {
// apply arguments instead of spreading for performance.
lastResult = func . apply ( null , arguments ) ;
}
lastArgs = arguments ;
return lastResult ;
} ;
}
function getDependencies ( funcs ) {
var dependencies = Array . isArray ( funcs [ 0 ] ) ? funcs [ 0 ] : funcs ;
if ( ! dependencies . every ( function ( dep ) {
return typeof dep === 'function' ;
} ) ) {
var dependencyTypes = dependencies . map ( function ( dep ) {
return typeof dep ;
} ) . join ( ', ' ) ;
throw new Error ( 'Selector creators expect all input-selectors to be functions, ' + ( 'instead received the following types: [' + dependencyTypes + ']' ) ) ;
}
return dependencies ;
}
function createSelectorCreator ( memoize ) {
for ( var _len = arguments . length , memoizeOptions = Array ( _len > 1 ? _len - 1 : 0 ) , _key = 1 ; _key < _len ; _key ++ ) {
memoizeOptions [ _key - 1 ] = arguments [ _key ] ;
}
return function ( ) {
for ( var _len2 = arguments . length , funcs = Array ( _len2 ) , _key2 = 0 ; _key2 < _len2 ; _key2 ++ ) {
funcs [ _key2 ] = arguments [ _key2 ] ;
}
var recomputations = 0 ;
var resultFunc = funcs . pop ( ) ;
var dependencies = getDependencies ( funcs ) ;
var memoizedResultFunc = memoize . apply ( undefined , [ function ( ) {
recomputations ++ ;
// apply arguments instead of spreading for performance.
return resultFunc . apply ( null , arguments ) ;
} ] . concat ( memoizeOptions ) ) ;
// If a selector is called with the exact same arguments we don't need to traverse our dependencies again.
var selector = defaultMemoize ( function ( ) {
var params = [ ] ;
var length = dependencies . length ;
for ( var i = 0 ; i < length ; i ++ ) {
// apply arguments instead of spreading and mutate a local list of params for performance.
params . push ( dependencies [ i ] . apply ( null , arguments ) ) ;
}
// apply arguments instead of spreading for performance.
return memoizedResultFunc . apply ( null , params ) ;
} ) ;
selector . resultFunc = resultFunc ;
selector . recomputations = function ( ) {
return recomputations ;
} ;
selector . resetRecomputations = function ( ) {
return recomputations = 0 ;
} ;
return selector ;
} ;
}
var createSelector = exports . createSelector = createSelectorCreator ( defaultMemoize ) ;
function createStructuredSelector ( selectors ) {
var selectorCreator = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : createSelector ;
if ( typeof selectors !== 'object' ) {
throw new Error ( 'createStructuredSelector expects first argument to be an object ' + ( 'where each property is a selector, instead received a ' + typeof selectors ) ) ;
}
var objectKeys = Object . keys ( selectors ) ;
return selectorCreator ( objectKeys . map ( function ( key ) {
return selectors [ key ] ;
} ) , function ( ) {
for ( var _len3 = arguments . length , values = Array ( _len3 ) , _key3 = 0 ; _key3 < _len3 ; _key3 ++ ) {
values [ _key3 ] = arguments [ _key3 ] ;
}
return values . reduce ( function ( composition , value , index ) {
composition [ objectKeys [ index ] ] = value ;
return composition ;
} , { } ) ;
} ) ;
}
/***/ } ) ,
2019-03-11 03:03:28 +01:00
/* 15 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2019-02-18 17:24:18 +01:00
exports . getSearchQueryString = undefined ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ; // @flow
2018-05-15 06:18:50 +02:00
exports . parseQueryParams = parseQueryParams ;
exports . toQueryString = toQueryString ;
2019-02-18 17:24:18 +01:00
2019-03-11 03:03:28 +01:00
var _search = _ _webpack _require _ _ ( 16 ) ;
2019-02-18 17:24:18 +01:00
var DEFAULT _SEARCH _RESULT _FROM = 0 ;
var DEFAULT _SEARCH _SIZE = 20 ;
function parseQueryParams ( queryString /*: string*/ ) {
2018-05-15 06:18:50 +02:00
if ( queryString === '' ) return { } ;
var parts = queryString . split ( '?' ) . pop ( ) . split ( '&' ) . map ( function ( p ) {
return p . split ( '=' ) ;
} ) ;
var params = { } ;
parts . forEach ( function ( array ) {
var _array = _slicedToArray ( array , 2 ) ,
first = _array [ 0 ] ,
second = _array [ 1 ] ;
params [ first ] = second ;
} ) ;
return params ;
}
2019-02-18 17:24:18 +01:00
function toQueryString ( params /*: { [string]: string | number }*/ ) {
2018-05-15 06:18:50 +02:00
if ( ! params ) return '' ;
var parts = [ ] ;
Object . keys ( params ) . forEach ( function ( key ) {
if ( Object . prototype . hasOwnProperty . call ( params , key ) && params [ key ] ) {
parts . push ( key + '=' + params [ key ] ) ;
}
} ) ;
return parts . join ( '&' ) ;
}
2019-02-18 17:24:18 +01:00
var getSearchQueryString = exports . getSearchQueryString = function getSearchQueryString ( query /*: string*/ ) {
var options /*: any*/ = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : { } ;
var includeUserOptions /*: boolean*/ = arguments . length > 2 && arguments [ 2 ] !== undefined ? arguments [ 2 ] : false ;
var encodedQuery = encodeURIComponent ( query ) ;
var queryParams = [ 's=' + encodedQuery , 'size=' + ( options . size || DEFAULT _SEARCH _SIZE ) , 'from=' + ( options . from || DEFAULT _SEARCH _RESULT _FROM ) ] ;
if ( includeUserOptions ) {
queryParams . push ( 'claimType=' + options [ _search . SEARCH _OPTIONS . CLAIM _TYPE ] ) ;
// If they are only searching for channels, strip out the media info
if ( options [ _search . SEARCH _OPTIONS . CLAIM _TYPE ] !== _search . SEARCH _OPTIONS . INCLUDE _CHANNELS ) {
queryParams . push ( 'mediaType=' + [ _search . SEARCH _OPTIONS . MEDIA _FILE , _search . SEARCH _OPTIONS . MEDIA _AUDIO , _search . SEARCH _OPTIONS . MEDIA _VIDEO , _search . SEARCH _OPTIONS . MEDIA _TEXT , _search . SEARCH _OPTIONS . MEDIA _IMAGE , _search . SEARCH _OPTIONS . MEDIA _APPLICATION ] . reduce ( function ( acc , currentOption ) {
return options [ currentOption ] ? '' + acc + currentOption + ',' : acc ;
} , '' ) ) ;
}
}
return queryParams . join ( '&' ) ;
} ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-11 03:03:28 +01:00
/* 16 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-08-08 19:54:21 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2019-02-18 17:24:18 +01:00
var SEARCH _TYPES = exports . SEARCH _TYPES = {
FILE : 'file' ,
CHANNEL : 'channel' ,
SEARCH : 'search'
} ;
2018-08-15 05:57:35 +02:00
2019-02-18 17:24:18 +01:00
var SEARCH _OPTIONS = exports . SEARCH _OPTIONS = {
RESULT _COUNT : 'size' ,
CLAIM _TYPE : 'claimType' ,
INCLUDE _FILES : 'file' ,
INCLUDE _CHANNELS : 'channel' ,
INCLUDE _FILES _AND _CHANNELS : 'file,channel' ,
MEDIA _AUDIO : 'audio' ,
MEDIA _VIDEO : 'video' ,
MEDIA _TEXT : 'text' ,
MEDIA _IMAGE : 'image' ,
MEDIA _APPLICATION : 'application'
} ;
2018-08-15 05:57:35 +02:00
2019-02-18 17:24:18 +01:00
/***/ } ) ,
2019-03-11 03:03:28 +01:00
/* 17 */
2019-02-18 17:24:18 +01:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . makeSelectQueryWithOptions = exports . selectSearchSuggestions = exports . selectSearchBarFocused = exports . selectWunderBarAddress = exports . makeSelectSearchUris = exports . selectSearchUrisByQuery = exports . selectIsSearching = exports . selectSearchQuery = exports . selectSuggestions = exports . selectSearchOptions = exports . selectSearchValue = exports . selectState = undefined ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
2019-03-11 03:03:28 +01:00
var _search = _ _webpack _require _ _ ( 16 ) ;
2019-02-18 17:24:18 +01:00
2019-03-11 03:03:28 +01:00
var _query _params = _ _webpack _require _ _ ( 15 ) ;
2018-08-15 05:57:35 +02:00
2018-11-12 19:01:14 +01:00
var _lbryURI = _ _webpack _require _ _ ( 3 ) ;
2018-08-08 19:54:21 +02:00
2019-03-11 03:03:28 +01:00
var _navigation = _ _webpack _require _ _ ( 13 ) ;
2018-08-08 19:54:21 +02:00
2019-03-11 03:03:28 +01:00
var _reselect = _ _webpack _require _ _ ( 14 ) ;
2018-08-08 19:54:21 +02:00
2019-02-18 17:24:18 +01:00
// @flow
/*:: import type { SearchState, SearchOptions, SearchSuggestion } from 'types/Search';*/
/*:: type State = { search: SearchState };*/
var selectState = exports . selectState = function selectState ( state /*: State*/ ) /*: SearchState*/ {
return state . search ;
2018-08-08 19:54:21 +02:00
} ;
2019-02-18 17:24:18 +01:00
var selectSearchValue /*: (state: State) => string*/ = exports . selectSearchValue = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
2018-08-08 19:54:21 +02:00
return state . searchQuery ;
} ) ;
2019-02-18 17:24:18 +01:00
var selectSearchOptions /*: (state: State) => SearchOptions*/ = exports . selectSearchOptions = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . options ;
} ) ;
var selectSuggestions / * : (
state : State
) => { [ string ] : Array < SearchSuggestion > } * / = e x p o r t s . s e l e c t S u g g e s t i o n s = ( 0 , _ r e s e l e c t . c r e a t e S e l e c t o r ) ( s e l e c t S t a t e , f u n c t i o n ( s t a t e ) {
2018-08-15 05:57:35 +02:00
return state . suggestions ;
} ) ;
2019-02-18 17:24:18 +01:00
var selectSearchQuery /*: (state: State) => ?string*/ = exports . selectSearchQuery = ( 0 , _reselect . createSelector ) ( _navigation . selectCurrentPage , _navigation . selectCurrentParams , function ( page /*: string*/ , params /*: ?{ query: string }*/ ) {
2018-08-08 19:54:21 +02:00
return page === 'search' ? params && params . query : null ;
} ) ;
2019-02-18 17:24:18 +01:00
var selectIsSearching /*: (state: State) => boolean*/ = exports . selectIsSearching = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
2018-08-08 19:54:21 +02:00
return state . searching ;
} ) ;
2019-02-18 17:24:18 +01:00
var selectSearchUrisByQuery / * : (
state : State
) => { [ string ] : Array < string > } * / = e x p o r t s . s e l e c t S e a r c h U r i s B y Q u e r y = ( 0 , _ r e s e l e c t . c r e a t e S e l e c t o r ) ( s e l e c t S t a t e , f u n c t i o n ( s t a t e ) {
2018-08-08 19:54:21 +02:00
return state . urisByQuery ;
} ) ;
2019-02-18 17:24:18 +01:00
var makeSelectSearchUris = exports . makeSelectSearchUris = function makeSelectSearchUris ( query
// replace statement below is kind of ugly, and repeated in doSearch action
/*: string*/ ) /*: ((state: State) => Array<string>)*/ {
return ( 0 , _reselect . createSelector ) ( selectSearchUrisByQuery , function ( byQuery ) {
return byQuery [ query ? query . replace ( /^lbry:\/\//i , '' ) . replace ( /\// , ' ' ) : query ] ;
} ) ;
2018-08-08 19:54:21 +02:00
} ;
2019-02-18 17:24:18 +01:00
var selectWunderBarAddress = exports . selectWunderBarAddress = ( 0 , _reselect . createSelector ) ( _navigation . selectCurrentPage , selectSearchQuery , _navigation . selectCurrentParams , function ( page /*: string*/ , query /*: string*/ , params /*: { uri: string }*/ ) {
2018-08-08 19:54:21 +02:00
// only populate the wunderbar address if we are on the file/channel pages
// or show the search query
if ( page === 'show' ) {
return params . uri ;
}
return query ;
} ) ;
2019-02-18 17:24:18 +01:00
var selectSearchBarFocused /*: boolean*/ = exports . selectSearchBarFocused = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
2018-08-08 19:54:21 +02:00
return state . focused ;
} ) ;
2018-08-15 05:57:35 +02:00
2019-02-18 17:24:18 +01:00
var selectSearchSuggestions /*: Array<SearchSuggestion>*/ = exports . selectSearchSuggestions = ( 0 , _reselect . createSelector ) ( selectSearchValue , selectSuggestions , function ( query /*: string*/ , suggestions /*: { [string]: Array<string> }*/ ) {
2018-08-15 05:57:35 +02:00
if ( ! query ) {
return [ ] ;
}
var queryIsPrefix = query === 'lbry:' || query === 'lbry:/' || query === 'lbry://' ;
if ( query . startsWith ( 'lbry://' ) && query !== 'lbry://' ) {
// If it starts with a prefix, don't show any autocomplete results
// They are probably typing/pasting in a lbry uri
return [ {
value : query ,
2019-02-18 17:24:18 +01:00
type : _search . SEARCH _TYPES . FILE
2018-08-15 05:57:35 +02:00
} ] ;
} else if ( queryIsPrefix ) {
// If it is a prefix, wait until something else comes to figure out what to do
return [ ] ;
}
var searchSuggestions = [ ] ;
try {
2019-02-18 17:24:18 +01:00
var _uri = ( 0 , _lbryURI . normalizeURI ) ( query ) ;
2018-08-15 05:57:35 +02:00
2019-02-18 17:24:18 +01:00
var _parseURI = ( 0 , _lbryURI . parseURI ) ( _uri ) ,
2018-08-15 05:57:35 +02:00
claimName = _parseURI . claimName ,
isChannel = _parseURI . isChannel ;
searchSuggestions . push ( {
value : claimName ,
2019-02-18 17:24:18 +01:00
type : _search . SEARCH _TYPES . SEARCH
2018-08-15 05:57:35 +02:00
} , {
2019-02-18 17:24:18 +01:00
value : _uri ,
2018-08-15 05:57:35 +02:00
shorthand : isChannel ? claimName . slice ( 1 ) : claimName ,
2019-02-18 17:24:18 +01:00
type : isChannel ? _search . SEARCH _TYPES . CHANNEL : _search . SEARCH _TYPES . FILE
2018-08-15 05:57:35 +02:00
} ) ;
} catch ( e ) {
searchSuggestions . push ( {
value : query ,
2019-02-18 17:24:18 +01:00
type : _search . SEARCH _TYPES . SEARCH
2018-08-15 05:57:35 +02:00
} ) ;
}
var apiSuggestions = suggestions [ query ] || [ ] ;
if ( apiSuggestions . length ) {
searchSuggestions = searchSuggestions . concat ( apiSuggestions . filter ( function ( suggestion ) {
return suggestion !== query ;
} ) . map ( function ( suggestion ) {
// determine if it's a channel
try {
2019-02-18 17:24:18 +01:00
var _uri2 = ( 0 , _lbryURI . normalizeURI ) ( suggestion ) ;
2018-08-15 05:57:35 +02:00
2019-02-18 17:24:18 +01:00
var _parseURI2 = ( 0 , _lbryURI . parseURI ) ( _uri2 ) ,
2018-08-15 05:57:35 +02:00
_claimName = _parseURI2 . claimName ,
_isChannel = _parseURI2 . isChannel ;
return {
2019-02-18 17:24:18 +01:00
value : _uri2 ,
2018-08-15 05:57:35 +02:00
shorthand : _isChannel ? _claimName . slice ( 1 ) : _claimName ,
2019-02-18 17:24:18 +01:00
type : _isChannel ? _search . SEARCH _TYPES . CHANNEL : _search . SEARCH _TYPES . FILE
2018-08-15 05:57:35 +02:00
} ;
} catch ( e ) {
// search result includes some character that isn't valid in claim names
return {
value : suggestion ,
2019-02-18 17:24:18 +01:00
type : _search . SEARCH _TYPES . SEARCH
2018-08-15 05:57:35 +02:00
} ;
}
} ) ) ;
}
return searchSuggestions ;
} ) ;
2018-08-08 19:54:21 +02:00
2019-02-18 17:24:18 +01:00
// Creates a query string based on the state in the search reducer
// Can be overrided by passing in custom sizes/from values for other areas pagination
var makeSelectQueryWithOptions = exports . makeSelectQueryWithOptions = function makeSelectQueryWithOptions ( customQuery /*: ?string*/ , customSize /*: ?number*/ , customFrom // If it's a background search, don't use the users settings
/*: ?number*/ ) {
var isBackgroundSearch /*: boolean*/ = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
return ( 0 , _reselect . createSelector ) ( selectSearchQuery , selectSearchOptions , function ( query , options ) {
var size = customSize || options [ _search . SEARCH _OPTIONS . RESULT _COUNT ] ;
2018-08-08 19:54:21 +02:00
2019-02-18 17:24:18 +01:00
var queryString = ( 0 , _query _params . getSearchQueryString ) ( customQuery || query , _extends ( { } , options , { size : size , from : customFrom } ) , ! isBackgroundSearch ) ;
2018-08-08 19:54:21 +02:00
2019-02-18 17:24:18 +01:00
return queryString ;
} ) ;
} ;
2018-08-15 05:57:35 +02:00
/***/ } ) ,
2019-03-11 03:03:28 +01:00
/* 18 */
2018-08-15 05:57:35 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-07-11 01:15:39 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var isClaimNsfw = exports . isClaimNsfw = function isClaimNsfw ( claim ) {
return claim && claim . value && claim . value . stream && claim . value . stream . metadata . nsfw ;
} ;
/***/ } ) ,
2019-03-11 03:03:28 +01:00
/* 19 */
2018-07-11 01:15:39 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-08 17:22:08 +01:00
exports . doUpdateBalance = doUpdateBalance ;
exports . doBalanceSubscribe = doBalanceSubscribe ;
exports . doFetchTransactions = doFetchTransactions ;
exports . doFetchBlock = doFetchBlock ;
exports . doGetNewAddress = doGetNewAddress ;
exports . doCheckAddressIsMine = doCheckAddressIsMine ;
exports . doSendDraftTransaction = doSendDraftTransaction ;
exports . doSetDraftTransactionAmount = doSetDraftTransactionAmount ;
exports . doSetDraftTransactionAddress = doSetDraftTransactionAddress ;
exports . doSendTip = doSendTip ;
exports . doWalletEncrypt = doWalletEncrypt ;
exports . doWalletUnlock = doWalletUnlock ;
exports . doWalletLock = doWalletLock ;
exports . doWalletDecrypt = doWalletDecrypt ;
exports . doWalletStatus = doWalletStatus ;
exports . doSetTransactionListFilter = doSetTransactionListFilter ;
exports . doUpdateBlockHeight = doUpdateBlockHeight ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-11-12 19:01:14 +01:00
var _lbry = _ _webpack _require _ _ ( 9 ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var _lbry2 = _interopRequireDefault ( _lbry ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _notifications = _ _webpack _require _ _ ( 4 ) ;
2018-11-08 17:22:08 +01:00
2019-03-18 06:13:12 +01:00
var _wallet = _ _webpack _require _ _ ( 20 ) ;
2018-11-08 17:22:08 +01:00
2019-03-18 06:13:12 +01:00
var _formatCredits = _ _webpack _require _ _ ( 22 ) ;
2018-05-15 06:18:50 +02:00
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-11-08 17:22:08 +01:00
function doUpdateBalance ( ) {
2018-05-15 06:18:50 +02:00
return function ( dispatch , getState ) {
2018-11-08 17:22:08 +01:00
var _getState = getState ( ) ,
balanceInStore = _getState . wallet . balance ;
2018-05-15 06:18:50 +02:00
2018-12-03 05:30:29 +01:00
_lbry2 . default . account _balance ( ) . then ( function ( balanceAsString ) {
var balance = parseFloat ( balanceAsString ) ;
2018-11-08 17:22:08 +01:00
if ( balanceInStore !== balance ) {
dispatch ( {
type : ACTIONS . UPDATE _BALANCE ,
data : {
balance : balance
}
} ) ;
}
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doBalanceSubscribe ( ) {
return function ( dispatch ) {
dispatch ( doUpdateBalance ( ) ) ;
setInterval ( function ( ) {
return dispatch ( doUpdateBalance ( ) ) ;
} , 5000 ) ;
} ;
}
function doFetchTransactions ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . FETCH _TRANSACTIONS _STARTED
} ) ;
2019-01-14 17:35:49 +01:00
_lbry2 . default . utxo _release ( ) . then ( function ( ) {
return _lbry2 . default . transaction _list ( ) ;
} ) . then ( function ( results ) {
2018-05-15 06:18:50 +02:00
dispatch ( {
2018-11-08 17:22:08 +01:00
type : ACTIONS . FETCH _TRANSACTIONS _COMPLETED ,
2018-05-15 06:18:50 +02:00
data : {
2018-11-08 17:22:08 +01:00
transactions : results
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-11-08 17:22:08 +01:00
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doFetchBlock ( height ) {
return function ( dispatch ) {
_lbry2 . default . block _show ( { height : height } ) . then ( function ( block ) {
dispatch ( {
type : ACTIONS . FETCH _BLOCK _SUCCESS ,
data : { block : block }
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
} ) ;
2018-05-15 06:18:50 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doGetNewAddress ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . GET _NEW _ADDRESS _STARTED
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
// Removed localStorage use, since address is expected to be stored in redux store
_lbry2 . default . address _unused ( ) . then ( function ( address ) {
dispatch ( {
type : ACTIONS . GET _NEW _ADDRESS _COMPLETED ,
data : { address : address }
} ) ;
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doCheckAddressIsMine ( address ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . CHECK _ADDRESS _IS _MINE _STARTED
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
_lbry2 . default . address _is _mine ( { address : address } ) . then ( function ( isMine ) {
if ( ! isMine ) dispatch ( doGetNewAddress ( ) ) ;
2018-05-15 06:18:50 +02:00
dispatch ( {
2018-11-08 17:22:08 +01:00
type : ACTIONS . CHECK _ADDRESS _IS _MINE _COMPLETED
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
} ) ;
2018-05-15 06:18:50 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doSendDraftTransaction ( address , amount ) {
2018-05-15 06:18:50 +02:00
return function ( dispatch , getState ) {
var state = getState ( ) ;
2018-11-08 17:22:08 +01:00
var balance = ( 0 , _wallet . selectBalance ) ( state ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
if ( balance - amount <= 0 ) {
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-11-08 17:22:08 +01:00
title : 'Insufficient credits' ,
2018-11-12 19:01:14 +01:00
message : 'Insufficient credits'
2018-11-08 17:22:08 +01:00
} ) ) ;
return ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
dispatch ( {
type : ACTIONS . SEND _TRANSACTION _STARTED
} ) ;
var successCallback = function successCallback ( response ) {
if ( response . txid ) {
2018-05-15 06:18:50 +02:00
dispatch ( {
2018-11-08 17:22:08 +01:00
type : ACTIONS . SEND _TRANSACTION _COMPLETED
} ) ;
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-11-08 17:22:08 +01:00
message : 'You sent ' + amount + ' LBC' ,
linkText : 'History' ,
linkTarget : '/wallet'
} ) ) ;
} else {
dispatch ( {
type : ACTIONS . SEND _TRANSACTION _FAILED ,
data : { error : response }
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-11-08 17:22:08 +01:00
message : 'Transaction failed' ,
2018-11-12 19:01:14 +01:00
isError : true
2018-11-08 17:22:08 +01:00
} ) ) ;
}
} ;
var errorCallback = function errorCallback ( error ) {
dispatch ( {
type : ACTIONS . SEND _TRANSACTION _FAILED ,
data : { error : error . message }
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-11-08 17:22:08 +01:00
message : 'Transaction failed' ,
2018-11-12 19:01:14 +01:00
isError : true
2018-11-08 17:22:08 +01:00
} ) ) ;
} ;
_lbry2 . default . wallet _send ( {
address : address ,
amount : ( 0 , _formatCredits . creditsToString ) ( amount )
} ) . then ( successCallback , errorCallback ) ;
2018-05-15 06:18:50 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doSetDraftTransactionAmount ( amount ) {
return {
type : ACTIONS . SET _DRAFT _TRANSACTION _AMOUNT ,
data : { amount : amount }
2018-05-15 06:18:50 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doSetDraftTransactionAddress ( address ) {
2018-10-17 20:22:17 +02:00
return {
2018-11-08 17:22:08 +01:00
type : ACTIONS . SET _DRAFT _TRANSACTION _ADDRESS ,
data : { address : address }
2018-10-17 20:22:17 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doSendTip ( amount , claimId , uri , successCallback , errorCallback ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var balance = ( 0 , _wallet . selectBalance ) ( state ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
if ( balance - amount <= 0 ) {
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-11-08 17:22:08 +01:00
message : 'Insufficient credits' ,
2018-11-12 19:01:14 +01:00
isError : true
2018-11-08 17:22:08 +01:00
} ) ) ;
return ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var success = function success ( ) {
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-11-08 17:22:08 +01:00
message : _ _ ( 'You sent ' + amount + ' LBC as a tip, Mahalo!' ) ,
linkText : _ _ ( 'History' ) ,
2018-11-12 19:01:14 +01:00
linkTarget : _ _ ( '/wallet' )
2018-11-08 17:22:08 +01:00
} ) ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
dispatch ( {
type : ACTIONS . SUPPORT _TRANSACTION _COMPLETED
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
if ( successCallback ) {
successCallback ( ) ;
}
} ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var error = function error ( err ) {
2018-11-12 19:01:14 +01:00
dispatch ( ( 0 , _notifications . doToast ) ( {
2018-11-08 17:22:08 +01:00
message : _ _ ( 'There was an error sending support funds.' ) ,
2018-11-12 19:01:14 +01:00
isError : true
2018-11-08 17:22:08 +01:00
} ) ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
dispatch ( {
type : ACTIONS . SUPPORT _TRANSACTION _FAILED ,
data : {
error : err
}
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
if ( errorCallback ) {
errorCallback ( ) ;
}
} ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
dispatch ( {
type : ACTIONS . SUPPORT _TRANSACTION _STARTED
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
_lbry2 . default . claim _tip ( {
claim _id : claimId ,
amount : ( 0 , _formatCredits . creditsToString ) ( amount )
} ) . then ( success , error ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doWalletEncrypt ( newPassword ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . WALLET _ENCRYPT _START
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
_lbry2 . default . account _encrypt ( { new _password : newPassword } ) . then ( function ( result ) {
if ( result === true ) {
dispatch ( {
type : ACTIONS . WALLET _ENCRYPT _COMPLETED ,
result : result
} ) ;
} else {
dispatch ( {
type : ACTIONS . WALLET _ENCRYPT _FAILED ,
result : result
} ) ;
}
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doWalletUnlock ( password ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . WALLET _UNLOCK _START
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
_lbry2 . default . account _unlock ( { password : password } ) . then ( function ( result ) {
if ( result === true ) {
dispatch ( {
type : ACTIONS . WALLET _UNLOCK _COMPLETED ,
result : result
} ) ;
} else {
dispatch ( {
type : ACTIONS . WALLET _UNLOCK _FAILED ,
result : result
} ) ;
}
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doWalletLock ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . WALLET _LOCK _START
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
_lbry2 . default . wallet _lock ( ) . then ( function ( result ) {
if ( result === true ) {
dispatch ( {
type : ACTIONS . WALLET _LOCK _COMPLETED ,
result : result
} ) ;
} else {
dispatch ( {
type : ACTIONS . WALLET _LOCK _FAILED ,
result : result
} ) ;
}
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doWalletDecrypt ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . WALLET _DECRYPT _START
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
_lbry2 . default . account _decrypt ( ) . then ( function ( result ) {
if ( result === true ) {
dispatch ( {
type : ACTIONS . WALLET _DECRYPT _COMPLETED ,
result : result
} ) ;
} else {
dispatch ( {
type : ACTIONS . WALLET _DECRYPT _FAILED ,
result : result
} ) ;
}
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doWalletStatus ( ) {
return function ( dispatch ) {
dispatch ( {
type : ACTIONS . WALLET _STATUS _START
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
_lbry2 . default . status ( ) . then ( function ( status ) {
if ( status && status . wallet ) {
dispatch ( {
type : ACTIONS . WALLET _STATUS _COMPLETED ,
result : status . wallet . is _encrypted
} ) ;
}
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doSetTransactionListFilter ( filterOption ) {
return {
type : ACTIONS . SET _TRANSACTION _LIST _FILTER ,
data : filterOption
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function doUpdateBlockHeight ( ) {
return function ( dispatch ) {
return _lbry2 . default . status ( ) . then ( function ( status ) {
if ( status . wallet ) {
dispatch ( {
type : ACTIONS . UPDATE _CURRENT _HEIGHT ,
data : status . wallet . blocks
} ) ;
}
} ) ;
} ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 20 */
2018-11-08 17:22:08 +01:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
"use strict" ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
Object . defineProperty ( exports , "__esModule" , {
value : true
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
exports . selectTransactionListFilter = exports . makeSelectBlockDate = exports . selectCurrentHeight = exports . selectBlocks = exports . selectDraftTransactionError = exports . selectDraftTransactionAddress = exports . selectDraftTransactionAmount = exports . selectDraftTransaction = exports . selectGettingNewAddress = exports . selectReceiveAddress = exports . selectIsSendingSupport = exports . selectIsFetchingTransactions = exports . selectHasTransactions = exports . selectRecentTransactions = exports . selectTransactionItems = exports . selectTransactionsById = exports . selectBalance = exports . selectWalletLockResult = exports . selectWalletLockSucceeded = exports . selectWalletLockPending = exports . selectWalletUnlockResult = exports . selectWalletUnlockSucceeded = exports . selectWalletUnlockPending = exports . selectWalletDecryptResult = exports . selectWalletDecryptSucceeded = exports . selectWalletDecryptPending = exports . selectWalletEncryptResult = exports . selectWalletEncryptSucceeded = exports . selectWalletEncryptPending = exports . selectWalletIsEncrypted = exports . selectWalletState = exports . selectState = undefined ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _reselect = _ _webpack _require _ _ ( 14 ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _transaction _types = _ _webpack _require _ _ ( 21 ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var TRANSACTIONS = _interopRequireWildcard ( _transaction _types ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function _toConsumableArray ( arr ) { if ( Array . isArray ( arr ) ) { for ( var i = 0 , arr2 = Array ( arr . length ) ; i < arr . length ; i ++ ) { arr2 [ i ] = arr [ i ] ; } return arr2 ; } else { return Array . from ( arr ) ; } }
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectState = exports . selectState = function selectState ( state ) {
return state . wallet || { } ;
} ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletState = exports . selectWalletState = selectState ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletIsEncrypted = exports . selectWalletIsEncrypted = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletIsEncrypted ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletEncryptPending = exports . selectWalletEncryptPending = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletEncryptPending ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletEncryptSucceeded = exports . selectWalletEncryptSucceeded = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletEncryptSucceded ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletEncryptResult = exports . selectWalletEncryptResult = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletEncryptResult ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletDecryptPending = exports . selectWalletDecryptPending = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletDecryptPending ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletDecryptSucceeded = exports . selectWalletDecryptSucceeded = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletDecryptSucceded ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletDecryptResult = exports . selectWalletDecryptResult = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletDecryptResult ;
2018-10-17 20:22:17 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
var selectWalletUnlockPending = exports . selectWalletUnlockPending = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletUnlockPending ;
2018-10-23 05:31:57 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
var selectWalletUnlockSucceeded = exports . selectWalletUnlockSucceeded = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletUnlockSucceded ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletUnlockResult = exports . selectWalletUnlockResult = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletUnlockResult ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletLockPending = exports . selectWalletLockPending = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletLockPending ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectWalletLockSucceeded = exports . selectWalletLockSucceeded = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletLockSucceded ;
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
var selectWalletLockResult = exports . selectWalletLockResult = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . walletLockResult ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectBalance = exports . selectBalance = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . balance ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectTransactionsById = exports . selectTransactionsById = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . transactions ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectTransactionItems = exports . selectTransactionItems = ( 0 , _reselect . createSelector ) ( selectTransactionsById , function ( byId ) {
var items = [ ] ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
Object . keys ( byId ) . forEach ( function ( txid ) {
var tx = byId [ txid ] ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
// ignore dust/fees
// it is fee only txn if all infos are also empty
if ( Math . abs ( tx . value ) === Math . abs ( tx . fee ) && tx . claim _info . length === 0 && tx . support _info . length === 0 && tx . update _info . length === 0 && tx . abandon _info . length === 0 ) {
return ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var append = [ ] ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
append . push . apply ( append , _toConsumableArray ( tx . claim _info . map ( function ( item ) {
return Object . assign ( { } , tx , item , {
type : item . claim _name [ 0 ] === '@' ? TRANSACTIONS . CHANNEL : TRANSACTIONS . PUBLISH
} ) ;
} ) ) ) ;
append . push . apply ( append , _toConsumableArray ( tx . support _info . map ( function ( item ) {
return Object . assign ( { } , tx , item , {
type : ! item . is _tip ? TRANSACTIONS . SUPPORT : TRANSACTIONS . TIP
} ) ;
} ) ) ) ;
append . push . apply ( append , _toConsumableArray ( tx . update _info . map ( function ( item ) {
return Object . assign ( { } , tx , item , { type : TRANSACTIONS . UPDATE } ) ;
} ) ) ) ;
append . push . apply ( append , _toConsumableArray ( tx . abandon _info . map ( function ( item ) {
return Object . assign ( { } , tx , item , { type : TRANSACTIONS . ABANDON } ) ;
} ) ) ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
if ( ! append . length ) {
append . push ( Object . assign ( { } , tx , {
type : tx . value < 0 ? TRANSACTIONS . SPEND : TRANSACTIONS . RECEIVE
} ) ) ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
items . push . apply ( items , _toConsumableArray ( append . map ( function ( item ) {
// value on transaction, amount on outpoint
// amount is always positive, but should match sign of value
2018-12-06 06:32:42 +01:00
var balanceDelta = parseFloat ( item . balance _delta ) ;
var value = parseFloat ( item . value ) ;
2018-12-07 19:12:01 +01:00
var amount = balanceDelta || value ;
var fee = parseFloat ( tx . fee ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
return {
txid : txid ,
timestamp : tx . timestamp ,
date : tx . timestamp ? new Date ( Number ( tx . timestamp ) * 1000 ) : null ,
amount : amount ,
2018-12-07 19:12:01 +01:00
fee : fee ,
2018-11-08 17:22:08 +01:00
claim _id : item . claim _id ,
claim _name : item . claim _name ,
type : item . type || TRANSACTIONS . SPEND ,
nout : item . nout ,
confirmations : tx . confirmations
} ;
} ) ) ) ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
return items . sort ( function ( tx1 , tx2 ) {
if ( ! tx1 . timestamp && ! tx2 . timestamp ) {
return 0 ;
} else if ( ! tx1 . timestamp && tx2 . timestamp ) {
return - 1 ;
} else if ( tx1 . timestamp && ! tx2 . timestamp ) {
return 1 ;
2018-05-15 06:18:50 +02:00
}
2018-11-08 17:22:08 +01:00
return tx2 . timestamp - tx1 . timestamp ;
} ) ;
} ) ;
var selectRecentTransactions = exports . selectRecentTransactions = ( 0 , _reselect . createSelector ) ( selectTransactionItems , function ( transactions ) {
var threshold = new Date ( ) ;
threshold . setDate ( threshold . getDate ( ) - 7 ) ;
return transactions . filter ( function ( transaction ) {
if ( ! transaction . date ) {
return true ; // pending transaction
2018-05-15 06:18:50 +02:00
}
2018-11-08 17:22:08 +01:00
return transaction . date > threshold ;
} ) ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectHasTransactions = exports . selectHasTransactions = ( 0 , _reselect . createSelector ) ( selectTransactionItems , function ( transactions ) {
return transactions && transactions . length > 0 ;
} ) ;
2018-08-28 05:15:23 +02:00
2018-11-08 17:22:08 +01:00
var selectIsFetchingTransactions = exports . selectIsFetchingTransactions = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fetchingTransactions ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectIsSendingSupport = exports . selectIsSendingSupport = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . sendingSupport ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectReceiveAddress = exports . selectReceiveAddress = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . receiveAddress ;
} ) ;
2018-06-18 04:29:54 +02:00
2018-11-08 17:22:08 +01:00
var selectGettingNewAddress = exports . selectGettingNewAddress = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . gettingNewAddress ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectDraftTransaction = exports . selectDraftTransaction = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . draftTransaction || { } ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectDraftTransactionAmount = exports . selectDraftTransactionAmount = ( 0 , _reselect . createSelector ) ( selectDraftTransaction , function ( draft ) {
return draft . amount ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectDraftTransactionAddress = exports . selectDraftTransactionAddress = ( 0 , _reselect . createSelector ) ( selectDraftTransaction , function ( draft ) {
return draft . address ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectDraftTransactionError = exports . selectDraftTransactionError = ( 0 , _reselect . createSelector ) ( selectDraftTransaction , function ( draft ) {
return draft . error ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectBlocks = exports . selectBlocks = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . blocks ;
} ) ;
var selectCurrentHeight = exports . selectCurrentHeight = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . latestBlock ;
} ) ;
var makeSelectBlockDate = exports . makeSelectBlockDate = function makeSelectBlockDate ( block ) {
return ( 0 , _reselect . createSelector ) ( selectBlocks , selectCurrentHeight , function ( blocks , latestBlock ) {
// If we have the block data, look at the actual date,
// If not, try to simulate it based on 2.5 minute blocks
// Adding this on 11/7/2018 because caling block_show for every claim is causing
// performance issues.
if ( blocks && blocks [ block ] ) {
return new Date ( blocks [ block ] . time * 1000 ) ;
2018-05-15 06:18:50 +02:00
}
2018-11-08 17:22:08 +01:00
// Pending claim
if ( block < 1 ) {
return null ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var difference = latestBlock - block ;
var msSincePublish = difference * 2.5 * 60 * 1000 ; // Number of blocks * 2.5 minutes in ms
var publishDate = Date . now ( ) - msSincePublish ;
return new Date ( publishDate ) ;
} ) ;
2018-05-15 06:18:50 +02:00
} ;
2018-11-08 17:22:08 +01:00
var selectTransactionListFilter = exports . selectTransactionListFilter = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . transactionListFilter || '' ;
} ) ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 21 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-08 17:22:08 +01:00
// eslint-disable-next-line import/prefer-default-export
var ALL = exports . ALL = 'all' ;
var SPEND = exports . SPEND = 'spend' ;
var RECEIVE = exports . RECEIVE = 'receive' ;
var PUBLISH = exports . PUBLISH = 'publish' ;
var CHANNEL = exports . CHANNEL = 'channel' ;
var TIP = exports . TIP = 'tip' ;
var SUPPORT = exports . SUPPORT = 'support' ;
var UPDATE = exports . UPDATE = 'update' ;
var ABANDON = exports . ABANDON = 'abandon' ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 22 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-08 17:22:08 +01:00
exports . formatCredits = formatCredits ;
exports . formatFullPrice = formatFullPrice ;
exports . creditsToString = creditsToString ;
function formatCredits ( amount , precision ) {
if ( Number . isNaN ( parseFloat ( amount ) ) ) return '0' ;
return parseFloat ( amount ) . toFixed ( precision || 1 ) . replace ( /\.?0+$/ , '' ) ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function formatFullPrice ( amount ) {
var precision = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : 1 ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var formated = '' ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var quantity = amount . toString ( ) . split ( '.' ) ;
var fraction = quantity [ 1 ] ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
if ( fraction ) {
var decimals = fraction . split ( '' ) ;
var first = decimals . filter ( function ( number ) {
return number !== '0' ;
} ) [ 0 ] ;
var index = decimals . indexOf ( first ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
// Set format fraction
formated = '.' + fraction . substring ( 0 , index + precision ) ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
return parseFloat ( quantity [ 0 ] + formated ) ;
2018-05-15 06:18:50 +02:00
}
2018-11-08 17:22:08 +01:00
function creditsToString ( amount ) {
2018-11-07 02:02:34 +01:00
var creditString = parseFloat ( amount ) . toFixed ( 8 ) ;
return creditString ;
2018-05-15 06:18:50 +02:00
}
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 23 */
2018-11-08 17:22:08 +01:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
"use strict" ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . doFetchFileInfo = doFetchFileInfo ;
exports . doFileList = doFileList ;
exports . doFetchFileInfosAndPublishedClaims = doFetchFileInfosAndPublishedClaims ;
exports . doSetFileListSort = doSetFileListSort ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _lbry = _ _webpack _require _ _ ( 9 ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var _lbry2 = _interopRequireDefault ( _lbry ) ;
2018-07-18 20:15:33 +02:00
2018-11-12 19:01:14 +01:00
var _claims = _ _webpack _require _ _ ( 8 ) ;
2018-07-18 20:15:33 +02:00
2019-03-11 03:03:28 +01:00
var _claims2 = _ _webpack _require _ _ ( 12 ) ;
2018-07-18 20:15:33 +02:00
2019-03-18 06:13:12 +01:00
var _file _info = _ _webpack _require _ _ ( 24 ) ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
function doFetchFileInfo ( uri ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var claim = ( 0 , _claims2 . selectClaimsByUri ) ( state ) [ uri ] ;
var outpoint = claim ? claim . txid + ':' + claim . nout : null ;
var alreadyFetching = ! ! ( 0 , _file _info . selectUrisLoading ) ( state ) [ uri ] ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
if ( ! alreadyFetching ) {
dispatch ( {
type : ACTIONS . FETCH _FILE _INFO _STARTED ,
data : {
outpoint : outpoint
}
} ) ;
_lbry2 . default . file _list ( { outpoint : outpoint , full _status : true } ) . then ( function ( fileInfos ) {
2018-07-18 20:15:33 +02:00
dispatch ( {
2018-11-08 17:22:08 +01:00
type : ACTIONS . FETCH _FILE _INFO _COMPLETED ,
data : {
outpoint : outpoint ,
fileInfo : fileInfos && fileInfos . length ? fileInfos [ 0 ] : null
}
2018-07-18 20:15:33 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
} ) ;
}
2018-07-18 20:15:33 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doFileList ( ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var isFetching = ( 0 , _file _info . selectIsFetchingFileList ) ( state ) ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
if ( ! isFetching ) {
dispatch ( {
type : ACTIONS . FILE _LIST _STARTED
} ) ;
_lbry2 . default . file _list ( ) . then ( function ( fileInfos ) {
2018-07-18 20:15:33 +02:00
dispatch ( {
2018-11-08 17:22:08 +01:00
type : ACTIONS . FILE _LIST _SUCCEEDED ,
data : {
fileInfos : fileInfos
}
2018-07-18 20:15:33 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
} ) ;
}
2018-07-18 20:15:33 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doFetchFileInfosAndPublishedClaims ( ) {
return function ( dispatch , getState ) {
var state = getState ( ) ;
var isFetchingClaimListMine = ( 0 , _claims2 . selectIsFetchingClaimListMine ) ( state ) ;
var isFetchingFileInfo = ( 0 , _file _info . selectIsFetchingFileList ) ( state ) ;
if ( ! isFetchingClaimListMine ) dispatch ( ( 0 , _claims . doFetchClaimListMine ) ( ) ) ;
if ( ! isFetchingFileInfo ) dispatch ( doFileList ( ) ) ;
2018-10-17 20:22:17 +02:00
} ;
}
2018-11-08 17:22:08 +01:00
function doSetFileListSort ( page , value ) {
return {
type : ACTIONS . SET _FILE _LIST _SORT ,
data : { page : page , value : value }
2018-11-07 16:55:44 +01:00
} ;
}
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 24 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-08 17:22:08 +01:00
exports . selectFileListDownloadedSort = exports . selectFileListPublishedSort = exports . selectSearchDownloadUris = exports . selectTotalDownloadProgress = exports . selectDownloadingFileInfos = exports . selectFileInfosDownloaded = exports . makeSelectLoadingForUri = exports . selectUrisLoading = exports . makeSelectDownloadingForUri = exports . selectDownloadingByOutpoint = exports . makeSelectFileInfoForUri = exports . selectIsFetchingFileListDownloadedOrPublished = exports . selectIsFetchingFileList = exports . selectFileInfosByOutpoint = exports . selectState = undefined ;
2019-03-11 03:03:28 +01:00
var _claims = _ _webpack _require _ _ ( 12 ) ;
2018-11-08 17:22:08 +01:00
2019-03-11 03:03:28 +01:00
var _reselect = _ _webpack _require _ _ ( 14 ) ;
2018-11-08 17:22:08 +01:00
2018-11-12 19:01:14 +01:00
var _lbryURI = _ _webpack _require _ _ ( 3 ) ;
2018-11-08 17:22:08 +01:00
var selectState = exports . selectState = function selectState ( state ) {
return state . fileInfo || { } ;
} ;
var selectFileInfosByOutpoint = exports . selectFileInfosByOutpoint = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . byOutpoint || { } ;
} ) ;
var selectIsFetchingFileList = exports . selectIsFetchingFileList = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . isFetchingFileList ;
} ) ;
var selectIsFetchingFileListDownloadedOrPublished = exports . selectIsFetchingFileListDownloadedOrPublished = ( 0 , _reselect . createSelector ) ( selectIsFetchingFileList , _claims . selectIsFetchingClaimListMine , function ( isFetchingFileList , isFetchingClaimListMine ) {
return isFetchingFileList || isFetchingClaimListMine ;
} ) ;
var makeSelectFileInfoForUri = exports . makeSelectFileInfoForUri = function makeSelectFileInfoForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( _claims . selectClaimsByUri , selectFileInfosByOutpoint , function ( claims , byOutpoint ) {
var claim = claims [ uri ] ;
var outpoint = claim ? claim . txid + ':' + claim . nout : undefined ;
return outpoint ? byOutpoint [ outpoint ] : undefined ;
} ) ;
} ;
var selectDownloadingByOutpoint = exports . selectDownloadingByOutpoint = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . downloadingByOutpoint || { } ;
} ) ;
var makeSelectDownloadingForUri = exports . makeSelectDownloadingForUri = function makeSelectDownloadingForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectDownloadingByOutpoint , makeSelectFileInfoForUri ( uri ) , function ( byOutpoint , fileInfo ) {
if ( ! fileInfo ) return false ;
return byOutpoint [ fileInfo . outpoint ] ;
} ) ;
} ;
var selectUrisLoading = exports . selectUrisLoading = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . urisLoading || { } ;
} ) ;
var makeSelectLoadingForUri = exports . makeSelectLoadingForUri = function makeSelectLoadingForUri ( uri ) {
return ( 0 , _reselect . createSelector ) ( selectUrisLoading , function ( byUri ) {
return byUri && byUri [ uri ] ;
} ) ;
} ;
var selectFileInfosDownloaded = exports . selectFileInfosDownloaded = ( 0 , _reselect . createSelector ) ( selectFileInfosByOutpoint , _claims . selectMyClaims , function ( byOutpoint , myClaims ) {
return Object . values ( byOutpoint ) . filter ( function ( fileInfo ) {
var myClaimIds = myClaims . map ( function ( claim ) {
return claim . claim _id ;
} ) ;
return fileInfo && myClaimIds . indexOf ( fileInfo . claim _id ) === - 1 && ( fileInfo . completed || fileInfo . written _bytes ) ;
} ) ;
} ) ;
// export const selectFileInfoForUri = (state, props) => {
// const claims = selectClaimsByUri(state),
// claim = claims[props.uri],
// fileInfos = selectAllFileInfos(state),
// outpoint = claim ? `${claim.txid}:${claim.nout}` : undefined;
// return outpoint && fileInfos ? fileInfos[outpoint] : undefined;
// };
var selectDownloadingFileInfos = exports . selectDownloadingFileInfos = ( 0 , _reselect . createSelector ) ( selectDownloadingByOutpoint , selectFileInfosByOutpoint , function ( downloadingByOutpoint , fileInfosByOutpoint ) {
var outpoints = Object . keys ( downloadingByOutpoint ) ;
var fileInfos = [ ] ;
outpoints . forEach ( function ( outpoint ) {
var fileInfo = fileInfosByOutpoint [ outpoint ] ;
if ( fileInfo ) fileInfos . push ( fileInfo ) ;
} ) ;
return fileInfos ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var selectTotalDownloadProgress = exports . selectTotalDownloadProgress = ( 0 , _reselect . createSelector ) ( selectDownloadingFileInfos , function ( fileInfos ) {
var progress = [ ] ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
fileInfos . forEach ( function ( fileInfo ) {
progress . push ( fileInfo . written _bytes / fileInfo . total _bytes * 100 ) ;
} ) ;
2018-07-17 18:52:23 +02:00
2018-11-08 17:22:08 +01:00
var totalProgress = progress . reduce ( function ( a , b ) {
return a + b ;
} , 0 ) ;
2018-07-17 18:52:23 +02:00
2018-11-08 17:22:08 +01:00
if ( fileInfos . length > 0 ) return totalProgress / fileInfos . length / 100.0 ;
return - 1 ;
} ) ;
2018-07-17 18:52:23 +02:00
2018-11-08 17:22:08 +01:00
var selectSearchDownloadUris = exports . selectSearchDownloadUris = function selectSearchDownloadUris ( query ) {
return ( 0 , _reselect . createSelector ) ( selectFileInfosDownloaded , _claims . selectClaimsById , function ( fileInfos , claimsById ) {
if ( ! query || ! fileInfos . length ) {
return null ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var queryParts = query . toLowerCase ( ) . split ( ' ' ) ;
var searchQueryDictionary = { } ;
queryParts . forEach ( function ( subQuery ) {
searchQueryDictionary [ subQuery ] = subQuery ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var arrayContainsQueryPart = function arrayContainsQueryPart ( array ) {
for ( var i = 0 ; i < array . length ; i += 1 ) {
var subQuery = array [ i ] ;
if ( searchQueryDictionary [ subQuery ] ) {
return true ;
}
}
return false ;
} ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
var downloadResultsFromQuery = [ ] ;
fileInfos . forEach ( function ( fileInfo ) {
var channelName = fileInfo . channel _name ,
claimName = fileInfo . claim _name ,
metadata = fileInfo . metadata ;
var author = metadata . author ,
description = metadata . description ,
title = metadata . title ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
if ( channelName ) {
var lowerCaseChannel = channelName . toLowerCase ( ) ;
var strippedOutChannelName = lowerCaseChannel . slice ( 1 ) ; // trim off the @
if ( searchQueryDictionary [ channelName ] || searchQueryDictionary [ strippedOutChannelName ] ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
}
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
var nameParts = claimName . toLowerCase ( ) . split ( '-' ) ;
if ( arrayContainsQueryPart ( nameParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
var titleParts = title . toLowerCase ( ) . split ( ' ' ) ;
if ( arrayContainsQueryPart ( titleParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
if ( author ) {
var authorParts = author . toLowerCase ( ) . split ( ' ' ) ;
if ( arrayContainsQueryPart ( authorParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
return ;
}
}
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
if ( description ) {
var descriptionParts = description . toLowerCase ( ) . split ( ' ' ) ;
if ( arrayContainsQueryPart ( descriptionParts ) ) {
downloadResultsFromQuery . push ( fileInfo ) ;
}
}
} ) ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
return downloadResultsFromQuery . length ? downloadResultsFromQuery . map ( function ( fileInfo ) {
var channelName = fileInfo . channel _name ,
claimId = fileInfo . claim _id ,
claimName = fileInfo . claim _name ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
var uriParams = { } ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
if ( channelName ) {
var claim = claimsById [ claimId ] ;
if ( claim && claim . value ) {
uriParams . claimId = claim . value . publisherSignature . certificateId ;
} else {
uriParams . claimId = claimId ;
}
uriParams . channelName = channelName ;
uriParams . contentName = claimName ;
} else {
uriParams . claimId = claimId ;
uriParams . claimName = claimName ;
}
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
var uri = ( 0 , _lbryURI . buildURI ) ( uriParams ) ;
return uri ;
} ) : null ;
} ) ;
} ;
2018-07-18 20:15:33 +02:00
2018-11-08 17:22:08 +01:00
var selectFileListPublishedSort = exports . selectFileListPublishedSort = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fileListPublishedSort ;
2018-07-18 20:15:33 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
var selectFileListDownloadedSort = exports . selectFileListDownloadedSort = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
return state . fileListDownloadedSort ;
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-08 17:22:08 +01:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 25 */
2018-11-08 17:22:08 +01:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
"use strict" ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2019-02-18 17:24:18 +01:00
exports . doUpdateSearchOptions = exports . doBlurSearchInput = exports . doFocusSearchInput = exports . doUpdateSearchQuery = exports . getSearchSuggestions = exports . doSearch = exports . setSearchApi = undefined ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _lbryURI = _ _webpack _require _ _ ( 3 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _claims = _ _webpack _require _ _ ( 8 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _search = _ _webpack _require _ _ ( 17 ) ;
2018-10-30 21:31:47 +01:00
2019-03-18 06:13:12 +01:00
var _batchActions = _ _webpack _require _ _ ( 26 ) ;
2018-10-30 21:31:47 +01:00
2019-03-18 06:13:12 +01:00
var _debounce = _ _webpack _require _ _ ( 27 ) ;
2019-01-19 20:25:03 +01:00
var _debounce2 = _interopRequireDefault ( _debounce ) ;
2019-03-18 06:13:12 +01:00
var _handleFetch = _ _webpack _require _ _ ( 28 ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var _handleFetch2 = _interopRequireDefault ( _handleFetch ) ;
2018-10-30 21:31:47 +01:00
2018-11-08 17:22:08 +01:00
function _interopRequireDefault ( obj ) { return obj && obj . _ _esModule ? obj : { default : obj } ; }
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-05-15 06:18:50 +02:00
2019-02-18 17:24:18 +01:00
// @flow
/*:: import type { SearchState, SearchOptions } from 'types/Search';*/
2019-01-19 20:25:03 +01:00
var DEBOUNCED _SEARCH _SUGGESTION _MS = 300 ;
2018-11-08 17:22:08 +01:00
/*:: type Dispatch = (action: any) => any;*/
2019-01-29 17:44:10 +01:00
// We can't use env's because they aren't passed into node_modules
2019-02-18 17:24:18 +01:00
/*:: type GetState = () => { search: SearchState };*/
2019-01-29 17:44:10 +01:00
var CONNECTION _STRING = 'https://lighthouse.lbry.io/' ;
2019-02-18 17:24:18 +01:00
var setSearchApi = exports . setSearchApi = function setSearchApi ( endpoint /*: string*/ ) {
2019-01-29 17:44:10 +01:00
CONNECTION _STRING = endpoint . replace ( /\/*$/ , '/' ) ; // exactly one slash at the end;
} ;
2019-02-18 17:24:18 +01:00
var doSearch = exports . doSearch = function doSearch ( rawQuery /*: string*/ , size /*: ?number*/ , from /*: ?number*/ ) {
2019-01-19 20:25:03 +01:00
var isBackgroundSearch /*: boolean*/ = arguments . length > 3 && arguments [ 3 ] !== undefined ? arguments [ 3 ] : false ;
2018-11-08 17:22:08 +01:00
return function ( dispatch /*: Dispatch*/ , getState /*: GetState*/ ) {
var query = rawQuery . replace ( /^lbry:\/\//i , '' ) . replace ( /\// , ' ' ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
if ( ! query ) {
dispatch ( {
type : ACTIONS . SEARCH _FAIL
} ) ;
return ;
}
2018-05-15 06:18:50 +02:00
2019-02-18 17:24:18 +01:00
var state = getState ( ) ;
var queryWithOptions = ( 0 , _search . makeSelectQueryWithOptions ) ( query , size , from , isBackgroundSearch ) ( state ) ;
2018-11-08 17:22:08 +01:00
// If we have already searched for something, we don't need to do anything
2019-02-18 17:24:18 +01:00
var urisForQuery = ( 0 , _search . makeSelectSearchUris ) ( queryWithOptions ) ( state ) ;
2018-11-08 17:22:08 +01:00
if ( urisForQuery && ! ! urisForQuery . length ) {
return ;
}
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
dispatch ( {
type : ACTIONS . SEARCH _START
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
// If the user is on the file page with a pre-populated uri and they select
// the search option without typing anything, searchQuery will be empty
// We need to populate it so the input is filled on the search page
// isBackgroundSearch means the search is happening in the background, don't update the search query
if ( ! state . search . searchQuery && ! isBackgroundSearch ) {
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _QUERY ,
data : { searchQuery : query }
} ) ;
}
2018-05-15 06:18:50 +02:00
2019-02-18 17:24:18 +01:00
fetch ( CONNECTION _STRING + 'search?' + queryWithOptions ) . then ( _handleFetch2 . default ) . then ( function ( data ) {
2018-11-08 17:22:08 +01:00
var uris = [ ] ;
var actions = [ ] ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
data . forEach ( function ( result ) {
var uri = ( 0 , _lbryURI . buildURI ) ( {
claimName : result . name ,
claimId : result . claimId
} ) ;
actions . push ( ( 0 , _claims . doResolveUri ) ( uri ) ) ;
uris . push ( uri ) ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
actions . push ( {
type : ACTIONS . SEARCH _SUCCESS ,
data : {
2019-02-18 17:24:18 +01:00
query : queryWithOptions ,
2018-11-08 17:22:08 +01:00
uris : uris
}
} ) ;
dispatch ( _batchActions . batchActions . apply ( undefined , actions ) ) ;
} ) . catch ( function ( ) {
dispatch ( {
type : ACTIONS . SEARCH _FAIL
} ) ;
} ) ;
} ;
} ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
var getSearchSuggestions = exports . getSearchSuggestions = function getSearchSuggestions ( value /*: string*/ ) {
return function ( dispatch /*: Dispatch*/ , getState /*: GetState*/ ) {
var query = value . trim ( ) ;
2018-05-15 06:18:50 +02:00
2018-11-08 17:22:08 +01:00
// strip out any basic stuff for more accurate search results
var searchValue = query . replace ( /lbry:\/\//g , '' ) . replace ( /-/g , ' ' ) ;
if ( searchValue . includes ( '#' ) ) {
// This should probably be more robust, but I think it's fine for now
// Remove everything after # to get rid of the claim id
searchValue = searchValue . substring ( 0 , searchValue . indexOf ( '#' ) ) ;
}
2018-11-07 16:55:44 +01:00
2018-11-08 17:22:08 +01:00
var suggestions = ( 0 , _search . selectSuggestions ) ( getState ( ) ) ;
if ( suggestions [ searchValue ] ) {
return ;
2018-11-07 16:55:44 +01:00
}
2019-01-29 17:44:10 +01:00
fetch ( CONNECTION _STRING + 'autocomplete?s=' + searchValue ) . then ( _handleFetch2 . default ) . then ( function ( apiSuggestions ) {
2018-11-08 17:22:08 +01:00
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _SUGGESTIONS ,
data : {
query : searchValue ,
suggestions : apiSuggestions
}
} ) ;
} ) . catch ( function ( ) {
// If the fetch fails, do nothing
// Basic search suggestions are already populated at this point
} ) ;
} ;
} ;
2019-01-19 20:25:03 +01:00
var throttledSearchSuggestions = ( 0 , _debounce2 . default ) ( function ( dispatch , query ) {
dispatch ( getSearchSuggestions ( query ) ) ;
} , DEBOUNCED _SEARCH _SUGGESTION _MS ) ;
2018-11-08 17:22:08 +01:00
var doUpdateSearchQuery = exports . doUpdateSearchQuery = function doUpdateSearchQuery ( query /*: string*/ , shouldSkipSuggestions /*: ?boolean*/ ) {
return function ( dispatch /*: Dispatch*/ ) {
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _QUERY ,
data : { query : query }
} ) ;
// Don't fetch new suggestions if the user just added a space
if ( ! query . endsWith ( ' ' ) || ! shouldSkipSuggestions ) {
2019-01-19 20:25:03 +01:00
throttledSearchSuggestions ( dispatch , query ) ;
2018-11-07 16:55:44 +01:00
}
2018-11-08 17:22:08 +01:00
} ;
} ;
2018-11-07 16:55:44 +01:00
2018-11-08 17:22:08 +01:00
var doFocusSearchInput = exports . doFocusSearchInput = function doFocusSearchInput ( ) {
return function ( dispatch /*: Dispatch*/ ) {
return dispatch ( {
type : ACTIONS . SEARCH _FOCUS
} ) ;
} ;
2018-05-15 06:18:50 +02:00
} ;
2018-11-08 17:22:08 +01:00
var doBlurSearchInput = exports . doBlurSearchInput = function doBlurSearchInput ( ) {
return function ( dispatch /*: Dispatch*/ ) {
return dispatch ( {
type : ACTIONS . SEARCH _BLUR
} ) ;
} ;
} ;
2018-10-17 20:22:17 +02:00
2019-02-18 17:24:18 +01:00
var doUpdateSearchOptions = exports . doUpdateSearchOptions = function doUpdateSearchOptions ( newOptions /*: SearchOptions*/ ) {
return function ( dispatch /*: Dispatch*/ , getState /*: GetState*/ ) {
var state = getState ( ) ;
var searchQuery = ( 0 , _search . selectSearchQuery ) ( state ) ;
dispatch ( {
type : ACTIONS . UPDATE _SEARCH _OPTIONS ,
data : newOptions
} ) ;
if ( searchQuery ) {
// After updating, perform a search with the new options
dispatch ( doSearch ( searchQuery ) ) ;
}
} ;
} ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 26 */
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . batchActions = batchActions ;
// https://github.com/reactjs/redux/issues/911
function batchActions ( ) {
for ( var _len = arguments . length , actions = Array ( _len ) , _key = 0 ; _key < _len ; _key ++ ) {
actions [ _key ] = arguments [ _key ] ;
}
return {
type : 'BATCH_ACTIONS' ,
actions : actions
} ;
}
/***/ } ) ,
/* 27 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2019-01-19 20:25:03 +01:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . default = debouce ;
// Returns a function, that, as long as it continues to be invoked, will not
// be triggered. The function will be called after it stops being called for
// N milliseconds. If `immediate` is passed, trigger the function on the
// leading edge, instead of the trailing.
function debouce ( func , wait , immediate ) {
var timeout = void 0 ;
return function ( ) {
var context = this ;
var args = arguments ;
var later = function later ( ) {
timeout = null ;
if ( ! immediate ) func . apply ( context , args ) ;
} ;
var callNow = immediate && ! timeout ;
clearTimeout ( timeout ) ;
timeout = setTimeout ( later , wait ) ;
if ( callNow ) func . apply ( context , args ) ;
} ;
}
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 28 */
2019-01-19 20:25:03 +01:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-07-17 18:52:23 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-08 17:22:08 +01:00
exports . default = handleFetchResponse ;
function handleFetchResponse ( response ) {
return response . status === 200 ? Promise . resolve ( response . json ( ) ) : Promise . reject ( new Error ( response . statusText ) ) ;
}
2018-07-17 18:52:23 +02:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 29 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var _slicedToArray = function ( ) { function sliceIterator ( arr , i ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ "return" ] ) _i [ "return" ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } return function ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { return sliceIterator ( arr , i ) ; } else { throw new TypeError ( "Invalid attempt to destructure non-iterable instance" ) ; } } ; } ( ) ;
exports . claimsReducer = claimsReducer ;
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-11-20 17:42:24 +01:00
var _lbryURI = _ _webpack _require _ _ ( 3 ) ;
2018-11-08 22:49:58 +01:00
2018-05-15 06:18:50 +02:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
var reducers = { } ;
var defaultState = {
channelClaimCounts : { }
} ;
reducers [ ACTIONS . RESOLVE _URIS _COMPLETED ] = function ( state , action ) {
var resolveInfo = action . data . resolveInfo ;
var byUri = Object . assign ( { } , state . claimsByUri ) ;
var byId = Object . assign ( { } , state . byId ) ;
var channelClaimCounts = Object . assign ( { } , state . channelClaimCounts ) ;
Object . entries ( resolveInfo ) . forEach ( function ( _ref ) {
var _ref2 = _slicedToArray ( _ref , 2 ) ,
uri = _ref2 [ 0 ] ,
_ref2$ = _ref2 [ 1 ] ,
certificate = _ref2$ . certificate ,
claimsInChannel = _ref2$ . claimsInChannel ;
if ( certificate && ! Number . isNaN ( claimsInChannel ) ) {
channelClaimCounts [ uri ] = claimsInChannel ;
}
} ) ;
Object . entries ( resolveInfo ) . forEach ( function ( _ref3 ) {
var _ref4 = _slicedToArray ( _ref3 , 2 ) ,
uri = _ref4 [ 0 ] ,
_ref4$ = _ref4 [ 1 ] ,
certificate = _ref4$ . certificate ,
claim = _ref4$ . claim ;
if ( claim ) {
byId [ claim . claim _id ] = claim ;
byUri [ uri ] = claim . claim _id ;
} else if ( claim === undefined && certificate !== undefined ) {
byId [ certificate . claim _id ] = certificate ;
// Don't point URI at the channel certificate unless it actually is
// a channel URI. This is brittle.
if ( ! uri . split ( certificate . name ) [ 1 ] . match ( /\// ) ) {
byUri [ uri ] = certificate . claim _id ;
} else {
byUri [ uri ] = null ;
}
} else {
byUri [ uri ] = null ;
}
} ) ;
return Object . assign ( { } , state , {
byId : byId ,
claimsByUri : byUri ,
channelClaimCounts : channelClaimCounts ,
resolvingUris : ( state . resolvingUris || [ ] ) . filter ( function ( uri ) {
return ! resolveInfo [ uri ] ;
} )
} ) ;
} ;
reducers [ ACTIONS . FETCH _CLAIM _LIST _MINE _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
isFetchingClaimListMine : true
} ) ;
} ;
reducers [ ACTIONS . FETCH _CLAIM _LIST _MINE _COMPLETED ] = function ( state , action ) {
var claims = action . data . claims ;
var byId = Object . assign ( { } , state . byId ) ;
2018-11-08 22:49:58 +01:00
var byUri = Object . assign ( { } , state . claimsByUri ) ;
2018-05-15 06:18:50 +02:00
var pendingById = Object . assign ( { } , state . pendingById ) ;
2018-10-27 00:40:53 +02:00
claims . forEach ( function ( claim ) {
2018-11-08 22:49:58 +01:00
var uri = ( 0 , _lbryURI . buildURI ) ( { claimName : claim . name , claimId : claim . claim _id } ) ;
2018-10-27 00:40:53 +02:00
if ( claim . type && claim . type . match ( /claim|update/ ) ) {
if ( claim . confirmations < 1 ) {
pendingById [ claim . claim _id ] = claim ;
2018-11-01 14:35:16 +01:00
delete byId [ claim . claim _id ] ;
2018-11-08 22:49:58 +01:00
delete byUri [ claim . claim _id ] ;
2018-10-27 00:40:53 +02:00
} else {
byId [ claim . claim _id ] = claim ;
2018-11-08 22:49:58 +01:00
byUri [ uri ] = claim . claim _id ;
2018-10-27 00:40:53 +02:00
}
2018-05-15 06:18:50 +02:00
}
} ) ;
2018-10-25 18:57:55 +02:00
// Remove old pending publishes
2018-05-15 06:18:50 +02:00
Object . values ( pendingById ) . filter ( function ( pendingClaim ) {
2018-10-25 18:57:55 +02:00
return byId [ pendingClaim . claim _id ] ;
2018-05-15 06:18:50 +02:00
} ) . forEach ( function ( pendingClaim ) {
delete pendingById [ pendingClaim . claim _id ] ;
} ) ;
return Object . assign ( { } , state , {
isFetchingClaimListMine : false ,
myClaims : claims ,
byId : byId ,
2018-11-08 22:49:58 +01:00
claimsByUri : byUri ,
2018-05-15 06:18:50 +02:00
pendingById : pendingById
} ) ;
} ;
2018-05-16 05:26:31 +02:00
reducers [ ACTIONS . FETCH _CHANNEL _LIST _STARTED ] = function ( state ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , { fetchingMyChannels : true } ) ;
} ;
2018-05-16 05:26:31 +02:00
reducers [ ACTIONS . FETCH _CHANNEL _LIST _COMPLETED ] = function ( state , action ) {
2018-05-15 06:18:50 +02:00
var claims = action . data . claims ;
var myChannelClaims = new Set ( state . myChannelClaims ) ;
var byId = Object . assign ( { } , state . byId ) ;
claims . forEach ( function ( claim ) {
myChannelClaims . add ( claim . claim _id ) ;
2018-10-25 18:57:55 +02:00
byId [ claim . claim _id ] = claim ;
2018-05-15 06:18:50 +02:00
} ) ;
return Object . assign ( { } , state , {
byId : byId ,
fetchingMyChannels : false ,
myChannelClaims : myChannelClaims
} ) ;
} ;
reducers [ ACTIONS . FETCH _CHANNEL _CLAIMS _STARTED ] = function ( state , action ) {
var _action$data = action . data ,
uri = _action$data . uri ,
page = _action$data . page ;
var fetchingChannelClaims = Object . assign ( { } , state . fetchingChannelClaims ) ;
fetchingChannelClaims [ uri ] = page ;
return Object . assign ( { } , state , {
2019-02-19 02:30:10 +01:00
fetchingChannelClaims : fetchingChannelClaims ,
currentChannelPage : page
2018-05-15 06:18:50 +02:00
} ) ;
} ;
reducers [ ACTIONS . FETCH _CHANNEL _CLAIMS _COMPLETED ] = function ( state , action ) {
var _action$data2 = action . data ,
uri = _action$data2 . uri ,
claims = _action$data2 . claims ,
page = _action$data2 . page ;
var claimsByChannel = Object . assign ( { } , state . claimsByChannel ) ;
var byChannel = Object . assign ( { } , claimsByChannel [ uri ] ) ;
var allClaimIds = new Set ( byChannel . all ) ;
var currentPageClaimIds = [ ] ;
var byId = Object . assign ( { } , state . byId ) ;
var fetchingChannelClaims = Object . assign ( { } , state . fetchingChannelClaims ) ;
2018-07-18 21:13:50 +02:00
var claimsByUri = Object . assign ( { } , state . claimsByUri ) ;
2018-05-15 06:18:50 +02:00
if ( claims !== undefined ) {
claims . forEach ( function ( claim ) {
allClaimIds . add ( claim . claim _id ) ;
currentPageClaimIds . push ( claim . claim _id ) ;
byId [ claim . claim _id ] = claim ;
2018-07-18 21:13:50 +02:00
claimsByUri [ 'lbry://' + claim . name + '#' + claim . claim _id ] = claim . claim _id ;
2018-05-15 06:18:50 +02:00
} ) ;
}
byChannel . all = allClaimIds ;
byChannel [ page ] = currentPageClaimIds ;
claimsByChannel [ uri ] = byChannel ;
delete fetchingChannelClaims [ uri ] ;
return Object . assign ( { } , state , {
claimsByChannel : claimsByChannel ,
byId : byId ,
2018-07-18 21:13:50 +02:00
fetchingChannelClaims : fetchingChannelClaims ,
2019-02-19 02:30:10 +01:00
claimsByUri : claimsByUri ,
currentChannelPage : page
2018-05-15 06:18:50 +02:00
} ) ;
} ;
reducers [ ACTIONS . ABANDON _CLAIM _STARTED ] = function ( state , action ) {
var claimId = action . data . claimId ;
var abandoningById = Object . assign ( { } , state . abandoningById ) ;
abandoningById [ claimId ] = true ;
return Object . assign ( { } , state , {
abandoningById : abandoningById
} ) ;
} ;
reducers [ ACTIONS . ABANDON _CLAIM _SUCCEEDED ] = function ( state , action ) {
var claimId = action . data . claimId ;
var byId = Object . assign ( { } , state . byId ) ;
var claimsByUri = Object . assign ( { } , state . claimsByUri ) ;
Object . keys ( claimsByUri ) . forEach ( function ( uri ) {
if ( claimsByUri [ uri ] === claimId ) {
delete claimsByUri [ uri ] ;
}
} ) ;
delete byId [ claimId ] ;
return Object . assign ( { } , state , {
byId : byId ,
claimsByUri : claimsByUri
} ) ;
} ;
reducers [ ACTIONS . CREATE _CHANNEL _COMPLETED ] = function ( state , action ) {
var channelClaim = action . data . channelClaim ;
var byId = Object . assign ( { } , state . byId ) ;
var myChannelClaims = new Set ( state . myChannelClaims ) ;
byId [ channelClaim . claim _id ] = channelClaim ;
myChannelClaims . add ( channelClaim . claim _id ) ;
return Object . assign ( { } , state , {
byId : byId ,
myChannelClaims : myChannelClaims
} ) ;
} ;
reducers [ ACTIONS . RESOLVE _URIS _STARTED ] = function ( state , action ) {
var uris = action . data . uris ;
var oldResolving = state . resolvingUris || [ ] ;
var newResolving = Object . assign ( [ ] , oldResolving ) ;
uris . forEach ( function ( uri ) {
if ( ! newResolving . includes ( uri ) ) {
newResolving . push ( uri ) ;
}
} ) ;
return Object . assign ( { } , state , {
resolvingUris : newResolving
} ) ;
} ;
reducers [ ACTIONS . FETCH _CHANNEL _CLAIM _COUNT _COMPLETED ] = function ( state , action ) {
var channelClaimCounts = Object . assign ( { } , state . channelClaimCounts ) ;
2019-03-11 03:03:28 +01:00
var _action$data3 = action . data ,
uri = _action$data3 . uri ,
totalClaims = _action$data3 . totalClaims ;
2018-05-15 06:18:50 +02:00
channelClaimCounts [ uri ] = totalClaims ;
return Object . assign ( { } , state , {
channelClaimCounts : channelClaimCounts
} ) ;
} ;
function claimsReducer ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 30 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-07-13 18:14:26 +02:00
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
2018-05-15 06:18:50 +02:00
exports . fileInfoReducer = fileInfoReducer ;
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2019-03-18 06:13:12 +01:00
var _sort _options = _ _webpack _require _ _ ( 31 ) ;
2018-10-23 05:31:57 +02:00
var SORT _OPTIONS = _interopRequireWildcard ( _sort _options ) ;
2019-03-18 06:13:12 +01:00
var _pages = _ _webpack _require _ _ ( 32 ) ;
2018-10-23 05:31:57 +02:00
var PAGES = _interopRequireWildcard ( _pages ) ;
2018-05-15 06:18:50 +02:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-10-23 05:31:57 +02:00
function _defineProperty ( obj , key , value ) { if ( key in obj ) { Object . defineProperty ( obj , key , { value : value , enumerable : true , configurable : true , writable : true } ) ; } else { obj [ key ] = value ; } return obj ; }
2018-05-15 06:18:50 +02:00
var reducers = { } ;
2018-10-17 20:22:17 +02:00
var defaultState = {
2018-10-23 05:31:57 +02:00
fileListPublishedSort : SORT _OPTIONS . DATE _NEW ,
2018-10-26 05:43:16 +02:00
fileListDownloadedSort : SORT _OPTIONS . DATE _NEW
2018-10-17 20:22:17 +02:00
} ;
2018-05-15 06:18:50 +02:00
reducers [ ACTIONS . FILE _LIST _STARTED ] = function ( state ) {
return Object . assign ( { } , state , {
isFetchingFileList : true
} ) ;
} ;
reducers [ ACTIONS . FILE _LIST _SUCCEEDED ] = function ( state , action ) {
var fileInfos = action . data . fileInfos ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var pendingByOutpoint = Object . assign ( { } , state . pendingByOutpoint ) ;
fileInfos . forEach ( function ( fileInfo ) {
var outpoint = fileInfo . outpoint ;
if ( outpoint ) newByOutpoint [ fileInfo . outpoint ] = fileInfo ;
} ) ;
return Object . assign ( { } , state , {
isFetchingFileList : false ,
byOutpoint : newByOutpoint ,
pendingByOutpoint : pendingByOutpoint
} ) ;
} ;
reducers [ ACTIONS . FETCH _FILE _INFO _STARTED ] = function ( state , action ) {
var outpoint = action . data . outpoint ;
var newFetching = Object . assign ( { } , state . fetching ) ;
newFetching [ outpoint ] = true ;
return Object . assign ( { } , state , {
fetching : newFetching
} ) ;
} ;
reducers [ ACTIONS . FETCH _FILE _INFO _COMPLETED ] = function ( state , action ) {
var _action$data = action . data ,
fileInfo = _action$data . fileInfo ,
outpoint = _action$data . outpoint ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newFetching = Object . assign ( { } , state . fetching ) ;
newByOutpoint [ outpoint ] = fileInfo ;
delete newFetching [ outpoint ] ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
fetching : newFetching
} ) ;
} ;
reducers [ ACTIONS . DOWNLOADING _STARTED ] = function ( state , action ) {
var _action$data2 = action . data ,
uri = _action$data2 . uri ,
outpoint = _action$data2 . outpoint ,
fileInfo = _action$data2 . fileInfo ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newDownloading = Object . assign ( { } , state . downloadingByOutpoint ) ;
var newLoading = Object . assign ( { } , state . urisLoading ) ;
newDownloading [ outpoint ] = true ;
newByOutpoint [ outpoint ] = fileInfo ;
delete newLoading [ uri ] ;
return Object . assign ( { } , state , {
downloadingByOutpoint : newDownloading ,
urisLoading : newLoading ,
byOutpoint : newByOutpoint
} ) ;
} ;
reducers [ ACTIONS . DOWNLOADING _PROGRESSED ] = function ( state , action ) {
var _action$data3 = action . data ,
outpoint = _action$data3 . outpoint ,
fileInfo = _action$data3 . fileInfo ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newDownloading = Object . assign ( { } , state . downloadingByOutpoint ) ;
newByOutpoint [ outpoint ] = fileInfo ;
newDownloading [ outpoint ] = true ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
downloadingByOutpoint : newDownloading
} ) ;
} ;
2018-10-22 14:03:02 +02:00
reducers [ ACTIONS . DOWNLOADING _CANCELED ] = function ( state , action ) {
var outpoint = action . data . outpoint ;
var newDownloading = Object . assign ( { } , state . downloadingByOutpoint ) ;
delete newDownloading [ outpoint ] ;
return Object . assign ( { } , state , {
downloadingByOutpoint : newDownloading
} ) ;
} ;
2018-05-15 06:18:50 +02:00
reducers [ ACTIONS . DOWNLOADING _COMPLETED ] = function ( state , action ) {
var _action$data4 = action . data ,
outpoint = _action$data4 . outpoint ,
fileInfo = _action$data4 . fileInfo ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var newDownloading = Object . assign ( { } , state . downloadingByOutpoint ) ;
newByOutpoint [ outpoint ] = fileInfo ;
delete newDownloading [ outpoint ] ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
downloadingByOutpoint : newDownloading
} ) ;
} ;
reducers [ ACTIONS . FILE _DELETE ] = function ( state , action ) {
var outpoint = action . data . outpoint ;
var newByOutpoint = Object . assign ( { } , state . byOutpoint ) ;
var downloadingByOutpoint = Object . assign ( { } , state . downloadingByOutpoint ) ;
delete newByOutpoint [ outpoint ] ;
delete downloadingByOutpoint [ outpoint ] ;
return Object . assign ( { } , state , {
byOutpoint : newByOutpoint ,
downloadingByOutpoint : downloadingByOutpoint
} ) ;
} ;
reducers [ ACTIONS . LOADING _VIDEO _STARTED ] = function ( state , action ) {
var uri = action . data . uri ;
var newLoading = Object . assign ( { } , state . urisLoading ) ;
newLoading [ uri ] = true ;
2018-07-13 18:14:26 +02:00
var newErrors = _extends ( { } , state . errors ) ;
if ( uri in newErrors ) delete newErrors [ uri ] ;
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
2018-07-13 18:14:26 +02:00
urisLoading : newLoading ,
errors : _extends ( { } , newErrors )
2018-05-15 06:18:50 +02:00
} ) ;
} ;
reducers [ ACTIONS . LOADING _VIDEO _FAILED ] = function ( state , action ) {
var uri = action . data . uri ;
var newLoading = Object . assign ( { } , state . urisLoading ) ;
delete newLoading [ uri ] ;
2018-07-13 18:14:26 +02:00
var newErrors = _extends ( { } , state . errors ) ;
newErrors [ uri ] = true ;
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
2018-07-13 18:14:26 +02:00
urisLoading : newLoading ,
errors : _extends ( { } , newErrors )
2018-05-15 06:18:50 +02:00
} ) ;
} ;
reducers [ ACTIONS . FETCH _DATE ] = function ( state , action ) {
var time = action . data . time ;
if ( time ) {
return Object . assign ( { } , state , {
publishedDate : time
} ) ;
}
return null ;
} ;
2018-10-23 05:31:57 +02:00
reducers [ ACTIONS . SET _FILE _LIST _SORT ] = function ( state , action ) {
var _pageSortStates ;
2018-10-17 20:22:17 +02:00
2018-10-26 05:43:16 +02:00
var pageSortStates = ( _pageSortStates = { } , _defineProperty ( _pageSortStates , PAGES . PUBLISHED , 'fileListPublishedSort' ) , _defineProperty ( _pageSortStates , PAGES . DOWNLOADED , 'fileListDownloadedSort' ) , _pageSortStates ) ;
2018-10-23 05:31:57 +02:00
var pageSortState = pageSortStates [ action . data . page ] ;
var value = action . data . value ;
return Object . assign ( { } , state , _defineProperty ( { } , pageSortState , value ) ) ;
2018-10-17 20:22:17 +02:00
} ;
2018-05-15 06:18:50 +02:00
function fileInfoReducer ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 31 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-10-23 05:31:57 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var DATE _NEW = exports . DATE _NEW = 'dateNew' ;
var DATE _OLD = exports . DATE _OLD = 'dateOld' ;
var TITLE = exports . TITLE = 'title' ;
var FILENAME = exports . FILENAME = 'filename' ;
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 32 */
2018-10-23 05:31:57 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var AUTH = exports . AUTH = 'auth' ;
var BACKUP = exports . BACKUP = 'backup' ;
var CHANNEL = exports . CHANNEL = 'channel' ;
var DISCOVER = exports . DISCOVER = 'discover' ;
var FILE = exports . FILE = 'file' ;
var DOWNLOADED = exports . DOWNLOADED = 'downloaded' ;
var PUBLISHED = exports . PUBLISHED = 'published' ;
var GET _CREDITS = exports . GET _CREDITS = 'getcredits' ;
var HELP = exports . HELP = 'help' ;
var INVITE = exports . INVITE = 'invite' ;
var PUBLISH = exports . PUBLISH = 'publish' ;
var REPORT = exports . REPORT = 'report' ;
var REWARDS = exports . REWARDS = 'rewards' ;
var SEARCH = exports . SEARCH = 'search' ;
var SEND _CREDITS = exports . SEND _CREDITS = 'send' ;
var SETTINGS = exports . SETTINGS = 'settings' ;
var SHOW = exports . SHOW = 'show' ;
var SUBSCRIPTIONS = exports . SUBSCRIPTIONS = 'subscriptions' ;
var TRANSACTION _HISTORY = exports . TRANSACTION _HISTORY = 'history' ;
var HISTORY = exports . HISTORY = 'user_history' ;
var WALLET = exports . WALLET = 'wallet' ;
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 33 */
2018-10-23 05:31:57 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-12 19:01:14 +01:00
exports . notificationsReducer = undefined ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _handleActions ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2018-05-15 06:18:50 +02:00
2019-03-18 06:13:12 +01:00
var _reduxUtils = _ _webpack _require _ _ ( 34 ) ;
2018-05-15 06:18:50 +02:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-11-12 19:01:14 +01:00
function _defineProperty ( obj , key , value ) { if ( key in obj ) { Object . defineProperty ( obj , key , { value : value , enumerable : true , configurable : true , writable : true } ) ; } else { obj [ key ] = value ; } return obj ; }
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
// @flow
2019-02-18 17:24:18 +01:00
/ * : : i m p o r t t y p e {
NotificationState ,
DoToast ,
DoError ,
DoNotification ,
DoEditNotification ,
DoDeleteNotification ,
2018-11-13 01:20:52 +01:00
} from 'types/Notification' ; * /
2018-11-12 19:01:14 +01:00
var defaultState /*: NotificationState*/ = {
2018-11-13 01:20:52 +01:00
notifications : [ ] ,
2018-11-12 19:01:14 +01:00
toasts : [ ] ,
errors : [ ]
2018-05-15 06:18:50 +02:00
} ;
2018-11-12 19:01:14 +01:00
var notificationsReducer = ( 0 , _reduxUtils . handleActions ) ( ( _handleActions = { } , _defineProperty ( _handleActions , ACTIONS . CREATE _TOAST , function ( state /*: NotificationState*/ , action /*: DoToast*/ ) {
var toast = action . data ;
var newToasts = state . toasts . slice ( ) ;
newToasts . push ( toast ) ;
return _extends ( { } , state , {
toasts : newToasts
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-12 19:01:14 +01:00
} ) , _defineProperty ( _handleActions , ACTIONS . DISMISS _TOAST , function ( state /*: NotificationState*/ ) {
var newToasts = state . toasts . slice ( ) ;
newToasts . shift ( ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
return _extends ( { } , state , {
toasts : newToasts
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-13 01:20:52 +01:00
} ) , _defineProperty ( _handleActions , ACTIONS . CREATE _NOTIFICATION , function ( state /*: NotificationState*/ , action /*: DoNotification*/ ) {
var notification = action . data ;
var newNotifications = state . notifications . slice ( ) ;
newNotifications . push ( notification ) ;
2018-11-12 19:01:14 +01:00
return _extends ( { } , state , {
2018-11-13 01:20:52 +01:00
notifications : newNotifications
2018-11-12 19:01:14 +01:00
} ) ;
2018-11-13 01:20:52 +01:00
} ) , _defineProperty ( _handleActions , ACTIONS . EDIT _NOTIFICATION , function ( state /*: NotificationState*/ , action /*: DoEditNotification*/ ) {
var notification = action . data . notification ;
2018-05-15 06:18:50 +02:00
2018-11-13 01:20:52 +01:00
var notifications = state . notifications . slice ( ) ;
2018-05-15 06:18:50 +02:00
2018-11-13 01:20:52 +01:00
notifications = notifications . map ( function ( pastNotification ) {
return pastNotification . id === notification . id ? notification : pastNotification ;
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-12 19:01:14 +01:00
return _extends ( { } , state , {
2018-11-13 01:20:52 +01:00
notifications : notifications
2018-11-12 19:01:14 +01:00
} ) ;
2018-11-13 01:20:52 +01:00
} ) , _defineProperty ( _handleActions , ACTIONS . DELETE _NOTIFICATION , function ( state /*: NotificationState*/ , action /*: DoDeleteNotification*/ ) {
2018-11-12 19:01:14 +01:00
var id = action . data . id ;
2018-05-15 06:18:50 +02:00
2018-11-13 01:20:52 +01:00
var newNotifications = state . notifications . slice ( ) ;
newNotifications = newNotifications . filter ( function ( notification ) {
2018-11-12 19:01:14 +01:00
return notification . id !== id ;
} ) ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
return _extends ( { } , state , {
2018-11-13 01:20:52 +01:00
notifications : newNotifications
2018-11-12 19:01:14 +01:00
} ) ;
2019-02-18 17:24:18 +01:00
} ) , _defineProperty ( _handleActions , ACTIONS . CREATE _ERROR , function ( state /*: NotificationState*/ , action /*: DoError*/ ) {
2018-11-12 19:01:14 +01:00
var error = action . data ;
var newErrors = state . errors . slice ( ) ;
newErrors . push ( error ) ;
return _extends ( { } , state , {
errors : newErrors
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . DISMISS _ERROR , function ( state /*: NotificationState*/ ) {
var newErrors = state . errors . slice ( ) ;
newErrors . shift ( ) ;
return _extends ( { } , state , {
errors : newErrors
} ) ;
} ) , _handleActions ) , defaultState ) ;
exports . notificationsReducer = notificationsReducer ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 34 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-12 19:01:14 +01:00
// util for creating reducers
// based off of redux-actions
// https://redux-actions.js.org/docs/api/handleAction.html#handleactions
// eslint-disable-next-line import/prefer-default-export
var handleActions = exports . handleActions = function handleActions ( actionMap , defaultState ) {
return function ( ) {
var state = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action = arguments [ 1 ] ;
var handler = actionMap [ action . type ] ;
if ( handler ) {
var newState = handler ( state , action ) ;
return Object . assign ( { } , state , newState ) ;
}
// just return the original state if no handler
// returning a copy here breaks redux-persist
return state ;
} ;
} ;
2018-05-15 06:18:50 +02:00
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 35 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . searchReducer = undefined ;
2019-02-18 17:24:18 +01:00
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
2018-05-15 06:18:50 +02:00
2019-02-18 17:24:18 +01:00
var _options , _handleActions ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
2019-03-18 06:13:12 +01:00
var _reduxUtils = _ _webpack _require _ _ ( 34 ) ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _search = _ _webpack _require _ _ ( 16 ) ;
2019-02-18 17:24:18 +01:00
2018-05-15 06:18:50 +02:00
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2019-02-18 17:24:18 +01:00
function _defineProperty ( obj , key , value ) { if ( key in obj ) { Object . defineProperty ( obj , key , { value : value , enumerable : true , configurable : true , writable : true } ) ; } else { obj [ key ] = value ; } return obj ; } // @flow
2018-05-15 06:18:50 +02:00
2019-02-18 17:24:18 +01:00
/ * : : i m p o r t t y p e {
SearchState ,
SearchSuccess ,
UpdateSearchQuery ,
UpdateSearchSuggestions ,
HistoryNavigate ,
UpdateSearchOptions ,
} from 'types/Search' ; * /
2018-05-15 06:18:50 +02:00
var defaultState = {
isActive : false , // does the user have any typed text in the search input
focused : false , // is the search input focused
searchQuery : '' , // needs to be an empty string for input focusing
2019-02-18 17:24:18 +01:00
options : ( _options = { } , _defineProperty ( _options , _search . SEARCH _OPTIONS . RESULT _COUNT , 30 ) , _defineProperty ( _options , _search . SEARCH _OPTIONS . CLAIM _TYPE , _search . SEARCH _OPTIONS . INCLUDE _FILES _AND _CHANNELS ) , _defineProperty ( _options , _search . SEARCH _OPTIONS . MEDIA _AUDIO , true ) , _defineProperty ( _options , _search . SEARCH _OPTIONS . MEDIA _VIDEO , true ) , _defineProperty ( _options , _search . SEARCH _OPTIONS . MEDIA _TEXT , true ) , _defineProperty ( _options , _search . SEARCH _OPTIONS . MEDIA _IMAGE , true ) , _defineProperty ( _options , _search . SEARCH _OPTIONS . MEDIA _APPLICATION , true ) , _options ) ,
2018-08-15 05:57:35 +02:00
suggestions : { } ,
2018-05-15 06:18:50 +02:00
urisByQuery : { }
} ;
var searchReducer = exports . searchReducer = ( 0 , _reduxUtils . handleActions ) ( ( _handleActions = { } , _defineProperty ( _handleActions , ACTIONS . SEARCH _START , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
searching : true
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _SUCCESS , function ( state /*: SearchState*/ , action /*: SearchSuccess*/ ) /*: SearchState*/ {
var _action$data = action . data ,
query = _action$data . query ,
uris = _action$data . uris ;
return _extends ( { } , state , {
searching : false ,
urisByQuery : Object . assign ( { } , state . urisByQuery , _defineProperty ( { } , query , uris ) )
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _FAIL , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
searching : false
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . UPDATE _SEARCH _QUERY , function ( state /*: SearchState*/ , action /*: UpdateSearchQuery*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
searchQuery : action . data . query ,
isActive : true
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . UPDATE _SEARCH _SUGGESTIONS , function ( state /*: SearchState*/ , action /*: UpdateSearchSuggestions*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
2018-08-15 05:57:35 +02:00
suggestions : _extends ( { } , state . suggestions , _defineProperty ( { } , action . data . query , action . data . suggestions ) )
2018-05-15 06:18:50 +02:00
} ) ;
2018-06-04 17:35:34 +02:00
} ) , _defineProperty ( _handleActions , ACTIONS . HISTORY _NAVIGATE , function ( state /*: SearchState*/ , action /*: HistoryNavigate*/ ) /*: SearchState*/ {
var url = action . data . url ;
2018-05-15 06:18:50 +02:00
return _extends ( { } , state , {
2018-06-04 17:35:34 +02:00
searchQuery : url . indexOf ( '/search' ) === 0 ? url . slice ( 14 ) : '' ,
2018-08-15 05:57:35 +02:00
isActive : url . indexOf ( '/search' ) === 0 ,
suggestions : { }
2018-05-15 06:18:50 +02:00
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . DISMISS _NOTIFICATION , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
isActive : false
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _FOCUS , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
focused : true
} ) ;
} ) , _defineProperty ( _handleActions , ACTIONS . SEARCH _BLUR , function ( state /*: SearchState*/ ) /*: SearchState*/ {
return _extends ( { } , state , {
focused : false
} ) ;
2019-02-18 17:24:18 +01:00
} ) , _defineProperty ( _handleActions , ACTIONS . UPDATE _SEARCH _OPTIONS , function ( state /*: SearchState*/ , action /*: UpdateSearchOptions*/ ) /*: SearchState*/ {
var oldOptions = state . options ;
var newOptions = action . data ;
var options = _extends ( { } , oldOptions , newOptions ) ;
return _extends ( { } , state , {
options : options
} ) ;
2018-05-15 06:18:50 +02:00
} ) , _handleActions ) , defaultState ) ;
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 36 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
exports . walletReducer = walletReducer ;
2018-11-12 19:01:14 +01:00
var _action _types = _ _webpack _require _ _ ( 2 ) ;
2018-05-15 06:18:50 +02:00
var ACTIONS = _interopRequireWildcard ( _action _types ) ;
function _interopRequireWildcard ( obj ) { if ( obj && obj . _ _esModule ) { return obj ; } else { var newObj = { } ; if ( obj != null ) { for ( var key in obj ) { if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) newObj [ key ] = obj [ key ] ; } } newObj . default = obj ; return newObj ; } }
2018-07-26 01:31:32 +02:00
var reducers = { } ; // @flow
2018-05-15 06:18:50 +02:00
var buildDraftTransaction = function buildDraftTransaction ( ) {
return {
amount : undefined ,
address : undefined
} ;
} ;
2018-07-25 03:05:31 +02:00
// TODO: Split into common success and failure types
// See details in https://github.com/lbryio/lbry/issues/1307
2019-02-18 17:24:18 +01:00
/ * : : t y p e A c t i o n R e s u l t = {
type : any ,
result : any ,
2018-07-25 03:05:31 +02:00
} ; * /
2019-02-18 17:24:18 +01:00
/ * : : t y p e W a l l e t S t a t e = {
balance : any ,
blocks : any ,
latestBlock : ? number ,
transactions : any ,
fetchingTransactions : boolean ,
gettingNewAddress : boolean ,
draftTransaction : any ,
sendingSupport : boolean ,
walletIsEncrypted : boolean ,
walletEncryptPending : boolean ,
walletEncryptSucceded : ? boolean ,
walletEncryptResult : ? boolean ,
walletDecryptPending : boolean ,
walletDecryptSucceded : ? boolean ,
walletDecryptResult : ? boolean ,
walletUnlockPending : boolean ,
walletUnlockSucceded : ? boolean ,
walletUnlockResult : ? boolean ,
walletLockPending : boolean ,
walletLockSucceded : ? boolean ,
walletLockResult : ? boolean ,
2018-07-26 01:31:32 +02:00
} ; * /
2018-07-25 03:05:31 +02:00
2018-05-15 06:18:50 +02:00
var defaultState = {
balance : undefined ,
blocks : { } ,
2018-11-07 16:55:44 +01:00
latestBlock : undefined ,
2018-05-15 06:18:50 +02:00
transactions : { } ,
fetchingTransactions : false ,
gettingNewAddress : false ,
draftTransaction : buildDraftTransaction ( ) ,
2018-07-18 20:15:33 +02:00
sendingSupport : false ,
walletIsEncrypted : false ,
walletEncryptPending : false ,
walletEncryptSucceded : null ,
2018-07-25 03:05:31 +02:00
walletEncryptResult : null ,
2018-07-18 20:15:33 +02:00
walletDecryptPending : false ,
walletDecryptSucceded : null ,
2018-07-25 03:05:31 +02:00
walletDecryptResult : null ,
2018-07-18 20:15:33 +02:00
walletUnlockPending : false ,
walletUnlockSucceded : null ,
2018-07-25 03:05:31 +02:00
walletUnlockResult : null ,
walletLockPending : false ,
walletLockSucceded : null ,
2018-10-17 20:22:17 +02:00
walletLockResult : null ,
transactionListFilter : 'all'
2018-05-15 06:18:50 +02:00
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . FETCH _TRANSACTIONS _STARTED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
fetchingTransactions : true
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . FETCH _TRANSACTIONS _COMPLETED ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
var byId = Object . assign ( { } , state . transactions ) ;
var transactions = action . data . transactions ;
transactions . forEach ( function ( transaction ) {
byId [ transaction . txid ] = transaction ;
} ) ;
return Object . assign ( { } , state , {
transactions : byId ,
fetchingTransactions : false
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . GET _NEW _ADDRESS _STARTED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
gettingNewAddress : true
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . GET _NEW _ADDRESS _COMPLETED ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
var address = action . data . address ;
// Say no to localStorage!
return Object . assign ( { } , state , {
gettingNewAddress : false ,
receiveAddress : address
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . UPDATE _BALANCE ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
balance : action . data . balance
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . CHECK _ADDRESS _IS _MINE _STARTED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
checkingAddressOwnership : true
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . CHECK _ADDRESS _IS _MINE _COMPLETED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
checkingAddressOwnership : false
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SET _DRAFT _TRANSACTION _AMOUNT ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
var oldDraft = state . draftTransaction ;
var newDraft = Object . assign ( { } , oldDraft , {
amount : parseFloat ( action . data . amount )
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraft
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SET _DRAFT _TRANSACTION _ADDRESS ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
var oldDraft = state . draftTransaction ;
var newDraft = Object . assign ( { } , oldDraft , {
address : action . data . address
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraft
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SEND _TRANSACTION _STARTED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
var newDraftTransaction = Object . assign ( { } , state . draftTransaction , {
sending : true
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraftTransaction
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SEND _TRANSACTION _COMPLETED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
draftTransaction : buildDraftTransaction ( )
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SEND _TRANSACTION _FAILED ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
var newDraftTransaction = Object . assign ( { } , state . draftTransaction , {
sending : false ,
error : action . data . error
} ) ;
return Object . assign ( { } , state , {
draftTransaction : newDraftTransaction
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SUPPORT _TRANSACTION _STARTED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
sendingSupport : true
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SUPPORT _TRANSACTION _COMPLETED ] = function ( state /*: WalletState*/ ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
sendingSupport : false
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . SUPPORT _TRANSACTION _FAILED ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
return Object . assign ( { } , state , {
error : action . data . error ,
sendingSupport : false
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . FETCH _BLOCK _SUCCESS ] = function ( state /*: WalletState*/ , action ) {
2018-05-15 06:18:50 +02:00
var _action$data = action . data ,
block = _action$data . block ,
height = _action$data . block . height ;
var blocks = Object . assign ( { } , state . blocks ) ;
blocks [ height ] = block ;
return Object . assign ( { } , state , { blocks : blocks } ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _STATUS _COMPLETED ] = function ( state /*: WalletState*/ , action ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
2018-08-15 20:17:38 +02:00
walletIsEncrypted : action . result
2018-07-18 20:15:33 +02:00
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _ENCRYPT _START ] = function ( state /*: WalletState*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletEncryptPending : true ,
walletEncryptSucceded : null ,
walletEncryptResult : null
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _ENCRYPT _COMPLETED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletEncryptPending : false ,
walletEncryptSucceded : true ,
walletEncryptResult : action . result
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _ENCRYPT _FAILED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletEncryptPending : false ,
walletEncryptSucceded : false ,
walletEncryptResult : action . result
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _DECRYPT _START ] = function ( state /*: WalletState*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletDecryptPending : true ,
walletDecryptSucceded : null ,
walletDecryptResult : null
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _DECRYPT _COMPLETED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletDecryptPending : false ,
walletDecryptSucceded : true ,
walletDecryptResult : action . result
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _DECRYPT _FAILED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletDecryptPending : false ,
walletDecryptSucceded : false ,
walletDecryptResult : action . result
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _UNLOCK _START ] = function ( state /*: WalletState*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletUnlockPending : true ,
walletUnlockSucceded : null ,
walletUnlockResult : null
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _UNLOCK _COMPLETED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletUnlockPending : false ,
walletUnlockSucceded : true ,
walletUnlockResult : action . result
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _UNLOCK _FAILED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletUnlockPending : false ,
walletUnlockSucceded : false ,
walletUnlockResult : action . result
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _LOCK _START ] = function ( state /*: WalletState*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletLockPending : false ,
walletLockSucceded : null ,
walletLockResult : null
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _LOCK _COMPLETED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletLockPending : false ,
walletLockSucceded : true ,
walletLockResult : action . result
} ) ;
} ;
2018-07-25 03:05:31 +02:00
reducers [ ACTIONS . WALLET _LOCK _FAILED ] = function ( state /*: WalletState*/ , action /*: ActionResult*/ ) {
2018-07-18 20:15:33 +02:00
return Object . assign ( { } , state , {
walletLockPending : false ,
walletLockSucceded : false ,
walletLockResult : action . result
} ) ;
} ;
2018-10-17 20:22:17 +02:00
reducers [ ACTIONS . SET _TRANSACTION _LIST _FILTER ] = function ( state /*: WalletState*/ , action /*: {}*/ ) {
return Object . assign ( { } , state , {
transactionListFilter : action . data
} ) ;
} ;
2018-11-07 16:55:44 +01:00
reducers [ ACTIONS . UPDATE _CURRENT _HEIGHT ] = function ( state /*: WalletState*/ , action /*: { data: number }*/ ) {
return Object . assign ( { } , state , {
latestBlock : action . data
} ) ;
} ;
2018-05-15 06:18:50 +02:00
function walletReducer ( ) {
2018-08-02 15:41:44 +02:00
var state /*: WalletState*/ = arguments . length > 0 && arguments [ 0 ] !== undefined ? arguments [ 0 ] : defaultState ;
var action /*: ActionResult*/ = arguments [ 1 ] ;
2018-05-15 06:18:50 +02:00
var handler = reducers [ action . type ] ;
if ( handler ) return handler ( state , action ) ;
return state ;
}
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 37 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
2018-11-12 19:01:14 +01:00
exports . selectError = exports . selectToast = exports . selectState = undefined ;
var _extends = Object . assign || function ( target ) { for ( var i = 1 ; i < arguments . length ; i ++ ) { var source = arguments [ i ] ; for ( var key in source ) { if ( Object . prototype . hasOwnProperty . call ( source , key ) ) { target [ key ] = source [ key ] ; } } } return target ; } ;
2018-05-15 06:18:50 +02:00
2019-03-11 03:03:28 +01:00
var _reselect = _ _webpack _require _ _ ( 14 ) ;
2018-05-15 06:18:50 +02:00
var selectState = exports . selectState = function selectState ( state ) {
return state . notifications || { } ;
} ;
2018-11-12 19:01:14 +01:00
var selectToast = exports . selectToast = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
if ( state . toasts . length ) {
var _state$toasts$ = state . toasts [ 0 ] ,
id = _state$toasts$ . id ,
params = _state$toasts$ . params ;
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
return _extends ( {
id : id
} , params ) ;
}
2018-05-15 06:18:50 +02:00
2018-11-12 19:01:14 +01:00
return null ;
2018-05-15 06:18:50 +02:00
} ) ;
2018-11-12 19:01:14 +01:00
var selectError = exports . selectError = ( 0 , _reselect . createSelector ) ( selectState , function ( state ) {
if ( state . errors . length ) {
var error = state . errors [ 0 ] . error ;
return {
error : error
} ;
2018-05-15 06:18:50 +02:00
}
2018-11-12 19:01:14 +01:00
return null ;
2018-05-15 06:18:50 +02:00
} ) ;
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 38 */
2018-05-15 06:18:50 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-05-30 21:34:55 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
var API _DOWN = exports . API _DOWN = 'apiDown' ;
var READY = exports . READY = 'ready' ;
var IN _PROGRESS = exports . IN _PROGRESS = 'inProgress' ;
var COMPLETE = exports . COMPLETE = 'complete' ;
var MANUAL = exports . MANUAL = 'manual' ;
/***/ } ) ,
2019-03-18 06:13:12 +01:00
/* 39 */
2018-05-30 21:34:55 +02:00
/***/ ( function ( module , exports , _ _webpack _require _ _ ) {
"use strict" ;
2018-05-15 06:18:50 +02:00
Object . defineProperty ( exports , "__esModule" , {
value : true
} ) ;
/* hardcoded names still exist for these in reducers/settings.js - only discovered when debugging */
2019-02-18 17:24:18 +01:00
/ * M a n y S E T T I N G S a r e s t o r e d i n t h e l o c a l S t o r a g e b y t h e i r n a m e -
2018-05-15 06:18:50 +02:00
be careful about changing the value of a SETTINGS constant , as doing so can invalidate existing SETTINGS * /
var CREDIT _REQUIRED _ACKNOWLEDGED = exports . CREDIT _REQUIRED _ACKNOWLEDGED = 'credit_required_acknowledged' ;
var NEW _USER _ACKNOWLEDGED = exports . NEW _USER _ACKNOWLEDGED = 'welcome_acknowledged' ;
var EMAIL _COLLECTION _ACKNOWLEDGED = exports . EMAIL _COLLECTION _ACKNOWLEDGED = 'email_collection_acknowledged' ;
var LANGUAGE = exports . LANGUAGE = 'language' ;
var SHOW _NSFW = exports . SHOW _NSFW = 'showNsfw' ;
var SHOW _UNAVAILABLE = exports . SHOW _UNAVAILABLE = 'showUnavailable' ;
var INSTANT _PURCHASE _ENABLED = exports . INSTANT _PURCHASE _ENABLED = 'instantPurchaseEnabled' ;
var INSTANT _PURCHASE _MAX = exports . INSTANT _PURCHASE _MAX = 'instantPurchaseMax' ;
var THEME = exports . THEME = 'theme' ;
var THEMES = exports . THEMES = 'themes' ;
var AUTOMATIC _DARK _MODE _ENABLED = exports . AUTOMATIC _DARK _MODE _ENABLED = 'automaticDarkModeEnabled' ;
// mobile settings
var BACKGROUND _PLAY _ENABLED = exports . BACKGROUND _PLAY _ENABLED = 'backgroundPlayEnabled' ;
var FOREGROUND _NOTIFICATION _ENABLED = exports . FOREGROUND _NOTIFICATION _ENABLED = 'foregroundNotificationEnabled' ;
var KEEP _DAEMON _RUNNING = exports . KEEP _DAEMON _RUNNING = 'keepDaemonRunning' ;
/***/ } )
/******/ ] ) ;
} ) ;