fix: workspace names now default to account email after signing in. It can later be changed from the workspace switcher menu.

This commit is contained in:
Mo
2023-05-04 05:52:42 -05:00
parent d9c480b67b
commit 8385b4e89f
184 changed files with 215 additions and 205 deletions

View File

@@ -16,6 +16,7 @@ import { StorageValueModes } from '../Storage/StorageTypes'
import { DeinitMode } from './DeinitMode'
import { DeinitSource } from './DeinitSource'
import { UserClientInterface } from '../User/UserClientInterface'
import { SessionsClientInterface } from '../Session/SessionsClientInterface'
export interface ApplicationInterface {
deinit(mode: DeinitMode, source: DeinitSource): void
@@ -51,6 +52,7 @@ export interface ApplicationInterface {
get files(): FilesClientInterface
get subscriptions(): SubscriptionClientInterface
get fileBackups(): BackupServiceInterface | undefined
get sessions(): SessionsClientInterface
readonly identifier: ApplicationIdentifier
readonly platform: Platform
deviceInterface: DeviceInterface

View File

@@ -8,6 +8,7 @@ import {
InternalEventBus,
InternalEventBusInterface,
RawStorageKey,
ApplicationEvent,
} from '@standardnotes/services'
import { UuidGenerator } from '@standardnotes/utils'
import { AppGroupCallback } from './AppGroupCallback'
@@ -72,6 +73,13 @@ export class SNApplicationGroup<D extends DeviceInterface = DeviceInterface> ext
this.primaryApplication = application
application.addEventObserver(async () => {
this.renameDescriptor(
primaryDescriptor as ApplicationDescriptor,
application.sessions.getWorkspaceDisplayIdentifier(),
)
}, ApplicationEvent.SignedIn)
await this.notifyEvent(ApplicationGroupEvent.PrimaryApplicationSet, { application: application })
}

View File

@@ -19,7 +19,7 @@ declare global {
platform?: Platform
application?: WebApplication
mainApplicationGroup?: ApplicationGroup
mainApplicationGroup?: WebApplicationGroup
MSStream?: unknown
}
}
@@ -30,9 +30,9 @@ import { DesktopManagerInterface, Platform, SNLog } from '@standardnotes/snjs'
import ApplicationGroupView from './Components/ApplicationGroupView/ApplicationGroupView'
import { WebDevice } from './Application/Device/WebDevice'
import { StartApplication } from './Application/Device/StartApplication'
import { ApplicationGroup } from './Application/ApplicationGroup'
import { WebApplicationGroup } from './Application/WebApplicationGroup'
import { WebOrDesktopDevice } from './Application/Device/WebOrDesktopDevice'
import { WebApplication } from './Application/Application'
import { WebApplication } from './Application/WebApplication'
import { createRoot, Root } from 'react-dom/client'
import { ElementIds } from './Constants/ElementIDs'
import { setDefaultMonospaceFont } from './setDefaultMonospaceFont'

View File

@@ -13,7 +13,7 @@ import {
SNLog,
SNTag,
} from '@standardnotes/snjs'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { WebOrDesktopDevice } from './Device/WebOrDesktopDevice'
describe('web application', () => {

View File

@@ -1,4 +1,4 @@
import { WebApplication } from './Application'
import { WebApplication } from './WebApplication'
import { ApplicationDescriptor, SNApplicationGroup } from '@standardnotes/snjs'
import { getPlatform, isDesktopApplication } from '@/Utils'
import { WebOrDesktopDevice } from '@/Application/Device/WebOrDesktopDevice'
@@ -23,7 +23,7 @@ const createApplication = (
return application
}
export class ApplicationGroup extends SNApplicationGroup<WebOrDesktopDevice> {
export class WebApplicationGroup extends SNApplicationGroup<WebOrDesktopDevice> {
constructor(private defaultSyncServerHost: string, device: WebOrDesktopDevice, private webSocketUrl: string) {
super(device)
}

View File

@@ -1,5 +1,5 @@
import { ApplicationEvent } from '@standardnotes/snjs'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { autorun, IReactionDisposer, IReactionPublic } from 'mobx'
import { Component } from 'react'

View File

@@ -1,8 +1,8 @@
import { observer } from 'mobx-react-lite'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { useCallback, FunctionComponent, KeyboardEventHandler } from 'react'
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { AccountMenuPane } from './AccountMenuPane'
import MenuPaneSelector from './MenuPaneSelector'
import { KeyboardKey } from '@standardnotes/ui-services'
@@ -11,7 +11,7 @@ export type AccountMenuProps = {
viewControllerManager: ViewControllerManager
application: WebApplication
onClickOutside: () => void
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
}
const AccountMenu: FunctionComponent<AccountMenuProps> = ({

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { ChangeEventHandler, FunctionComponent, ReactNode, useCallback, useEffect, useState } from 'react'

View File

@@ -1,5 +1,5 @@
import { STRING_NON_MATCHING_PASSWORDS } from '@/Constants/Strings'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import {

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import {

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import Icon from '@/Components/Icon/Icon'
@@ -10,7 +10,7 @@ import Menu from '@/Components/Menu/Menu'
import MenuItem from '@/Components/Menu/MenuItem'
import MenuItemSeparator from '@/Components/Menu/MenuItemSeparator'
import WorkspaceSwitcherOption from './WorkspaceSwitcher/WorkspaceSwitcherOption'
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { formatLastSyncDate } from '@/Utils/DateUtils'
import Spinner from '@/Components/Spinner/Spinner'
import { MenuItemIconSize } from '@/Constants/TailwindClassNames'
@@ -18,7 +18,7 @@ import { MenuItemIconSize } from '@/Constants/TailwindClassNames'
type Props = {
viewControllerManager: ViewControllerManager
application: WebApplication
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
setMenuPane: (pane: AccountMenuPane) => void
closeMenu: () => void
}

View File

@@ -1,5 +1,5 @@
import { WebApplication } from '@/Application/Application'
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplication } from '@/Application/WebApplication'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { FunctionComponent, useState } from 'react'
@@ -12,7 +12,7 @@ import SignInPane from './SignIn'
type Props = {
viewControllerManager: ViewControllerManager
application: WebApplication
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
menuPane: AccountMenuPane
setMenuPane: (pane: AccountMenuPane) => void
closeMenu: () => void

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { isDev } from '@/Utils'
import { observer } from 'mobx-react-lite'

View File

@@ -1,6 +1,6 @@
import { observer } from 'mobx-react-lite'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { User as UserType } from '@standardnotes/snjs'
type Props = {

View File

@@ -1,4 +1,4 @@
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { ApplicationDescriptor, ApplicationGroupEvent, ButtonType } from '@standardnotes/snjs'
import { observer } from 'mobx-react-lite'
@@ -10,7 +10,7 @@ import MenuItemSeparator from '@/Components/Menu/MenuItemSeparator'
import WorkspaceMenuItem from './WorkspaceMenuItem'
type Props = {
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
viewControllerManager: ViewControllerManager
isOpen: boolean
hideWorkspaceOptions?: boolean

View File

@@ -1,5 +1,5 @@
import { FOCUSABLE_BUT_NOT_TABBABLE } from '@/Constants/Constants'
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { FunctionComponent, useCallback, useRef, useState } from 'react'
@@ -10,7 +10,7 @@ import Popover from '@/Components/Popover/Popover'
import { MenuItemIconSize } from '@/Constants/TailwindClassNames'
type Props = {
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
viewControllerManager: ViewControllerManager
}

View File

@@ -1,5 +1,5 @@
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplication } from '@/Application/Application'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { WebApplication } from '@/Application/WebApplication'
import { Component } from 'react'
import ApplicationView from '@/Components/ApplicationView/ApplicationView'
import { WebOrDesktopDevice } from '@/Application/Device/WebOrDesktopDevice'
@@ -38,7 +38,7 @@ const renderDialog = (message: string) => {
class ApplicationGroupView extends Component<Props, State> {
applicationObserverRemover?: () => void
private group?: ApplicationGroup
private group?: WebApplicationGroup
private application?: WebApplication
constructor(props: Props) {
@@ -52,7 +52,7 @@ class ApplicationGroupView extends Component<Props, State> {
return
}
this.group = new ApplicationGroup(props.server, props.device, props.websocketUrl)
this.group = new WebApplicationGroup(props.server, props.device, props.websocketUrl)
window.mainApplicationGroup = this.group

View File

@@ -1,7 +1,7 @@
import { ReactNode, createContext, useContext, memo } from 'react'
import { observer } from 'mobx-react-lite'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
const ApplicationContext = createContext<WebApplication | undefined>(undefined)

View File

@@ -1,8 +1,8 @@
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { getPlatformString, isIOS } from '@/Utils'
import { ApplicationEvent, Challenge, removeFromArray, WebAppEvent } from '@standardnotes/snjs'
import { alertDialog, RouteType } from '@standardnotes/ui-services'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import Footer from '@/Components/Footer/Footer'
import SessionsModal from '@/Components/SessionsModal/SessionsModal'
import PreferencesViewWrapper from '@/Components/Preferences/PreferencesViewWrapper'
@@ -33,7 +33,7 @@ import IosKeyboardClose from '../IosKeyboardClose/IosKeyboardClose'
type Props = {
application: WebApplication
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
}
const LazyLoadedClipperView = lazy(() => import('../ClipperView/ClipperView'))

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ChallengePrompt } from '@standardnotes/services'
import { RefObject, useState } from 'react'
import Button from '../Button/Button'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import {
ButtonType,
Challenge,
@@ -14,7 +14,7 @@ import Button from '@/Components/Button/Button'
import Icon from '@/Components/Icon/Icon'
import ChallengeModalPrompt from './ChallengePrompt'
import LockscreenWorkspaceSwitcher from './LockscreenWorkspaceSwitcher'
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { ChallengeModalValues } from './ChallengeModalValues'
import { InputValue } from './InputValue'
@@ -27,7 +27,7 @@ import { useAutoElementRect } from '@/Hooks/useElementRect'
type Props = {
application: WebApplication
viewControllerManager: ViewControllerManager
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
challenge: Challenge
onDismiss?: (challenge: Challenge) => void
}

View File

@@ -8,7 +8,7 @@ import { FunctionComponent, useCallback, useEffect, useRef } from 'react'
import DecoratedInput from '@/Components/Input/DecoratedInput'
import DecoratedPasswordInput from '@/Components/Input/DecoratedPasswordInput'
import { ChallengeModalValues } from './ChallengeModalValues'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { InputValue } from './InputValue'
import BiometricsPrompt from './BiometricsPrompt'
import U2FPrompt from './U2FPrompt'

View File

@@ -1,4 +1,4 @@
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { FunctionComponent, useCallback, useRef, useState } from 'react'
import WorkspaceSwitcherMenu from '@/Components/AccountMenu/WorkspaceSwitcher/WorkspaceSwitcherMenu'
@@ -7,7 +7,7 @@ import Icon from '@/Components/Icon/Icon'
import Popover from '../Popover/Popover'
type Props = {
mainApplicationGroup: ApplicationGroup
mainApplicationGroup: WebApplicationGroup
viewControllerManager: ViewControllerManager
}

View File

@@ -2,7 +2,7 @@ import { Username } from '@standardnotes/snjs'
import { ChallengePrompt } from '@standardnotes/services'
import { RefObject, useState } from 'react'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { isAndroid } from '@/Utils'
import Button from '../Button/Button'

View File

@@ -2,7 +2,7 @@ import Icon from '@/Components/Icon/Icon'
import Menu from '@/Components/Menu/Menu'
import { usePremiumModal } from '@/Hooks/usePremiumModal'
import { STRING_EDIT_LOCKED_ATTEMPT } from '@/Constants/Strings'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ComponentArea, NoteMutator, NoteType, PrefKey, SNComponent, SNNote } from '@standardnotes/snjs'
import { Fragment, FunctionComponent, useCallback, useEffect, useMemo, useState } from 'react'
import { EditorMenuGroup } from '@/Components/NotesOptions/EditorMenuGroup'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { NotesController } from '@/Controllers/NotesController/NotesController'
import { useRef, useState } from 'react'
import RoundIconButton from '../Button/RoundIconButton'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { STRING_EDIT_LOCKED_ATTEMPT } from '@/Constants/Strings'
import { usePremiumModal } from '@/Hooks/usePremiumModal'
import { createEditorMenuGroups } from '@/Utils/createEditorMenuGroups'

View File

@@ -1,4 +1,4 @@
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { SNLogoFull } from '@standardnotes/icons'
import { useCallback, useEffect, useState } from 'react'
@@ -48,7 +48,7 @@ const ClipperView = ({
applicationGroup,
}: {
viewControllerManager: ViewControllerManager
applicationGroup: ApplicationGroup
applicationGroup: WebApplicationGroup
}) => {
const application = useApplication()

View File

@@ -7,7 +7,7 @@ import {
ComponentViewerEvent,
ComponentViewerError,
} from '@standardnotes/snjs'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FunctionComponent, useCallback, useEffect, useRef, useState } from 'react'
import { observer } from 'mobx-react-lite'
import OfflineRestricted from '@/Components/ComponentView/OfflineRestricted'

View File

@@ -3,7 +3,7 @@ import { ViewControllerManager } from '@Controllers/ViewControllerManager'
import { useCallback, useRef } from 'react'
import { STRING_DELETE_ACCOUNT_CONFIRMATION } from '@/Constants/Strings'
import Button from '@/Components/Button/Button'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import Icon from '../Icon/Icon'
import AlertDialog from '../AlertDialog/AlertDialog'

View File

@@ -1,9 +1,9 @@
import { FunctionComponent, useCallback, useRef } from 'react'
import { STRING_SIGN_OUT_CONFIRMATION } from '@/Constants/Strings'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { isDesktopApplication } from '@/Utils'
import Button from '@/Components/Button/Button'
import Icon from '../Icon/Icon'
@@ -13,7 +13,7 @@ import HorizontalSeparator from '../Shared/HorizontalSeparator'
type Props = {
application: WebApplication
viewControllerManager: ViewControllerManager
applicationGroup: ApplicationGroup
applicationGroup: WebApplicationGroup
}
const ConfirmSignoutModal: FunctionComponent<Props> = ({ application, viewControllerManager, applicationGroup }) => {

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { KeyboardKey } from '@standardnotes/ui-services'
import { observer } from 'mobx-react-lite'
import { FunctionComponent, KeyboardEventHandler, UIEventHandler, useCallback } from 'react'

View File

@@ -7,7 +7,7 @@ import {
SEARCH_KEYBOARD_COMMAND,
SELECT_ALL_ITEMS_KEYBOARD_COMMAND,
} from '@standardnotes/ui-services'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { PANEL_NAME_NOTES } from '@/Constants/Constants'
import { FileItem, PrefKey, WebAppEvent } from '@standardnotes/snjs'
import { observer } from 'mobx-react-lite'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { memo, useCallback, useMemo, useRef, useState } from 'react'
import Icon from '../../Icon/Icon'
import { classNames } from '@standardnotes/utils'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { AnyTag } from '@/Controllers/Navigation/AnyTagType'
import { PaneController } from '@/Controllers/PaneController/PaneController'

View File

@@ -13,7 +13,7 @@ import { ChangeEventHandler, FunctionComponent, useCallback, useEffect, useRef,
import { PrefDefaults } from '@/Constants/PrefDefaults'
import Dropdown from '@/Components/Dropdown/Dropdown'
import { DropdownItem } from '@/Components/Dropdown/DropdownItem'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { AnyTag } from '@/Controllers/Navigation/AnyTagType'
import { PreferenceMode } from './PreferenceMode'
import dayjs from 'dayjs'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FilesController } from '@/Controllers/FilesController'
import { NotesController } from '@/Controllers/NotesController/NotesController'
import { SortableItem, SNTag, Uuids } from '@standardnotes/snjs'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FilesController } from '@/Controllers/FilesController'
import { formatDateForContextMenu } from '@/Utils/DateUtils'
import { getIconForFileType } from '@/Utils/Items/Icons/getIconForFileType'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { PrefDefaults } from '@/Constants/PrefDefaults'
import { ApplicationEvent, PrefKey } from '@standardnotes/snjs'
import { useEffect } from 'react'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { observer } from 'mobx-react-lite'
import { FunctionComponent, ReactNode } from 'react'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FeaturesController } from '@/Controllers/FeaturesController'
import { FilesController } from '@/Controllers/FilesController'
import { usePremiumModal } from '@/Hooks/usePremiumModal'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { concatenateUint8Arrays } from '@/Utils'
import {
ApplicationEvent,

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FunctionComponent, KeyboardEventHandler, useCallback, useMemo, useRef, useState } from 'react'
import { getFileIconComponent } from './getFileIconComponent'
import Icon from '@/Components/Icon/Icon'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { getBase64FromBlob } from '@/Utils'
import { FileItem } from '@standardnotes/snjs'
import { FunctionComponent, useCallback, useEffect, useMemo, useRef } from 'react'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { FileItem } from '@standardnotes/snjs'

View File

@@ -1,5 +1,5 @@
import { WebApplication } from '@/Application/Application'
import { ApplicationGroup } from '@/Application/ApplicationGroup'
import { WebApplication } from '@/Application/WebApplication'
import { WebApplicationGroup } from '@/Application/WebApplicationGroup'
import { AbstractComponent } from '@/Components/Abstract/PureComponent'
import { destroyAllObjectProperties, preventRefreshing } from '@/Utils'
import { ApplicationEvent, ApplicationDescriptor, WebAppEvent } from '@standardnotes/snjs'
@@ -24,7 +24,7 @@ import PreferencesButton from './PreferencesButton'
type Props = {
application: WebApplication
applicationGroup: ApplicationGroup
applicationGroup: WebApplicationGroup
}
type State = {

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { QuickSettingsController } from '@/Controllers/QuickSettingsController'
import { FeatureIdentifier, SNTheme } from '@standardnotes/snjs'
import { TOGGLE_DARK_MODE_COMMAND } from '@standardnotes/ui-services'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FeaturesController } from '@/Controllers/FeaturesController'
import { SubscriptionController } from '@/Controllers/Subscription/SubscriptionController'
import { observer } from 'mobx-react-lite'

View File

@@ -1,7 +1,7 @@
import { IlNotesIcon } from '@standardnotes/icons'
import { observer } from 'mobx-react-lite'
import NotesOptionsPanel from '@/Components/NotesOptions/NotesOptionsPanel'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import PinNoteButton from '@/Components/PinNoteButton/PinNoteButton'
import Button from '../Button/Button'
import { useCallback } from 'react'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { classNames } from '@standardnotes/utils'
import Button from '../Button/Button'
import Icon from '../Icon/Icon'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { PaneLayout } from '@/Controllers/PaneController/PaneLayout'
import { mergeRefs } from '@/Hooks/mergeRefs'
import { ForwardedRef, forwardRef } from 'react'

View File

@@ -1,6 +1,6 @@
import { FileItem } from '@standardnotes/snjs'
import { AbstractComponent } from '@/Components/Abstract/PureComponent'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import MultipleSelectedNotes from '@/Components/MultipleSelectedNotes/MultipleSelectedNotes'
import MultipleSelectedFiles from '../MultipleSelectedFiles/MultipleSelectedFiles'
import { AppPaneId } from '../Panes/AppPaneMetadata'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { removeFromArray } from '@standardnotes/utils'
import { FileItem, SNNote } from '@standardnotes/snjs'
import { NoteViewController } from './NoteViewController'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ContentType } from '@standardnotes/common'
import {
MutatorService,

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { noteTypeForEditorIdentifier } from '@standardnotes/features'
import { SNNote, SNTag, NoteContent, DecryptedItemInterface, PayloadEmitSource, PrefKey } from '@standardnotes/models'
import { UuidString } from '@standardnotes/snjs'

View File

@@ -2,7 +2,7 @@
* @jest-environment jsdom
*/
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { NotesController } from '@/Controllers/NotesController/NotesController'
import {

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { NoteViewController } from './Controller/NoteViewController'
export interface NoteViewProps {

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { usePrevious } from '@/Components/ContentListView/Calendar/usePrevious'
import { ElementIds } from '@/Constants/ElementIDs'
import { PrefDefaults } from '@/Constants/PrefDefaults'

View File

@@ -1,5 +1,5 @@
import { CHANGE_EDITOR_COMMAND, KeyboardKey } from '@standardnotes/ui-services'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { SNNote } from '@standardnotes/snjs'
import { FunctionComponent, useCallback, useMemo, useRef, useState } from 'react'
import Icon from '@/Components/Icon/Icon'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { Action, SNNote } from '@standardnotes/snjs'
import { Fragment, useCallback, useEffect, useState } from 'react'
import Icon from '@/Components/Icon/Icon'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { SNNote } from '@standardnotes/snjs'
import { FunctionComponent, useCallback, useRef, useState } from 'react'
import Icon from '@/Components/Icon/Icon'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { Action, SNNote } from '@standardnotes/snjs'
import { FunctionComponent, useCallback, useState } from 'react'
import Spinner from '@/Components/Spinner/Spinner'

View File

@@ -1,5 +1,5 @@
import { useCallback, useRef } from 'react'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import Button from '@/Components/Button/Button'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { createRef } from 'react'
import { AbstractComponent } from '@/Components/Abstract/PureComponent'
import DecoratedPasswordInput from '../Input/DecoratedPasswordInput'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ApplicationEvent, PermissionDialog } from '@standardnotes/snjs'
import { FunctionComponent, useCallback, useEffect, useState } from 'react'
import ModalOverlay from '../Modal/ModalOverlay'

View File

@@ -1,5 +1,5 @@
import { observer } from 'mobx-react-lite'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import Authentication from './Authentication'
import Credentials from './Credentials'

View File

@@ -1,6 +1,6 @@
import Button from '@/Components/Button/Button'
import { Title } from '@/Components/Preferences/PreferencesComponents/Content'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { FunctionComponent } from 'react'

View File

@@ -1,5 +1,5 @@
import { FunctionComponent, useCallback, useMemo, useState } from 'react'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { useBeforeUnload } from '@/Hooks/useBeforeUnload'
import ChangeEmailForm from './ChangeEmailForm'
import ChangeEmailSuccess from './ChangeEmailSuccess'

View File

@@ -1,6 +1,6 @@
import { Subtitle, Text, Title } from '@/Components/Preferences/PreferencesComponents/Content'
import Button from '@/Components/Button/Button'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { observer } from 'mobx-react-lite'
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
import { dateToLocalizedString } from '@standardnotes/snjs'

View File

@@ -4,7 +4,7 @@ import { Text, Title } from '@/Components/Preferences/PreferencesComponents/Cont
import Button from '@/Components/Button/Button'
import PreferencesGroup from '@/Components/Preferences/PreferencesComponents/PreferencesGroup'
import { ViewControllerManager } from '@Controllers/ViewControllerManager'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
type Props = {
application: WebApplication

View File

@@ -11,7 +11,7 @@ import { FunctionComponent, useCallback, useEffect, useState } from 'react'
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
import Switch from '@/Components/Switch/Switch'
import { Subtitle, Text, Title } from '@/Components/Preferences/PreferencesComponents/Content'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { STRING_FAILED_TO_UPDATE_USER_SETTING } from '@/Constants/Strings'
import PreferencesGroup from '@/Components/Preferences/PreferencesComponents/PreferencesGroup'
import PreferencesSegment from '@/Components/Preferences/PreferencesComponents/PreferencesSegment'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import Spinner from '@/Components/Spinner/Spinner'
import { formatSizeToReadableString } from '@standardnotes/filepicker'
import { SettingName } from '@standardnotes/snjs'

View File

@@ -1,7 +1,7 @@
import { FunctionComponent, ReactNode, useState } from 'react'
import { LinkButton, Text } from '@/Components/Preferences/PreferencesComponents/Content'
import Button from '@/Components/Button/Button'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
type Props = {
application: WebApplication

View File

@@ -1,7 +1,7 @@
import Button from '@/Components/Button/Button'
import OtherSessionsSignOutContainer from '@/Components/OtherSessionsSignOut/OtherSessionsSignOut'
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { FunctionComponent } from 'react'

View File

@@ -1,7 +1,7 @@
import { FunctionComponent, useState } from 'react'
import { LinkButton, Text } from '@/Components/Preferences/PreferencesComponents/Content'
import Button from '@/Components/Button/Button'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
type Props = {
application: WebApplication

View File

@@ -1,5 +1,5 @@
import { Title } from '@/Components/Preferences/PreferencesComponents/Content'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import SubscriptionInformation from './SubscriptionInformation'
import NoSubscription from './NoSubscription'
import { observer } from 'mobx-react-lite'

View File

@@ -1,7 +1,7 @@
import { observer } from 'mobx-react-lite'
import { SubscriptionController } from '@/Controllers/Subscription/SubscriptionController'
import Button from '@/Components/Button/Button'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { openSubscriptionDashboard } from '@/Utils/ManageSubscription'
import StatusText from './StatusText'

View File

@@ -5,7 +5,7 @@ import { InvitationStatus } from '@standardnotes/snjs'
import { SubtitleLight, Text } from '@/Components/Preferences/PreferencesComponents/Content'
import { SubscriptionController } from '@/Controllers/Subscription/SubscriptionController'
import Button from '@/Components/Button/Button'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
type Props = {

View File

@@ -1,6 +1,6 @@
import { FunctionComponent, useCallback, useMemo, useState } from 'react'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { isEmailValid } from '@/Utils'
import { SubscriptionController } from '@/Controllers/Subscription/SubscriptionController'

View File

@@ -3,7 +3,7 @@ import { observer } from 'mobx-react-lite'
import { FunctionComponent, useState } from 'react'
import { Title } from '@/Components/Preferences/PreferencesComponents/Content'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import PreferencesGroup from '@/Components/Preferences/PreferencesComponents/PreferencesGroup'
import PreferencesSegment from '@/Components/Preferences/PreferencesComponents/PreferencesSegment'

View File

@@ -3,7 +3,7 @@ import Button from '@/Components/Button/Button'
import { SyncQueueStrategy } from '@standardnotes/snjs'
import { STRING_GENERIC_SYNC_ERROR } from '@/Constants/Strings'
import { observer } from 'mobx-react-lite'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FunctionComponent, useState } from 'react'
import { formatLastSyncDate } from '@/Utils/DateUtils'
import PreferencesGroup from '../../PreferencesComponents/PreferencesGroup'

View File

@@ -3,7 +3,7 @@ import { DropdownItem } from '@/Components/Dropdown/DropdownItem'
import { usePremiumModal } from '@/Hooks/usePremiumModal'
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
import Switch from '@/Components/Switch/Switch'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import {
ContentType,
FeatureIdentifier,

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import Dropdown from '@/Components/Dropdown/Dropdown'
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
import Switch from '@/Components/Switch/Switch'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { FunctionComponent } from 'react'
import PreferencesPane from '@/Components/Preferences/PreferencesComponents/PreferencesPane'

View File

@@ -11,7 +11,7 @@ import {
} from '@/Constants/Strings'
import { BackupFile } from '@standardnotes/snjs'
import { ChangeEventHandler, MouseEventHandler, useCallback, useEffect, useRef, useState } from 'react'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { Title, Subtitle } from '@/Components/Preferences/PreferencesComponents/Content'

View File

@@ -1,7 +1,7 @@
import { convertStringifiedBooleanToBoolean, isDesktopApplication } from '@/Utils'
import { STRING_FAILED_TO_UPDATE_USER_SETTING } from '@/Constants/Strings'
import { useCallback, useEffect, useState } from 'react'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { observer } from 'mobx-react-lite'
import { Subtitle, Text, Title } from '@/Components/Preferences/PreferencesComponents/Content'
import Dropdown from '@/Components/Dropdown/Dropdown'

View File

@@ -5,7 +5,7 @@ import { FileBackupMetadataFile, FileBackupsConstantsV1, FileItem, FileHandleRea
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
import Icon from '@/Components/Icon/Icon'
import { ClassicFileReader, StreamingFileApi } from '@standardnotes/filepicker'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import EncryptionStatusItem from '../../Security/EncryptionStatusItem'
import PreferencesSegment from '@/Components/Preferences/PreferencesComponents/PreferencesSegment'
import Spinner from '@/Components/Spinner/Spinner'

View File

@@ -1,7 +1,7 @@
import { Subtitle, Title, Text } from '@/Components/Preferences/PreferencesComponents/Content'
import PreferencesGroup from '@/Components/Preferences/PreferencesComponents/PreferencesGroup'
import PreferencesSegment from '@/Components/Preferences/PreferencesComponents/PreferencesSegment'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { useMemo } from 'react'
import BackupsDropZone from './BackupsDropZone'
import FileBackupsDesktop from './FileBackupsDesktop'

View File

@@ -1,7 +1,7 @@
import { Subtitle, Title, Text } from '@/Components/Preferences/PreferencesComponents/Content'
import PreferencesGroup from '@/Components/Preferences/PreferencesComponents/PreferencesGroup'
import PreferencesSegment from '@/Components/Preferences/PreferencesComponents/PreferencesSegment'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { useMemo } from 'react'
import TextBackupsDesktop from './TextBackupsDesktop'

View File

@@ -1,6 +1,6 @@
import { FunctionComponent } from 'react'
import OfflineSubscription from '@/Components/Preferences/Panes/General/Advanced/OfflineSubscription'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { observer } from 'mobx-react-lite'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import PackagesPreferencesSection from '@/Components/Preferences/Panes/General/Advanced/Packages/Section'

View File

@@ -2,7 +2,7 @@ import React, { FunctionComponent, useEffect, useState } from 'react'
import { Subtitle } from '@/Components/Preferences/PreferencesComponents/Content'
import DecoratedInput from '@/Components/Input/DecoratedInput'
import Button from '@/Components/Button/Button'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { observer } from 'mobx-react-lite'
import { STRING_REMOVE_OFFLINE_KEY_CONFIRMATION } from '@/Constants/Strings'

View File

@@ -5,7 +5,7 @@ import Switch from '@/Components/Switch/Switch'
import Button from '@/Components/Button/Button'
import PackageEntrySubInfo from './PackageEntrySubInfo'
import PreferencesSegment from '../../../../PreferencesComponents/PreferencesSegment'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { AnyPackageType } from './Types/AnyPackageType'
const UseHosted: FunctionComponent<{

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ClientDisplayableError, FeatureDescription } from '@standardnotes/snjs'
import { makeAutoObservable, observable } from 'mobx'
import { AnyPackageType } from '../Types/AnyPackageType'

View File

@@ -1,7 +1,7 @@
import { ButtonType, ContentType, SNComponent } from '@standardnotes/snjs'
import Button from '@/Components/Button/Button'
import DecoratedInput from '@/Components/Input/DecoratedInput'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FunctionComponent, useEffect, useRef, useState } from 'react'
import { Subtitle } from '@/Components/Preferences/PreferencesComponents/Content'
import { observer } from 'mobx-react-lite'

View File

@@ -1,6 +1,6 @@
import { PrefKey, Platform } from '@standardnotes/snjs'
import { Subtitle, Text, Title } from '@/Components/Preferences/PreferencesComponents/Content'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { FunctionComponent, useState } from 'react'
import HorizontalSeparator from '@/Components/Shared/HorizontalSeparator'
import Switch from '@/Components/Switch/Switch'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ViewControllerManager } from '@/Controllers/ViewControllerManager'
import { FunctionComponent } from 'react'
import { PackageProvider } from '@/Components/Preferences/Panes/General/Advanced/Packages/Provider/PackageProvider'

View File

@@ -1,5 +1,5 @@
import { Text, Title } from '@/Components/Preferences/PreferencesComponents/Content'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { ApplicationEvent, FeatureIdentifier, FeatureStatus, FindNativeFeature, PrefKey } from '@standardnotes/snjs'
import { Fragment, FunctionComponent, useCallback, useEffect, useState } from 'react'
import { usePremiumModal } from '@/Hooks/usePremiumModal'

View File

@@ -1,5 +1,5 @@
import { Pill, Subtitle, Text, Title } from '@/Components/Preferences/PreferencesComponents/Content'
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import { observer } from 'mobx-react-lite'
import { FunctionComponent, useCallback, useEffect, useState } from 'react'
import PreferencesGroup from '../../PreferencesComponents/PreferencesGroup'

View File

@@ -1,4 +1,4 @@
import { WebApplication } from '@/Application/Application'
import { WebApplication } from '@/Application/WebApplication'
import StyledRadioInput from '@/Components/Radio/StyledRadioInput'
import { useState } from 'react'
import { Title } from '../../PreferencesComponents/Content'

Some files were not shown because too many files have changed in this diff Show More