Skip to content

Commit

Permalink
refactor: platform lib file (#5144)
Browse files Browse the repository at this point in the history
* chore: remove platform lib file

* chore: clean some more code

* chore: fix barcode scanner issue

Co-authored-by: Begoña Alvarez <balvarez@boxfish.studio>
  • Loading branch information
maxwellmattryan and begonaalvarezd committed Nov 7, 2022
1 parent 0ecfd4e commit 82b2e9b
Show file tree
Hide file tree
Showing 58 changed files with 94 additions and 115 deletions.
2 changes: 1 addition & 1 deletion packages/desktop/lib/electron.ts
@@ -1,3 +1,3 @@
import { IPlatform } from '@lib/typings/platform'
import { IPlatform } from '@core/app'

export const Electron: IPlatform = window['__ELECTRON__']
2 changes: 1 addition & 1 deletion packages/desktop/views/dashboard/Dashboard.svelte
Expand Up @@ -14,7 +14,7 @@
import { Idle } from 'shared/components'
import { stopPollingLedgerNanoStatus } from '@core/ledger'
import { removeDisplayNotification, showAppNotification } from '@auxiliary/notification'
import { Platform } from 'shared/lib/platform'
import { Platform } from '@core/app'
import { Developer } from './developer'
import { Settings } from './settings'
import { Wallet } from './wallet'
Expand Down
Expand Up @@ -2,7 +2,7 @@
import { Checkbox, Text } from 'shared/components'
import { appSettings } from '@core/app'
import { localize } from '@core/i18n'
import { Platform } from 'shared/lib/platform'
import { Platform } from '@core/app'
let deepLinkingChecked = $appSettings.deepLinking
Expand Down
@@ -1,7 +1,7 @@
<script lang="typescript">
import { Button, Text, ButtonSize } from 'shared/components'
import { localize } from '@core/i18n'
import { Platform } from 'shared/lib/platform'
import { Platform } from '@core/app'
import { HelpAndInfoRoute } from '@core/router'
export let route: HelpAndInfoRoute
Expand Down
Expand Up @@ -3,7 +3,7 @@
import { Button, PinInput, Spinner, Text, HTMLButtonType, ButtonSize } from 'shared/components'
import { localize } from '@core/i18n'
import { activeProfile } from '@core/profile'
import { Platform } from '@lib/platform'
import { Platform } from '@core/app'
import { PIN_LENGTH } from '@core/utils'
let currentPincode = ''
Expand Down
2 changes: 1 addition & 1 deletion packages/desktop/views/login/views/EnterPinView.svelte
Expand Up @@ -4,7 +4,7 @@
import { NetworkProtocol, NetworkType } from '@core/network'
import { activeProfile, login, ProfileType, resetActiveProfile } from '@core/profile'
import { loginRouter } from '@core/router'
import { Platform } from '@lib/platform'
import { Platform } from '@core/app'
import { openPopup, popupState } from '@auxiliary/popup'
import { isValidPin } from '@core/utils'
import { Icon, PinInput, Profile, Text } from 'shared/components'
Expand Down
@@ -1,6 +1,6 @@
<script lang="typescript">
import { Link, Text } from 'shared/components'
import { Platform } from '@lib/platform'
import { Platform } from '@core/app'
</script>

<div class="mb-8">
Expand Down
2 changes: 1 addition & 1 deletion packages/mobile/App.svelte
Expand Up @@ -9,10 +9,10 @@
AppStage,
AppTheme,
initAppSettings,
Platform,
setPlatform,
shouldBeDarkMode,
} from '@core/app'
import { Platform } from '@lib/platform'
import { onboardingProfile } from '@contexts/onboarding'
import { ToastContainer } from '@ui'
import { Route } from './components'
Expand Down
7 changes: 3 additions & 4 deletions packages/mobile/capacitor/capacitorApi.ts
@@ -1,13 +1,12 @@
import { Capacitor } from '@capacitor/core'

import { SplashScreen } from '@capacitor/splash-screen'

import { IAppVersionDetails, IPlatform } from '@core/app'

import { DeepLinkManager } from './lib/deepLinkManager'
import { NotificationManager } from './lib/notificationManager'
import { PincodeManager } from './lib/pincodeManager'

import { IAppVersionDetails } from '@core/app'
import { IPlatform } from '@lib/typings/platform'

let activeProfileId = null

export const nativeSplash = SplashScreen
Expand Down
2 changes: 1 addition & 1 deletion packages/mobile/capacitor/lib/deepLinkManager.ts
@@ -1,4 +1,4 @@
import { IDeepLinkManager } from '@auxiliary/deep-link'
import { IDeepLinkManager } from '@core/app'

/**
* Deep link manager for mobile platform.
Expand Down
2 changes: 1 addition & 1 deletion packages/mobile/capacitor/lib/notificationManager.ts
@@ -1,4 +1,4 @@
import { INotificationManager } from '@auxiliary/notification'
import { INotificationManager } from '@core/app'

/**
* Create and show a native notification
Expand Down
2 changes: 1 addition & 1 deletion packages/mobile/capacitor/lib/pincodeManager.ts
@@ -1,6 +1,6 @@
import { SecureStoragePlugin } from 'capacitor-secure-storage-plugin'

import { IPincodeManager } from '@lib/typings/pincodeManager'
import { IPincodeManager } from '@core/app'

/** Mobile Pincode Manager */
export const PincodeManager: IPincodeManager = {
Expand Down
Expand Up @@ -85,7 +85,8 @@ export class BarcodeScanner {
// await _BarcodeScanner.prepare()
}

public static async start(): Promise<void> {
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */
public static async start(onSuccess: (result: string) => void, onError: () => void): Promise<void> {
// try {
// const permissionGranted = await this._didUserGrantPermission()
// if (permissionGranted) {
Expand Down
3 changes: 1 addition & 2 deletions packages/mobile/views/login/views/EnterPinView.svelte
@@ -1,10 +1,9 @@
<script lang="typescript">
import { needsToAcceptLatestPrivacyPolicy, needsToAcceptLatestTermsOfService } from '@core/app'
import { needsToAcceptLatestPrivacyPolicy, needsToAcceptLatestTermsOfService, Platform } from '@core/app'
import { localize } from '@core/i18n'
import { NetworkProtocol, NetworkType } from '@core/network'
import { activeProfile, login, resetActiveProfile } from '@core/profile'
import { loginRouter } from '../../../lib/routers'
import { Platform } from '@lib/platform'
import { openPopup, popupState } from '@auxiliary/popup'
import { isValidPin } from '@core/utils'
import { Icon, PinInput, Profile, Text, TextType } from 'shared/components'
Expand Down
3 changes: 1 addition & 2 deletions packages/shared/components/TitleBar.svelte
@@ -1,8 +1,7 @@
<script lang="typescript">
import { appRoute, AppRoute, dashboardRoute, DashboardRoute } from '@core/router'
import { activeProfile } from '@core/profile'
import { appSettings, PlatformOption, platform } from '@core/app'
import { Platform } from 'shared/lib/platform'
import { appSettings, Platform, PlatformOption, platform } from '@core/app'
import { popupState } from '@auxiliary/popup'
import tailwindConfig from 'shared/tailwind.config.js'
import { onDestroy, onMount } from 'svelte'
Expand Down
3 changes: 1 addition & 2 deletions packages/shared/components/molecules/NftDetails.svelte
Expand Up @@ -20,10 +20,9 @@
import { Icon as IconEnum } from '@lib/auxiliary/icon'
import { BASE_TOKEN } from '@core/network'
import { getOfficialExplorerUrl } from '@core/network/utils'
import { Platform } from 'shared/lib/platform'
import { Platform, time } from '@core/app'
import { truncateString } from '@core/utils'
import { setClipboard } from '@core/utils'
import { time } from '@core/app'
export let nftId: string = ''
export let nftMetadata: string = null
Expand Down
Expand Up @@ -21,10 +21,9 @@
} from '@core/wallet'
import { BASE_TOKEN } from '@core/network'
import { getOfficialExplorerUrl } from '@core/network/utils'
import { Platform } from 'shared/lib/platform'
import { Platform, time } from '@core/app'
import { truncateString } from '@core/utils'
import { setClipboard } from '@core/utils'
import { time } from '@core/app'
export let asset: IPersistedAsset
export let asyncStatus: ActivityAsyncStatus = null
Expand Down
Expand Up @@ -2,7 +2,7 @@
import { Text, Button, FontWeight, TextType } from 'shared/components'
import { localize } from '@core/i18n'
import { getOfficialExplorerUrl } from '@core/network/utils'
import { Platform } from 'shared/lib/platform'
import { Platform } from '@core/app'
import { TransactionDetails, AliasDetails, FoundryDetails, NftDetails } from 'shared/components/molecules'
import {
ActivityAsyncStatus,
Expand Down
3 changes: 1 addition & 2 deletions packages/shared/components/popups/Diagnostics.svelte
@@ -1,9 +1,8 @@
<script lang="typescript">
import { appSettings, appVersionDetails } from '@core/app'
import { appSettings, appVersionDetails, Platform } from '@core/app'
import { localize } from '@core/i18n'
import { activeProfile } from '@core/profile'
import { Button, Text } from 'shared/components'
import { Platform } from 'shared/lib/platform'
import { setClipboard } from '@core/utils'
import { onMount } from 'svelte'
Expand Down
@@ -1,6 +1,6 @@
<script lang="typescript">
import { LedgerAnimation, Button, Link, Text } from 'shared/components'
import { Platform } from 'shared/lib/platform'
import { Platform } from '@core/app'
import { closePopup } from '@auxiliary/popup'
import { localize } from '@core/i18n'
Expand Down
2 changes: 1 addition & 1 deletion packages/shared/components/popups/LegalUpdate.svelte
Expand Up @@ -9,8 +9,8 @@
needsToAcceptLatestPrivacyPolicy,
TERMS_OF_SERVICE_VERSION,
PRIVACY_POLICY_VERSION,
Platform,
} from '@core/app'
import { Platform } from 'shared/lib/platform'
const TOS_LINK = 'https://firefly.iota.org/terms'
const PRIVACY_POLICY_LINK = 'https://firefly.iota.org/privacy'
Expand Down
2 changes: 1 addition & 1 deletion packages/shared/components/popups/Version.svelte
Expand Up @@ -10,10 +10,10 @@
appVersionDetails,
AppStage,
appStage,
Platform,
PlatformOption,
platform,
} from '@core/app'
import { Platform } from 'shared/lib/platform'
import { formatDate, localize } from '@core/i18n'
import { closePopup } from '@auxiliary/popup'
Expand Down
@@ -1,4 +1,4 @@
import { Platform } from '@lib/platform'
import { Platform } from '@core/app'

import { isDeepLinkRequestActive } from '../stores'

Expand Down
1 change: 0 additions & 1 deletion packages/shared/lib/auxiliary/deep-link/index.ts
Expand Up @@ -2,6 +2,5 @@ export * from './actions'
export * from './enums'
export * from './errors'
export * from './handlers'
export * from './interfaces'
export * from './stores'
export * from './types'

This file was deleted.

@@ -1,8 +1,7 @@
import { get } from 'svelte/store'

import { appSettings } from '@core/app'
import { appSettings, Platform } from '@core/app'
import { generateRandomId } from '@core/utils'
import { Platform } from '@lib/platform'

import { DEFAULT_NOTIFICATION_TIMEOUT, NOTIFICATION_TIMEOUT_NEVER } from '../constants'
import { INotificationData } from '../interfaces'
Expand Down
@@ -1,3 +1,2 @@
export * from './notification-action.interface'
export * from './notification-data.interface'
export * from './notification-manager.interface'
@@ -1,6 +1,6 @@
import { get } from 'svelte/store'

import { Platform } from '@lib/platform'
import { Platform } from '@core/app'
import { InvalidBackupDestinationError } from '@core/profile'
import { backup } from '@core/profile-manager'
import { getDefaultStrongholdName } from '@core/stronghold'
Expand Down
@@ -1,7 +1,7 @@
import { get } from 'svelte/store'

import { destroyProfileManager } from '@core/profile-manager'
import { Platform } from '@lib/platform'
import { Platform } from '@core/app'

import { getShimmerClaimingProfileManagerStorageDirectory } from '../helpers'
import { shimmerClaimingProfileManager } from '../stores'
Expand Down
@@ -1,6 +1,6 @@
import { get } from 'svelte/store'

import { Platform } from '@lib/platform'
import { Platform } from '@core/app'

import { onboardingProfile } from '../stores'

Expand Down
@@ -1,5 +1,5 @@
import { getSecretManagerPath } from '@core/profile-manager'
import { Platform } from '@lib/platform'
import { Platform } from '@core/app'

import { UnableToCopyStrongholdBackupFileError } from '../errors'

Expand Down
@@ -1,6 +1,6 @@
import { updateActiveProfile } from '@core/profile'
import { backup } from '@core/profile-manager'
import { Platform } from '@lib/platform'
import { Platform } from '@core/app'
import { getDefaultStrongholdName } from '@core/stronghold'

export async function exportStronghold(
Expand Down
@@ -1,5 +1,4 @@
import { Platform } from '@lib/platform'

import { Platform } from '../classes'
import {
appUpdateBusy,
appUpdateComplete,
Expand Down
2 changes: 1 addition & 1 deletion packages/shared/lib/core/app/actions/downloadAppUpdate.ts
Expand Up @@ -7,8 +7,8 @@ import {
updateDisplayNotificationProgress,
} from '@auxiliary/notification'
import { INotificationData } from '@auxiliary/notification'
import { Platform } from '@lib/platform'

import { Platform } from '../classes'
import { installAppUpdate } from '../utils'
import {
appUpdateBusy,
Expand Down
@@ -1,5 +1,4 @@
import { Platform } from '@lib/platform'

import { Platform } from '../classes'
import { IAppUpdateDownloadProgress } from '../interfaces'
import {
appUpdateBusy,
Expand Down
1 change: 1 addition & 0 deletions packages/shared/lib/core/app/classes/index.ts
@@ -0,0 +1 @@
export * from './platform.class'
9 changes: 9 additions & 0 deletions packages/shared/lib/core/app/classes/platform.class.ts
@@ -0,0 +1,9 @@
import { get } from 'svelte/store'

import { IPlatform } from '../interfaces'
import { mobile } from '../stores'

const IS_MOBILE = get(mobile)

// TODO: https://github.com/iotaledger/firefly/issues/5143
export const Platform: IPlatform = window[IS_MOBILE ? '__CAPACITOR__' : '__ELECTRON__']
1 change: 1 addition & 0 deletions packages/shared/lib/core/app/index.ts
@@ -1,5 +1,6 @@
export * from './actions'
export * from './constants'
export * from './classes'
export * from './enums'
export * from './interfaces'
export * from './stores'
Expand Down
4 changes: 4 additions & 0 deletions packages/shared/lib/core/app/interfaces/index.ts
@@ -1,3 +1,7 @@
export * from './managers'

export * from './app-settings.interface'
export * from './app-update-download-progress.interface'
export * from './app-version-details.interface'
export * from './platform.interface'
export * from './platform-event-map.interface'
3 changes: 3 additions & 0 deletions packages/shared/lib/core/app/interfaces/managers/index.ts
@@ -0,0 +1,3 @@
export * from './deep-link-manager.interface'
export * from './notification-manager.interface'
export * from './pincode-manager.interface'
@@ -0,0 +1,23 @@
import { DashboardRoute } from '@core/router'

import { IAppUpdateDownloadProgress } from './app-update-download-progress.interface'
import { IAppVersionDetails } from './app-version-details.interface'

export interface IPlatformEventMap {
'menu-logout': void
'menu-navigate-wallet': DashboardRoute
'menu-navigate-settings': void
'menu-check-for-update': void
'menu-error-log': void
'menu-diagnostics': void
'menu-create-developer-profile': void
'menu-create-normal-profile': void
'log-error': void
'deep-link-request': void
'deep-link-params': string
'version-details': IAppVersionDetails
'version-progress': IAppUpdateDownloadProgress
'version-complete': void
'version-error': Error
'notification-activated': unknown
}
@@ -1,15 +1,9 @@
import { IAppSettings, IAppVersionDetails } from '@core/app'
import { IError } from '@core/error'
import { IDeepLinkManager } from '@auxiliary/deep-link'
import { INotificationManager } from '@auxiliary/notification'

import { EventMap } from './events'
import { IPincodeManager } from './pincodeManager'

export enum Platforms {
MOBILE = 'mobile',
DESKTOP = 'desktop',
}
import { IDeepLinkManager, INotificationManager, IPincodeManager } from './managers'
import { IAppSettings } from './app-settings.interface'
import { IAppVersionDetails } from './app-version-details.interface'
import { IPlatformEventMap } from './platform-event-map.interface'

export interface IPlatform {
getStrongholdBackupDestination(defaultPath: string): Promise<string | null>
Expand Down Expand Up @@ -47,6 +41,6 @@ export interface IPlatform {

unhandledException(title: string, err: IError | unknown): Promise<void>

onEvent<K extends keyof EventMap>(eventName: K, callback: (param: EventMap[K]) => void)
removeListenersForEvent<K extends keyof EventMap>(eventName: K)
onEvent<K extends keyof IPlatformEventMap>(eventName: K, callback: (param: IPlatformEventMap[K]) => void)
removeListenersForEvent<K extends keyof IPlatformEventMap>(eventName: K)
}
@@ -1,7 +1,6 @@
import { writable } from 'svelte/store'

import { Platform } from '@lib/platform'

import { Platform } from '../classes'
import { IAppVersionDetails } from '../interfaces'

const DEFAULT_APP_VERSION_DETAILS: IAppVersionDetails = {
Expand Down

0 comments on commit 82b2e9b

Please sign in to comment.