diff --git a/ui/modal/modalRouter/view.jsx b/ui/modal/modalRouter/view.jsx index 7168f2f98..e561cccbd 100644 --- a/ui/modal/modalRouter/view.jsx +++ b/ui/modal/modalRouter/view.jsx @@ -1,196 +1,56 @@ // @flow import React from 'react'; import { withRouter } from 'react-router'; -import { lazyImport } from 'util/lazyImport'; -import * as MODALS from 'constants/modal_types'; import LoadingBarOneOff from 'component/loadingBarOneOff'; +import * as MODALS from 'constants/modal_types'; +import { lazyImport } from 'util/lazyImport'; -const ModalAffirmPurchase = lazyImport(() => - import('modal/modalAffirmPurchase' /* webpackChunkName: "modalAffirmPurchase" */) -); -const ModalAutoGenerateThumbnail = lazyImport(() => - import('modal/modalAutoGenerateThumbnail' /* webpackChunkName: "modalAutoGenerateThumbnail" */) -); -const ModalAutoUpdateDownloaded = lazyImport(() => - import('modal/modalAutoUpdateDownloaded' /* webpackChunkName: "modalAutoUpdateDownloaded" */) -); -const ModalBlockChannel = lazyImport(() => - import('modal/modalBlockChannel' /* webpackChunkName: "modalBlockChannel" */) -); -const ModalClaimCollectionAdd = lazyImport(() => - import('modal/modalClaimCollectionAdd' /* webpackChunkName: "modalClaimCollectionAdd" */) -); -const ModalConfirm = lazyImport(() => import('modal/modalConfirm' /* webpackChunkName: "modalConfirm" */)); -const ModalConfirmAge = lazyImport(() => import('modal/modalConfirmAge' /* webpackChunkName: "modalConfirmAge" */)); -const ModalConfirmThumbnailUpload = lazyImport(() => - import('modal/modalConfirmThumbnailUpload' /* webpackChunkName: "modalConfirmThumbnailUpload" */) -); -const ModalConfirmTransaction = lazyImport(() => - import('modal/modalConfirmTransaction' /* webpackChunkName: "modalConfirmTransaction" */) -); -const ModalDeleteCollection = lazyImport(() => - import('modal/modalRemoveCollection' /* webpackChunkName: "modalRemoveCollection" */) -); -const ModalDownloading = lazyImport(() => import('modal/modalDownloading' /* webpackChunkName: "modalDownloading" */)); -const ModalError = lazyImport(() => import('modal/modalError' /* webpackChunkName: "modalError" */)); -const ModalFileSelection = lazyImport(() => - import('modal/modalFileSelection' /* webpackChunkName: "modalFileSelection" */) -); -const ModalFileTimeout = lazyImport(() => import('modal/modalFileTimeout' /* webpackChunkName: "modalFileTimeout" */)); -const ModalFirstReward = lazyImport(() => import('modal/modalFirstReward' /* webpackChunkName: "modalFirstReward" */)); -const ModalImageUpload = lazyImport(() => import('modal/modalImageUpload' /* webpackChunkName: "modalImageUpload" */)); -const ModalMassTipsUnlock = lazyImport(() => - import('modal/modalMassTipUnlock' /* webpackChunkName: "modalMassTipUnlock" */) -); -const ModalMinChannelAge = lazyImport(() => - import('modal/modalMinChannelAge' /* webpackChunkName: "modalMinChannelAge" */) -); -const ModalMobileSearch = lazyImport(() => - import('modal/modalMobileSearch' /* webpackChunkName: "modalMobileSearch" */) -); -const ModalOpenExternalResource = lazyImport(() => - import('modal/modalOpenExternalResource' /* webpackChunkName: "modalOpenExternalResource" */) -); -const ModalPasswordUnsave = lazyImport(() => - import('modal/modalPasswordUnsave' /* webpackChunkName: "modalPasswordUnsave" */) -); -const ModalPhoneCollection = lazyImport(() => - import('modal/modalPhoneCollection' /* webpackChunkName: "modalPhoneCollection" */) -); -const ModalPublish = lazyImport(() => import('modal/modalPublish' /* webpackChunkName: "modalPublish" */)); -const ModalPublishPreview = lazyImport(() => - import('modal/modalPublishPreview' /* webpackChunkName: "modalPublishPreview" */) -); -const ModalRemoveCard = lazyImport(() => import('modal/modalRemoveCard' /* webpackChunkName: "modalRemoveCard" */)); -const ModalConfirmOdyseeMembership = lazyImport(() => - import('modal/modalConfirmOdyseeMembership' /* webpackChunkName: "modalConfirmOdyseeMembership" */) -); -const OdyseeMembershipSplash = lazyImport(() => - import('modal/modalMembershipSplash' /* webpackChunkName: "modalMembershipSplash" */) -); -const ModalRemoveComment = lazyImport(() => - import('modal/modalRemoveComment' /* webpackChunkName: "modalRemoveComment" */) -); -const ModalRemoveFile = lazyImport(() => import('modal/modalRemoveFile' /* webpackChunkName: "modalRemoveFile" */)); -const ModalRevokeClaim = lazyImport(() => import('modal/modalRevokeClaim' /* webpackChunkName: "modalRevokeClaim" */)); -const ModalRewardCode = lazyImport(() => import('modal/modalRewardCode' /* webpackChunkName: "modalRewardCode" */)); -const ModalSendTip = lazyImport(() => import('modal/modalSendTip' /* webpackChunkName: "modalSendTip" */)); -const ModalSetReferrer = lazyImport(() => import('modal/modalSetReferrer' /* webpackChunkName: "modalSetReferrer" */)); -const ModalSocialShare = lazyImport(() => import('modal/modalSocialShare' /* webpackChunkName: "modalSocialShare" */)); -const ModalSupportsLiquidate = lazyImport(() => - import('modal/modalSupportsLiquidate' /* webpackChunkName: "modalSupportsLiquidate" */) -); -const ModalSyncEnable = lazyImport(() => import('modal/modalSyncEnable' /* webpackChunkName: "modalSyncEnable" */)); -const ModalTransactionFailed = lazyImport(() => - import('modal/modalTransactionFailed' /* webpackChunkName: "modalTransactionFailed" */) -); -const ModalUpgrade = lazyImport(() => import('modal/modalUpgrade' /* webpackChunkName: "modalUpgrade" */)); -const ModalViewImage = lazyImport(() => import('modal/modalViewImage' /* webpackChunkName: "modalViewImage" */)); -const ModalWalletDecrypt = lazyImport(() => - import('modal/modalWalletDecrypt' /* webpackChunkName: "modalWalletDecrypt" */) -); -const ModalWalletEncrypt = lazyImport(() => - import('modal/modalWalletEncrypt' /* webpackChunkName: "modalWalletEncrypt" */) -); -const ModalWalletUnlock = lazyImport(() => - import('modal/modalWalletUnlock' /* webpackChunkName: "modalWalletUnlock" */) -); -const ModalYoutubeWelcome = lazyImport(() => - import('modal/modalYoutubeWelcome' /* webpackChunkName: "modalYoutubeWelcome" */) -); - -function getModal(id) { - switch (id) { - case MODALS.CONFIRM: - return ModalConfirm; - case MODALS.UPGRADE: - return ModalUpgrade; - case MODALS.DOWNLOADING: - return ModalDownloading; - case MODALS.AUTO_GENERATE_THUMBNAIL: - return ModalAutoGenerateThumbnail; - case MODALS.AUTO_UPDATE_DOWNLOADED: - return ModalAutoUpdateDownloaded; - case MODALS.ERROR: - return ModalError; - case MODALS.FILE_TIMEOUT: - return ModalFileTimeout; - case MODALS.FIRST_REWARD: - return ModalFirstReward; - case MODALS.TRANSACTION_FAILED: - return ModalTransactionFailed; - case MODALS.CONFIRM_FILE_REMOVE: - return ModalRemoveFile; - case MODALS.AFFIRM_PURCHASE: - return ModalAffirmPurchase; - case MODALS.CONFIRM_CLAIM_REVOKE: - return ModalRevokeClaim; - case MODALS.PHONE_COLLECTION: - return ModalPhoneCollection; - case MODALS.SEND_TIP: - return ModalSendTip; - case MODALS.MEMBERSHIP_SPLASH: - return OdyseeMembershipSplash; - case MODALS.SOCIAL_SHARE: - return ModalSocialShare; - case MODALS.PUBLISH: - return ModalPublish; - case MODALS.PUBLISH_PREVIEW: - return ModalPublishPreview; - case MODALS.CONFIRM_EXTERNAL_RESOURCE: - return ModalOpenExternalResource; - case MODALS.CONFIRM_TRANSACTION: - return ModalConfirmTransaction; - case MODALS.CONFIRM_THUMBNAIL_UPLOAD: - return ModalConfirmThumbnailUpload; - case MODALS.WALLET_ENCRYPT: - return ModalWalletEncrypt; - case MODALS.WALLET_DECRYPT: - return ModalWalletDecrypt; - case MODALS.WALLET_UNLOCK: - return ModalWalletUnlock; - case MODALS.WALLET_PASSWORD_UNSAVE: - return ModalPasswordUnsave; - case MODALS.REWARD_GENERATED_CODE: - return ModalRewardCode; - case MODALS.YOUTUBE_WELCOME: - return ModalYoutubeWelcome; - case MODALS.SET_REFERRER: - return ModalSetReferrer; - case MODALS.CONFIRM_AGE: - return ModalConfirmAge; - case MODALS.FILE_SELECTION: - return ModalFileSelection; - case MODALS.LIQUIDATE_SUPPORTS: - return ModalSupportsLiquidate; - case MODALS.IMAGE_UPLOAD: - return ModalImageUpload; - case MODALS.SYNC_ENABLE: - return ModalSyncEnable; - case MODALS.MOBILE_SEARCH: - return ModalMobileSearch; - case MODALS.VIEW_IMAGE: - return ModalViewImage; - case MODALS.MASS_TIP_UNLOCK: - return ModalMassTipsUnlock; - case MODALS.BLOCK_CHANNEL: - return ModalBlockChannel; - case MODALS.MIN_CHANNEL_AGE: - return ModalMinChannelAge; - case MODALS.COLLECTION_ADD: - return ModalClaimCollectionAdd; - case MODALS.COLLECTION_DELETE: - return ModalDeleteCollection; - case MODALS.CONFIRM_REMOVE_CARD: - return ModalRemoveCard; - case MODALS.CONFIRM_ODYSEE_MEMBERSHIP: - return ModalConfirmOdyseeMembership; - case MODALS.CONFIRM_REMOVE_COMMENT: - return ModalRemoveComment; - default: - return null; - } -} +// prettier-ignore +const MAP = Object.freeze({ + [MODALS.AFFIRM_PURCHASE]: lazyImport(() => import('modal/modalAffirmPurchase' /* webpackChunkName: "modalAffirmPurchase" */)), + [MODALS.AUTO_GENERATE_THUMBNAIL]: lazyImport(() => import('modal/modalAutoGenerateThumbnail' /* webpackChunkName: "modalAutoGenerateThumbnail" */)), + [MODALS.AUTO_UPDATE_DOWNLOADED]: lazyImport(() => import('modal/modalAutoUpdateDownloaded' /* webpackChunkName: "modalAutoUpdateDownloaded" */)), + [MODALS.BLOCK_CHANNEL]: lazyImport(() => import('modal/modalBlockChannel' /* webpackChunkName: "modalBlockChannel" */)), + [MODALS.COLLECTION_ADD]: lazyImport(() => import('modal/modalClaimCollectionAdd' /* webpackChunkName: "modalClaimCollectionAdd" */)), + [MODALS.COLLECTION_DELETE]: lazyImport(() => import('modal/modalRemoveCollection' /* webpackChunkName: "modalRemoveCollection" */)), + [MODALS.CONFIRM]: lazyImport(() => import('modal/modalConfirm' /* webpackChunkName: "modalConfirm" */)), + [MODALS.CONFIRM_AGE]: lazyImport(() => import('modal/modalConfirmAge' /* webpackChunkName: "modalConfirmAge" */)), + [MODALS.CONFIRM_CLAIM_REVOKE]: lazyImport(() => import('modal/modalRevokeClaim' /* webpackChunkName: "modalRevokeClaim" */)), + [MODALS.CONFIRM_EXTERNAL_RESOURCE]: lazyImport(() => import('modal/modalOpenExternalResource' /* webpackChunkName: "modalOpenExternalResource" */)), + [MODALS.CONFIRM_FILE_REMOVE]: lazyImport(() => import('modal/modalRemoveFile' /* webpackChunkName: "modalRemoveFile" */)), + [MODALS.CONFIRM_ODYSEE_MEMBERSHIP]: lazyImport(() => import('modal/modalConfirmOdyseeMembership' /* webpackChunkName: "modalConfirmOdyseeMembership" */)), + [MODALS.CONFIRM_REMOVE_CARD]: lazyImport(() => import('modal/modalRemoveCard' /* webpackChunkName: "modalRemoveCard" */)), + [MODALS.CONFIRM_REMOVE_COMMENT]: lazyImport(() => import('modal/modalRemoveComment' /* webpackChunkName: "modalRemoveComment" */)), + [MODALS.CONFIRM_THUMBNAIL_UPLOAD]: lazyImport(() => import('modal/modalConfirmThumbnailUpload' /* webpackChunkName: "modalConfirmThumbnailUpload" */)), + [MODALS.CONFIRM_TRANSACTION]: lazyImport(() => import('modal/modalConfirmTransaction' /* webpackChunkName: "modalConfirmTransaction" */)), + [MODALS.DOWNLOADING]: lazyImport(() => import('modal/modalDownloading' /* webpackChunkName: "modalDownloading" */)), + [MODALS.ERROR]: lazyImport(() => import('modal/modalError' /* webpackChunkName: "modalError" */)), + [MODALS.FILE_SELECTION]: lazyImport(() => import('modal/modalFileSelection' /* webpackChunkName: "modalFileSelection" */)), + [MODALS.FILE_TIMEOUT]: lazyImport(() => import('modal/modalFileTimeout' /* webpackChunkName: "modalFileTimeout" */)), + [MODALS.FIRST_REWARD]: lazyImport(() => import('modal/modalFirstReward' /* webpackChunkName: "modalFirstReward" */)), + [MODALS.IMAGE_UPLOAD]: lazyImport(() => import('modal/modalImageUpload' /* webpackChunkName: "modalImageUpload" */)), + [MODALS.LIQUIDATE_SUPPORTS]: lazyImport(() => import('modal/modalSupportsLiquidate' /* webpackChunkName: "modalSupportsLiquidate" */)), + [MODALS.MASS_TIP_UNLOCK]: lazyImport(() => import('modal/modalMassTipUnlock' /* webpackChunkName: "modalMassTipUnlock" */)), + [MODALS.MEMBERSHIP_SPLASH]: lazyImport(() => import('modal/modalMembershipSplash' /* webpackChunkName: "modalMembershipSplash" */)), + [MODALS.MIN_CHANNEL_AGE]: lazyImport(() => import('modal/modalMinChannelAge' /* webpackChunkName: "modalMinChannelAge" */)), + [MODALS.MOBILE_SEARCH]: lazyImport(() => import('modal/modalMobileSearch' /* webpackChunkName: "modalMobileSearch" */)), + [MODALS.PHONE_COLLECTION]: lazyImport(() => import('modal/modalPhoneCollection' /* webpackChunkName: "modalPhoneCollection" */)), + [MODALS.PUBLISH]: lazyImport(() => import('modal/modalPublish' /* webpackChunkName: "modalPublish" */)), + [MODALS.PUBLISH_PREVIEW]: lazyImport(() => import('modal/modalPublishPreview' /* webpackChunkName: "modalPublishPreview" */)), + [MODALS.REWARD_GENERATED_CODE]: lazyImport(() => import('modal/modalRewardCode' /* webpackChunkName: "modalRewardCode" */)), + [MODALS.SEND_TIP]: lazyImport(() => import('modal/modalSendTip' /* webpackChunkName: "modalSendTip" */)), + [MODALS.SET_REFERRER]: lazyImport(() => import('modal/modalSetReferrer' /* webpackChunkName: "modalSetReferrer" */)), + [MODALS.SOCIAL_SHARE]: lazyImport(() => import('modal/modalSocialShare' /* webpackChunkName: "modalSocialShare" */)), + [MODALS.SYNC_ENABLE]: lazyImport(() => import('modal/modalSyncEnable' /* webpackChunkName: "modalSyncEnable" */)), + [MODALS.TRANSACTION_FAILED]: lazyImport(() => import('modal/modalTransactionFailed' /* webpackChunkName: "modalTransactionFailed" */)), + [MODALS.UPGRADE]: lazyImport(() => import('modal/modalUpgrade' /* webpackChunkName: "modalUpgrade" */)), + [MODALS.VIEW_IMAGE]: lazyImport(() => import('modal/modalViewImage' /* webpackChunkName: "modalViewImage" */)), + [MODALS.WALLET_DECRYPT]: lazyImport(() => import('modal/modalWalletDecrypt' /* webpackChunkName: "modalWalletDecrypt" */)), + [MODALS.WALLET_ENCRYPT]: lazyImport(() => import('modal/modalWalletEncrypt' /* webpackChunkName: "modalWalletEncrypt" */)), + [MODALS.WALLET_PASSWORD_UNSAVE]: lazyImport(() => import('modal/modalPasswordUnsave' /* webpackChunkName: "modalPasswordUnsave" */)), + [MODALS.WALLET_UNLOCK]: lazyImport(() => import('modal/modalWalletUnlock' /* webpackChunkName: "modalWalletUnlock" */)), + [MODALS.YOUTUBE_WELCOME]: lazyImport(() => import('modal/modalYoutubeWelcome' /* webpackChunkName: "modalYoutubeWelcome" */)), +}); type Props = { modal: { id: string, modalProps: {} }, @@ -208,6 +68,7 @@ function ModalRouter(props: Props) { }, [pathname, hideModal]); if (error) { + const ModalError = MAP[MODALS.ERROR]; return ( }> @@ -220,9 +81,9 @@ function ModalRouter(props: Props) { } const { id, modalProps } = modal; - const SelectedModal = getModal(id); + const SelectedModal = MAP[id]; - if (SelectedModal === null) { + if (!SelectedModal) { return null; }