chore: upgrade deps (#906)

* chore: upgrade deps

* fix: MenuArrowRight import

* fix: type naming
This commit is contained in:
Mo
2022-03-03 13:31:51 -06:00
committed by GitHub
parent c5eb84d7e8
commit d8caa31dc9
20 changed files with 239 additions and 207 deletions

View File

@@ -1,19 +1,16 @@
import { observer } from 'mobx-react-lite';
import { AppState } from '@/ui_models/app_state';
import { WebApplication } from '@/ui_models/application';
import { User } from '@standardnotes/snjs/dist/@types/services/api/responses';
import { User as UserType } from '@standardnotes/responses';
type Props = {
appState: AppState;
application: WebApplication;
}
};
const User = observer(({
appState,
application,
}: Props) => {
const User = observer(({ appState, application }: Props) => {
const { server } = appState.accountMenu;
const user = application.getUser();
const user = application.getUser() as UserType;
return (
<div className="sk-panel-section">
@@ -21,8 +18,8 @@ const User = observer(({
<div className="sk-notification danger">
<div className="sk-notification-title">Sync Unreachable</div>
<div className="sk-notification-text">
Hmm...we can't seem to sync your account.
The reason: {appState.sync.errorMessage}
Hmm...we can't seem to sync your account. The reason:{' '}
{appState.sync.errorMessage}
</div>
<a
className="sk-a info-contrast sk-bold sk-panel-row"
@@ -36,12 +33,8 @@ const User = observer(({
)}
<div className="sk-panel-row">
<div className="sk-panel-column">
<div className="sk-h1 sk-bold wrap">
{(user as User).email}
</div>
<div className="sk-subtitle neutral">
{server}
</div>
<div className="sk-h1 sk-bold wrap">{user.email}</div>
<div className="sk-subtitle neutral">{server}</div>
</div>
</div>
<div className="sk-panel-row" />

View File

@@ -39,7 +39,7 @@ import {
MarkdownIcon,
MenuArrowDownAlt,
MenuArrowDownIcon,
MenuArrowRight,
MenuArrowRightIcon,
MenuCloseIcon,
MoreIcon,
NotesIcon,
@@ -92,7 +92,7 @@ const ICONS = {
'lock-filled': LockFilledIcon,
'menu-arrow-down-alt': MenuArrowDownAlt,
'menu-arrow-down': MenuArrowDownIcon,
'menu-arrow-right': MenuArrowRight,
'menu-arrow-right': MenuArrowRightIcon,
'menu-close': MenuCloseIcon,
'pencil-filled': PencilFilledIcon,
'pencil-off': PencilOffIcon,

View File

@@ -76,7 +76,7 @@ export const createEditorMenuGroups = (
name: editor.name,
component: editor,
isEntitled:
application.getFeatureStatus(editor.identifier) ===
application.features.getFeatureStatus(editor.identifier) ===
FeatureStatus.Entitled,
};

View File

@@ -22,7 +22,7 @@ export const FocusModeSwitch: FunctionComponent<Props> = ({
}) => {
const premiumModal = usePremiumModal();
const isEntitled =
application.getFeatureStatus(FeatureIdentifier.FocusMode) ===
application.features.getFeatureStatus(FeatureIdentifier.FocusMode) ===
FeatureStatus.Entitled;
const toggle = useCallback(

View File

@@ -22,12 +22,13 @@ export const ThemesMenuButton: FunctionComponent<Props> = ({
const premiumModal = usePremiumModal();
const isThirdPartyTheme = useMemo(
() => application.isThirdPartyFeature(item.identifier),
() => application.features.isThirdPartyFeature(item.identifier),
[application, item.identifier]
);
const isEntitledToTheme = useMemo(
() =>
application.getFeatureStatus(item.identifier) === FeatureStatus.Entitled,
application.features.getFeatureStatus(item.identifier) ===
FeatureStatus.Entitled,
[application, item.identifier]
);
const canActivateTheme = useMemo(

View File

@@ -155,7 +155,9 @@ export const HistoryListContainer: FunctionComponent<Props> = observer(
async (revisionListEntry: RevisionListEntry) => {
setShowContentLockedScreen(false);
if (application.hasMinimumRole(revisionListEntry.required_role)) {
if (
application.features.hasMinimumRole(revisionListEntry.required_role)
) {
setIsFetchingSelectedRevision(true);
setSelectedRevision(undefined);
setSelectedRemoteEntry(undefined);

View File

@@ -95,9 +95,9 @@ export const RemoteHistoryList: FunctionComponent<RemoteHistoryListProps> =
>
<div className="flex flex-grow items-center justify-between">
<div>{previewHistoryEntryTitle(entry)}</div>
{!application.hasMinimumRole(entry.required_role) && (
<Icon type="premium-feature" />
)}
{!application.features.hasMinimumRole(
entry.required_role
) && <Icon type="premium-feature" />}
</div>
</HistoryListItem>
))}

View File

@@ -32,7 +32,7 @@ export const Appearance: FunctionComponent<Props> = observer(
({ application }) => {
const premiumModal = usePremiumModal();
const isEntitledToMidnightTheme =
application.getFeatureStatus(FeatureIdentifier.MidnightTheme) ===
application.features.getFeatureStatus(FeatureIdentifier.MidnightTheme) ===
FeatureStatus.Entitled;
const [themeItems, setThemeItems] = useState<DropdownItem[]>([]);

View File

@@ -58,7 +58,7 @@ export const Extensions: FunctionComponent<{
};
const submitExtensionUrl = async (url: string) => {
const component = await application.downloadExternalFeature(url);
const component = await application.features.downloadExternalFeature(url);
if (component) {
setConfirmableExtension(component);
}

View File

@@ -27,15 +27,17 @@ export const OfflineSubscription: FunctionalComponent<IProps> = observer(
useState(false);
useEffect(() => {
if (application.hasOfflineRepo()) {
if (application.features.hasOfflineRepo()) {
setHasUserPreviouslyStoredCode(true);
}
}, [application]);
const shouldShowOfflineSubscription = () => {
return !application.hasAccount() ||
return (
!application.hasAccount() ||
application.isThirdPartyHostUsed() ||
hasUserPreviouslyStoredCode;
hasUserPreviouslyStoredCode
);
};
const handleSubscriptionCodeSubmit = async (
@@ -43,7 +45,9 @@ export const OfflineSubscription: FunctionalComponent<IProps> = observer(
) => {
event.preventDefault();
const result = await application.setOfflineFeaturesCode(activationCode);
const result = await application.features.setOfflineFeaturesCode(
activationCode
);
if (result?.error) {
await application.alertService.alert(result.error);
@@ -55,7 +59,7 @@ export const OfflineSubscription: FunctionalComponent<IProps> = observer(
};
const handleRemoveOfflineKey = async () => {
await application.deleteOfflineFeatureRepo();
await application.features.deleteOfflineFeatureRepo();
setIsSuccessfullyActivated(false);
setHasUserPreviouslyStoredCode(false);

View File

@@ -62,7 +62,7 @@ export const EmailBackups = observer(({ application }: Props) => {
}, [application]);
useEffect(() => {
const emailBackupsFeatureStatus = application.getFeatureStatus(
const emailBackupsFeatureStatus = application.features.getFeatureStatus(
FeatureIdentifier.DailyEmailBackup
);
setIsEntitledToEmailBackups(

View File

@@ -65,13 +65,13 @@ export const CloudLink: FunctionComponent<Props> = ({ application }) => {
}, [application]);
useEffect(() => {
const dailyDropboxBackupStatus = application.getFeatureStatus(
const dailyDropboxBackupStatus = application.features.getFeatureStatus(
FeatureIdentifier.DailyDropboxBackup
);
const dailyGdriveBackupStatus = application.getFeatureStatus(
const dailyGdriveBackupStatus = application.features.getFeatureStatus(
FeatureIdentifier.DailyGDriveBackup
);
const dailyOneDriveBackupStatus = application.getFeatureStatus(
const dailyOneDriveBackupStatus = application.features.getFeatureStatus(
FeatureIdentifier.DailyOneDriveBackup
);
const isCloudBackupsAllowed = [

View File

@@ -74,7 +74,9 @@ export const ExtensionItem: FunctionComponent<ExtensionItemProps> = ({
};
const localInstallable = extension.package_info.download_url;
const isThirParty = application.isThirdPartyFeature(extension.identifier);
const isThirParty = application.features.isThirdPartyFeature(
extension.identifier
);
return (
<PreferencesSegment classes={'mb-5'}>

View File

@@ -99,6 +99,7 @@ export class AlertService implements SNAlertService {
const alert = new SKAlert({
title: title && sanitizeHtmlString(title),
text: sanitizeHtmlString(text),
buttons: [],
});
alert.present();
return () => {

View File

@@ -14,6 +14,7 @@ import {
import { WebAppEvent, WebApplication } from '@/ui_models/application';
import { isDesktopApplication } from '@/utils';
import { Bridge, ElectronDesktopCallbacks } from './bridge';
import { InternalEventBus } from '@standardnotes/services';
/**
* An interface used by the Desktop application to interact with SN
@@ -31,7 +32,7 @@ export class DesktopManager
lastSearchedText?: string;
constructor(application: WebApplication, private bridge: Bridge) {
super(application);
super(application, new InternalEventBus());
}
get webApplication() {

View File

@@ -12,6 +12,7 @@ import {
PayloadSource,
PrefKey,
} from '@standardnotes/snjs';
import { InternalEventBus } from '@standardnotes/services';
const CACHED_THEMES_KEY = 'cachedThemes';
@@ -21,7 +22,7 @@ export class ThemeManager extends ApplicationService {
private unregisterStream!: () => void;
constructor(application: WebApplication) {
super(application);
super(application, new InternalEventBus());
this.colorSchemeEventHandler = this.colorSchemeEventHandler.bind(this);
}
@@ -127,7 +128,9 @@ export class ThemeManager extends ApplicationService {
this.deactivateTheme(themeUuid);
hasChange = true;
} else {
const status = this.application.getFeatureStatus(theme.identifier);
const status = this.application.features.getFeatureStatus(
theme.identifier
);
if (status !== FeatureStatus.Entitled) {
if (theme.active) {
this.application.toggleTheme(theme);
@@ -212,7 +215,7 @@ export class ThemeManager extends ApplicationService {
if (
!skipEntitlementCheck &&
this.application.getFeatureStatus(theme.identifier) !==
this.application.features.getFeatureStatus(theme.identifier) !==
FeatureStatus.Entitled
) {
return;

View File

@@ -87,7 +87,7 @@ export class FeaturesState {
}
private hasNativeFolders(): boolean {
const status = this.application.getFeatureStatus(
const status = this.application.features.getFeatureStatus(
FeatureIdentifier.TagNesting
);
@@ -95,7 +95,7 @@ export class FeaturesState {
}
private hasNativeSmartViews(): boolean {
const status = this.application.getFeatureStatus(
const status = this.application.features.getFeatureStatus(
FeatureIdentifier.SmartFilters
);

View File

@@ -16,6 +16,7 @@ import { IOService } from '@/services/ioService';
import { AutolockService } from '@/services/autolock_service';
import { StatusManager } from '@/services/statusManager';
import { ThemeManager } from '@/services/themeManager';
import { InternalEventBus } from '@standardnotes/services';
export class ApplicationGroup extends SNApplicationGroup {
constructor(
@@ -62,7 +63,10 @@ export class ApplicationGroup extends SNApplicationGroup {
const io = new IOService(
platform === Platform.MacWeb || platform === Platform.MacDesktop
);
const autolockService = new AutolockService(application);
const autolockService = new AutolockService(
application,
new InternalEventBus()
);
const statusManager = new StatusManager();
const themeService = new ThemeManager(application);
application.setWebServices({