refactor: environment setup (#2898)

Co-authored-by: Simon He <57086651+Simon-He95@users.noreply.github.com>
This commit is contained in:
Alex Yang
2023-06-28 19:19:19 +08:00
committed by GitHub
parent 80c2a78273
commit 5496969e58
72 changed files with 255 additions and 242 deletions

View File

@@ -2,9 +2,8 @@
* This file has deprecated because we do not maintain legacy affine cloud,
* please use new affine cloud instead.
*/
import { AFFINE_STORAGE_KEY, config } from '@affine/env';
import { initEmptyPage } from '@affine/env/blocksuite';
import { PageNotFoundError } from '@affine/env/constant';
import { AFFINE_STORAGE_KEY, PageNotFoundError } from '@affine/env/constant';
import type {
AffineDownloadProvider,
AffineLegacyCloudWorkspace,
@@ -109,7 +108,7 @@ export const AffineAdapter: WorkspaceAdapter<WorkspaceFlavour.AFFINE> = {
loadPriority: LoadPriority.HIGH,
Events: {
'workspace:access': async () => {
if (!config.enableLegacyCloud) {
if (!runtimeConfig.enableLegacyCloud) {
console.warn('Legacy cloud is disabled');
return;
}
@@ -123,7 +122,7 @@ export const AffineAdapter: WorkspaceAdapter<WorkspaceFlavour.AFFINE> = {
}
},
'workspace:revoke': async () => {
if (!config.enableLegacyCloud) {
if (!runtimeConfig.enableLegacyCloud) {
console.warn('Legacy cloud is disabled');
return;
}

View File

@@ -1,11 +1,10 @@
import { DebugLogger } from '@affine/debug';
import { initEmptyPage, initPageWithPreloading } from '@affine/env/blocksuite';
import {
config,
DEFAULT_HELLO_WORLD_PAGE_ID,
DEFAULT_WORKSPACE_NAME,
} from '@affine/env';
import { initEmptyPage, initPageWithPreloading } from '@affine/env/blocksuite';
import { PageNotFoundError } from '@affine/env/constant';
PageNotFoundError,
} from '@affine/env/constant';
import type { LocalIndexedDBDownloadProvider } from '@affine/env/workspace';
import {
LoadPriority,
@@ -45,7 +44,7 @@ export const LocalAdapter: WorkspaceAdapter<WorkspaceFlavour.LOCAL> = {
const page = blockSuiteWorkspace.createPage({
id: DEFAULT_HELLO_WORLD_PAGE_ID,
});
if (config.enablePreloading) {
if (runtimeConfig.enablePreloading) {
initPageWithPreloading(page).catch(err => {
logger.error('init page with preloading failed', err);
});

View File

@@ -1,4 +1,4 @@
import { Unreachable } from '@affine/env';
import { Unreachable } from '@affine/env/constant';
import type { AppEvents, WorkspaceUISchema } from '@affine/env/workspace';
import {
LoadPriority,

View File

@@ -1,5 +1,4 @@
import { DebugLogger } from '@affine/debug';
import { config } from '@affine/env';
import { WorkspaceFlavour, WorkspaceVersion } from '@affine/env/workspace';
import type { RootWorkspaceMetadataV2 } from '@affine/workspace/atom';
import { rootWorkspacesMetadataAtom } from '@affine/workspace/atom';
@@ -53,7 +52,7 @@ rootWorkspacesMetadataAtom.onMount = setAtom => {
}, 0);
}
if (environment.isDesktop && config.enableSQLiteProvider) {
if (environment.isDesktop && runtimeConfig.enableSQLiteProvider) {
window.apis?.workspace
.list()
.then(workspaceIDs => {

View File

@@ -1,5 +1,4 @@
import type { BlockSuiteFeatureFlags } from '@affine/env';
import { config } from '@affine/env';
import type { BlockSuiteFeatureFlags } from '@affine/env/global';
import type { AffinePublicWorkspace } from '@affine/env/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { affineApis } from '@affine/workspace/affine/shared';
@@ -25,7 +24,7 @@ function createPublicWorkspace(
blockSuiteWorkspace.doc,
new Uint8Array(binary)
);
Object.entries(config.editorFlags).forEach(([key, value]) => {
Object.entries(runtimeConfig.editorFlags).forEach(([key, value]) => {
blockSuiteWorkspace.awarenessStore.setFlag(
key as keyof BlockSuiteFeatureFlags,
value

View File

@@ -1,6 +1,5 @@
//#region async atoms that to load the real workspace data
import { DebugLogger } from '@affine/debug';
import { config } from '@affine/env';
import type { WorkspaceRegistry } from '@affine/env/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace';
import {
@@ -30,7 +29,7 @@ export const workspacesAtom = atom<Promise<AllWorkspace[]>>(
// TODO: remove this when we remove the legacy cloud
)
.filter(workspace =>
!config.enableLegacyCloud
!runtimeConfig.enableLegacyCloud
? workspace.flavour !== WorkspaceFlavour.AFFINE
: true
);

View File

@@ -1,5 +1,6 @@
import { migrateToSubdoc } from '@affine/env/blocksuite';
import { config, setupGlobal } from '@affine/env/config';
import { isDesktop, isServer } from '@affine/env/constant';
import { setupGlobal } from '@affine/env/global';
import type { LocalIndexedDBDownloadProvider } from '@affine/env/workspace';
import { WorkspaceFlavour, WorkspaceVersion } from '@affine/env/workspace';
import type { RootWorkspaceMetadata } from '@affine/workspace/atom';
@@ -16,15 +17,19 @@ import { WorkspaceAdapters } from '../adapters/workspace';
setupGlobal();
if (config.enablePlugin && !environment.isServer) {
if (process.env.NODE_ENV === 'development') {
console.log('Runtime Preset', runtimeConfig);
}
if (runtimeConfig.enablePlugin && !isServer) {
import('@affine/copilot');
}
if (!environment.isServer) {
if (!isServer) {
import('@affine/bookmark-block');
}
if (!environment.isDesktop && !environment.isServer) {
if (!isDesktop && !isServer) {
// Polyfill Electron
const unimplemented = () => {
throw new Error('AFFiNE Plugin Web will be supported in the future');

View File

@@ -8,7 +8,6 @@ import {
Tooltip,
} from '@affine/component';
import { DebugLogger } from '@affine/debug';
import { config } from '@affine/env';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { HelpIcon } from '@blocksuite/icons';
import { useSetAtom } from 'jotai';
@@ -291,7 +290,7 @@ export const CreateWorkspaceModal = ({
});
} else if (mode === 'new') {
setStep(
environment.isDesktop && config.enableSQLiteProvider
environment.isDesktop && runtimeConfig.enableSQLiteProvider
? 'set-db-location'
: 'name-workspace'
);
@@ -306,7 +305,7 @@ export const CreateWorkspaceModal = ({
const onConfirmEnableCloudSyncing = useCallback(
(enableCloudSyncing: boolean) => {
(async function () {
if (!config.enableLegacyCloud && enableCloudSyncing) {
if (!runtimeConfig.enableLegacyCloud && enableCloudSyncing) {
setOpenDisableCloudAlertModal(true);
} else {
let id = addedId;
@@ -346,7 +345,7 @@ export const CreateWorkspaceModal = ({
const onConfirmName = useCallback(
(name: string) => {
setWorkspaceName(name);
if (environment.isDesktop && config.enableSQLiteProvider) {
if (environment.isDesktop && runtimeConfig.enableSQLiteProvider) {
setStep('set-syncing-mode');
} else {
// this will be the last step for web for now

View File

@@ -1,6 +1,6 @@
import { Switch } from '@affine/component';
import { relatedLinks } from '@affine/component/contact-modal';
import { env } from '@affine/env';
import { isDesktop } from '@affine/env/constant';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { ArrowRightSmallIcon, OpenInNewIcon } from '@blocksuite/icons';
import { useCallback } from 'react';
@@ -24,7 +24,7 @@ export const AboutAffine = () => {
return (
<>
<SettingHeader title={t['About AFFiNE']()} subtitle={t['None yet']()} />
{IS_EXHIBITION && env.isDesktop ? (
{IS_EXHIBITION && isDesktop ? (
<Wrapper title={t['Version']()}>
<SettingRow
name={t['Check for updates']()}

View File

@@ -1,5 +1,5 @@
import { RadioButton, RadioButtonGroup, Switch } from '@affine/component';
import { env } from '@affine/env';
import { isDesktop } from '@affine/env/constant';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { useTheme } from 'next-themes';
import { useCallback } from 'react';
@@ -71,7 +71,7 @@ export const AppearanceSettings = () => {
<LanguageMenu />
</div>
</SettingRow>
{IS_EXHIBITION && env.isDesktop ? (
{IS_EXHIBITION && isDesktop ? (
<SettingRow
name={t['Client Border Style']()}
desc={t['Customize the appearance of the client.']()}
@@ -92,7 +92,7 @@ export const AppearanceSettings = () => {
onChange={checked => changeSwitch('fullWidthLayout', checked)}
/>
</SettingRow>
{IS_EXHIBITION && env.isDesktop ? (
{IS_EXHIBITION && isDesktop ? (
<SettingRow
name={t['Window frame style']()}
desc={t['Customize appearance of Windows Client.']()}
@@ -137,7 +137,7 @@ export const AppearanceSettings = () => {
</Wrapper>
) : null}
{env.isDesktop ? (
{isDesktop ? (
<Wrapper title={t['Sidebar']()}>
<SettingRow
name={t['Disable the noise background on the sidebar']()}

View File

@@ -1,5 +1,4 @@
import { Button, IconButton, Menu, MenuItem, Wrapper } from '@affine/component';
import { config } from '@affine/env';
import { Unreachable } from '@affine/env/constant';
import type {
AffineLegacyCloudWorkspace,
@@ -186,7 +185,7 @@ const LocalCollaborationPanel: React.FC<
>
{t['Enable AFFiNE Cloud']()}
</Button>
{config.enableLegacyCloud ? (
{runtimeConfig.enableLegacyCloud ? (
<TransformWorkspaceToAffineModal
open={open}
onClose={() => {

View File

@@ -1,5 +1,4 @@
import { Button, toast, Wrapper } from '@affine/component';
import { config } from '@affine/env';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { rootCurrentWorkspaceIdAtom } from '@affine/workspace/atom';
import { useAtomValue } from 'jotai';
@@ -13,7 +12,9 @@ export const ExportPanel = () => {
<Button
type="light"
shape="circle"
disabled={!environment.isDesktop || !id || !config.enableSQLiteProvider}
disabled={
!environment.isDesktop || !id || !runtimeConfig.enableSQLiteProvider
}
data-testid="export-affine-backup"
onClick={async () => {
if (id) {

View File

@@ -1,6 +1,5 @@
import { Button, toast } from '@affine/component';
import { WorkspaceAvatar } from '@affine/component/workspace-avatar';
import { config } from '@affine/env';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import {
ArrowRightSmallIcon,
@@ -31,7 +30,7 @@ const useShowOpenDBFile = (workspaceId: string) => {
window.apis &&
window.events &&
environment.isDesktop &&
config.enableSQLiteProvider
runtimeConfig.enableSQLiteProvider
) {
window.apis.workspace
.getMeta(workspaceId)
@@ -143,7 +142,7 @@ export const GeneralPanel: React.FC<PanelProps> = ({
</Button>
</div>
</div>
{environment.isDesktop && config.enableSQLiteProvider ? (
{environment.isDesktop && runtimeConfig.enableSQLiteProvider ? (
<DesktopClientOnly workspaceId={workspace.id} />
) : null}
<div className={style.row}>
@@ -209,7 +208,7 @@ function DesktopClientOnly({ workspaceId }: { workspaceId: string }) {
const t = useAFFiNEI18N();
const showOpenFolder = useShowOpenDBFile(workspaceId);
const onRevealDBFile = useCallback(() => {
if (environment.isDesktop && config.enableSQLiteProvider) {
if (environment.isDesktop && runtimeConfig.enableSQLiteProvider) {
window.apis?.dialog.revealDBFile(workspaceId).catch(err => {
console.error(err);
});

View File

@@ -5,8 +5,7 @@ import {
Input,
Wrapper,
} from '@affine/component';
import { config } from '@affine/env';
import { Unreachable } from '@affine/env/constant';
import { isBrowser, Unreachable } from '@affine/env/constant';
import type {
AffineLegacyCloudWorkspace,
LocalWorkspace,
@@ -38,9 +37,7 @@ const PublishPanelAffine: React.FC<PublishPanelAffineProps> = ({
const [origin, setOrigin] = useState('');
useEffect(() => {
setOrigin(
typeof window !== 'undefined' && window.location.origin
? window.location.origin
: ''
isBrowser && window.location.origin ? window.location.origin : ''
);
}, []);
const shareUrl = origin + '/public-workspace/' + workspace.id;
@@ -137,7 +134,7 @@ const PublishPanelLocal: React.FC<PublishPanelLocalProps> = ({
>
{t['Enable AFFiNE Cloud']()}
</Button>
{config.enableLegacyCloud ? (
{runtimeConfig.enableLegacyCloud ? (
<EnableAffineCloudModal
open={open}
onClose={() => {

View File

@@ -5,7 +5,6 @@ import {
PageList,
PageListTrashView,
} from '@affine/component/page-list';
import { env } from '@affine/env';
import type { View } from '@affine/env/filter';
import { Trans } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
@@ -56,8 +55,8 @@ const PageListEmpty = (props: {
New Page
</button>
);
if (env.isDesktop) {
const shortcut = env.isMacOs ? '⌘ + N' : 'Ctrl + N';
if (environment.isDesktop) {
const shortcut = environment.isMacOs ? '⌘ + N' : 'Ctrl + N';
return (
<Trans i18nKey="emptyAllPagesClient">
Click on the <CreateNewPageButton /> button Or press

View File

@@ -1,5 +1,5 @@
import { DownloadTips } from '@affine/component/affine-banner';
import { env } from '@affine/env';
import { isDesktop } from '@affine/env/constant';
import { useAtom } from 'jotai';
import { useCallback } from 'react';
@@ -13,7 +13,7 @@ export const DownloadClientTip = () => {
setShowDownloadClientTips(false);
}, [setShowDownloadClientTips]);
if (!showDownloadClientTips || env.isDesktop) {
if (!showDownloadClientTips || isDesktop) {
return <></>;
}
return <DownloadTips onClose={onCloseDownloadClient} />;

View File

@@ -1,5 +1,4 @@
import { ShareMenu } from '@affine/component/share-menu';
import { config } from '@affine/env';
import { Unreachable } from '@affine/env/constant';
import type {
AffineLegacyCloudWorkspace,
@@ -110,7 +109,7 @@ const LocalHeaderShareMenu: React.FC<BaseHeaderProps> = props => {
};
export const HeaderShareMenu: React.FC<BaseHeaderProps> = props => {
if (!config.enableLegacyCloud) {
if (!runtimeConfig.enableLegacyCloud) {
return null;
}
if (props.workspace.flavour === WorkspaceFlavour.AFFINE) {

View File

@@ -1,5 +1,4 @@
import { displayFlex, IconButton, styled, Tooltip } from '@affine/component';
import { config } from '@affine/env';
import type { LocalWorkspace } from '@affine/env/workspace';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
@@ -82,7 +81,7 @@ export const SyncUser = () => {
const t = useAFFiNEI18N();
const transformWorkspace = useTransformWorkspace();
if (!config.enableLegacyCloud) {
if (!runtimeConfig.enableLegacyCloud) {
return null;
}

View File

@@ -4,6 +4,7 @@ import {
appSidebarOpenAtom,
} from '@affine/component/app-sidebar';
import { SidebarSwitch } from '@affine/component/app-sidebar/sidebar-header';
import { isBrowser, isDesktop } from '@affine/env/constant';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { CloseIcon, MinusIcon, RoundedRectangleIcon } from '@blocksuite/icons';
import type { Page } from '@blocksuite/store';
@@ -148,7 +149,7 @@ const HeaderRightItems: Record<HeaderRightItemName, HeaderItem> = {
);
},
availableWhen: () => {
return environment.isDesktop && environment.isWindows;
return isDesktop && isBrowser;
},
},
};

View File

@@ -1,4 +1,4 @@
import { env } from '@affine/env';
import { isDesktop } from '@affine/env/constant';
import { Trans } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type React from 'react';
@@ -7,18 +7,18 @@ import { useEffect, useState } from 'react';
const minimumChromeVersion = 102;
export const shouldShowWarning = () => {
if (env.isDesktop) {
if (isDesktop) {
// even though desktop have compatibility issues, we don't want to show the warning
return false;
}
if (!env.isBrowser) {
if (!environment.isBrowser) {
// disable in SSR
return false;
}
if (env.isChrome) {
return env.chromeVersion < minimumChromeVersion;
if (environment.isChrome) {
return environment.chromeVersion < minimumChromeVersion;
} else {
return !env.isMobile;
return !environment.isMobile;
}
};
@@ -27,9 +27,11 @@ export const OSWarningMessage: React.FC = () => {
const [notChrome, setNotChrome] = useState(false);
const [notGoodVersion, setNotGoodVersion] = useState(false);
useEffect(() => {
setNotChrome(env.isBrowser && !env.isChrome);
setNotChrome(environment.isBrowser && !environment.isChrome);
setNotGoodVersion(
env.isBrowser && env.isChrome && env.chromeVersion < minimumChromeVersion
environment.isBrowser &&
environment.isChrome &&
environment.chromeVersion < minimumChromeVersion
);
}, []);

View File

@@ -1,7 +1,6 @@
import { FlexWrapper } from '@affine/component';
import { IconButton } from '@affine/component';
import { Tooltip } from '@affine/component';
import { config } from '@affine/env';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import type { AccessTokenMessage } from '@affine/workspace/affine/login';
import { CloudWorkspaceIcon, SignOutIcon } from '@blocksuite/icons';
@@ -62,7 +61,7 @@ export const Footer: React.FC<FooterProps> = ({ user, onLogin, onLogout }) => {
</div>
}
onClick={async () => {
if (!config.enableLegacyCloud) {
if (!runtimeConfig.enableLegacyCloud) {
setOpen(true);
} else {
onLogin();

View File

@@ -1,5 +1,4 @@
import { MuiFade, Tooltip } from '@affine/component';
import { config, env } from '@affine/env';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { CloseIcon, NewIcon, UserGuideIcon } from '@blocksuite/icons';
import { useAtom } from 'jotai';
@@ -28,7 +27,7 @@ const DEFAULT_SHOW_LIST: IslandItemNames[] = [
const DESKTOP_SHOW_LIST: IslandItemNames[] = [...DEFAULT_SHOW_LIST, 'guide'];
export type IslandItemNames = 'whatNew' | 'contact' | 'shortcuts' | 'guide';
export const HelpIsland = ({
showList = env.isDesktop ? DESKTOP_SHOW_LIST : DEFAULT_SHOW_LIST,
showList = environment.isDesktop ? DESKTOP_SHOW_LIST : DEFAULT_SHOW_LIST,
}: {
showList?: IslandItemNames[];
}) => {
@@ -73,7 +72,7 @@ export const HelpIsland = ({
<StyledIconWrapper
data-testid="right-bottom-change-log-icon"
onClick={() => {
window.open(config.changelogUrl, '_blank');
window.open(runtimeConfig.changelogUrl, '_blank');
}}
>
<NewIcon />

View File

@@ -1,5 +1,4 @@
import { Modal, ModalWrapper } from '@affine/component';
import { env } from '@affine/env';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { Command } from 'cmdk';
import type { NextRouter } from 'next/router';
@@ -26,10 +25,6 @@ import {
StyledShortcut,
} from './style';
const isMac = () => {
return env.isBrowser && env.isMacOs;
};
export type QuickSearchModalProps = {
blockSuiteWorkspace: BlockSuiteWorkspace;
open: boolean;
@@ -149,7 +144,11 @@ export const QuickSearchModal: React.FC<QuickSearchModalProps> = ({
: t['Quick search placeholder']()
}
/>
<StyledShortcut>{isMac() ? '⌘ + K' : 'Ctrl + K'}</StyledShortcut>
<StyledShortcut>
{environment.isBrowser && environment.isMacOs
? '⌘ + K'
: 'Ctrl + K'}
</StyledShortcut>
</StyledModalHeader>
<StyledModalDivider
style={{ display: isPublicAndNoQuery() ? 'none' : '' }}

View File

@@ -1,4 +1,4 @@
import { UNTITLED_WORKSPACE_NAME } from '@affine/env';
import { UNTITLED_WORKSPACE_NAME } from '@affine/env/constant';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { EdgelessIcon, PageIcon } from '@blocksuite/icons';
import { assertExists } from '@blocksuite/store';

View File

@@ -8,7 +8,6 @@ import {
} from '@affine/component';
import { ScrollableContainer } from '@affine/component';
import { WorkspaceList } from '@affine/component/workspace-list';
import { config } from '@affine/env/config';
import type {
AffineLegacyCloudWorkspace,
LocalWorkspace,
@@ -66,7 +65,7 @@ const CreateWorkspaceCard = ({
const t = useAFFiNEI18N();
const anchorEL = useRef<HTMLDivElement>(null);
if (config.enableSQLiteProvider && environment.isDesktop) {
if (runtimeConfig.enableSQLiteProvider && environment.isDesktop) {
return (
<Menu
placement="auto"

View File

@@ -10,7 +10,7 @@ import {
SidebarContainer,
SidebarScrollableContainer,
} from '@affine/component/app-sidebar';
import { config } from '@affine/env';
import { isDesktop } from '@affine/env/constant';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import {
@@ -105,14 +105,14 @@ export const RootAppSidebar = ({
// Listen to the "New Page" action from the menu
useEffect(() => {
if (environment.isDesktop) {
if (isDesktop) {
return window.events?.applicationMenu.onNewPageAction(onClickNewPage);
}
}, [onClickNewPage]);
const [sidebarOpen, setSidebarOpen] = useAtom(appSidebarOpenAtom);
useEffect(() => {
if (environment.isDesktop && typeof sidebarOpen === 'boolean') {
if (isDesktop && typeof sidebarOpen === 'boolean') {
window.apis?.ui.handleSidebarVisibilityChange(sidebarOpen).catch(err => {
console.error(err);
});
@@ -177,7 +177,7 @@ export const RootAppSidebar = ({
>
<span data-testid="settings">{t['Settings']()}</span>
</RouteMenuLinkItem>
{config.enableNewSettingModal ? (
{runtimeConfig.enableNewSettingModal ? (
<MenuItem icon={<SettingsIcon />} onClick={onOpenSettingModal}>
<span data-testid="new-settings">
{t['Settings']()}
@@ -203,7 +203,7 @@ export const RootAppSidebar = ({
{blockSuiteWorkspace && (
<FavoriteList currentWorkspace={currentWorkspace} />
)}
{config.enableLegacyCloud &&
{runtimeConfig.enableLegacyCloud &&
(currentWorkspace?.flavour === WorkspaceFlavour.AFFINE &&
currentWorkspace.public ? (
<RouteMenuLinkItem
@@ -235,7 +235,7 @@ export const RootAppSidebar = ({
</RouteMenuLinkItem>
</SidebarScrollableContainer>
<SidebarContainer>
{environment.isDesktop && <AppUpdaterButton />}
{isDesktop && <AppUpdaterButton />}
<div />
<AddPageButton onClick={onClickNewPage} />
</SidebarContainer>

View File

@@ -5,7 +5,6 @@ import {
useAllPageSetting,
ViewList,
} from '@affine/component/page-list';
import { config } from '@affine/env';
import type { WorkspaceHeaderProps } from '@affine/env/workspace';
import { WorkspaceFlavour, WorkspaceSubPath } from '@affine/env/workspace';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
@@ -40,7 +39,7 @@ export function WorkspaceHeader({
}}
/>
</div>
{config.enableAllPageFilter && (
{runtimeConfig.enableAllPageFilter && (
<div>
{setting.currentView.id !== NIL ||
(setting.currentView.id === NIL &&

View File

@@ -1,4 +1,3 @@
import { env } from '@affine/env';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { useMemo } from 'react';
@@ -209,21 +208,21 @@ export const useWinMarkdownShortcuts = (): ShortcutTip => {
export const useMarkdownShortcuts = (): ShortcutTip => {
const macMarkdownShortcuts = useMacMarkdownShortcuts();
const winMarkdownShortcuts = useWinMarkdownShortcuts();
const isMac = env.isBrowser && env.isMacOs;
const isMac = environment.isBrowser && environment.isMacOs;
return isMac ? macMarkdownShortcuts : winMarkdownShortcuts;
};
export const usePageShortcuts = (): ShortcutTip => {
const macPageShortcuts = useMacPageKeyboardShortcuts();
const winPageShortcuts = useWinPageKeyboardShortcuts();
const isMac = env.isBrowser && env.isMacOs;
const isMac = environment.isBrowser && environment.isMacOs;
return isMac ? macPageShortcuts : winPageShortcuts;
};
export const useEdgelessShortcuts = (): ShortcutTip => {
const macEdgelessShortcuts = useMacEdgelessKeyboardShortcuts();
const winEdgelessShortcuts = useWinEdgelessKeyboardShortcuts();
const isMac = env.isBrowser && env.isMacOs;
const isMac = environment.isBrowser && environment.isMacOs;
return isMac ? macEdgelessShortcuts : winEdgelessShortcuts;
};
@@ -231,7 +230,7 @@ export const useEdgelessShortcuts = (): ShortcutTip => {
export const useGeneralShortcuts = (): ShortcutTip => {
const macGeneralShortcuts = useMacGeneralKeyboardShortcuts();
const winGeneralShortcuts = useWinGeneralKeyboardShortcuts();
const isMac = env.isBrowser && env.isMacOs;
const isMac = environment.isBrowser && environment.isMacOs;
return isMac ? macGeneralShortcuts : winGeneralShortcuts;
};

View File

@@ -1,3 +1,4 @@
import { isBrowser } from '@affine/env/constant';
import {
rootCurrentPageIdAtom,
rootCurrentWorkspaceIdAtom,
@@ -19,7 +20,7 @@ export function useCurrentWorkspace(): [
currentWorkspace,
useCallback(
(id: string | null) => {
if (typeof window !== 'undefined' && id) {
if (isBrowser && id) {
localStorage.setItem('last_workspace_id', id);
}
setPageId(null);

View File

@@ -9,8 +9,8 @@ import {
WorkspaceFallback,
} from '@affine/component/workspace';
import { DebugLogger } from '@affine/debug';
import { config, DEFAULT_HELLO_WORLD_PAGE_ID, env } from '@affine/env';
import { initEmptyPage, initPageWithPreloading } from '@affine/env/blocksuite';
import { DEFAULT_HELLO_WORLD_PAGE_ID, isDesktop } from '@affine/env/constant';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { setUpLanguage, useI18N } from '@affine/i18n';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
@@ -350,7 +350,7 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
id: pageId,
});
assertEquals(page.id, pageId);
if (config.enablePreloading) {
if (runtimeConfig.enablePreloading) {
initPageWithPreloading(page).catch(error => {
console.error('import error:', error);
});
@@ -455,7 +455,7 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
);
const t = useAFFiNEI18N();
const showList: IslandItemNames[] = env.isDesktop
const showList: IslandItemNames[] = isDesktop
? ['whatNew', 'contact', 'guide']
: ['whatNew', 'contact'];

View File

@@ -5,7 +5,6 @@ import '../bootstrap';
import { AffineContext } from '@affine/component/context';
import { WorkspaceFallback } from '@affine/component/workspace';
import { config } from '@affine/env';
import { createI18n, I18nextProvider } from '@affine/i18n';
import type { EmotionCache } from '@emotion/cache';
import { CacheProvider } from '@emotion/react';
@@ -42,9 +41,6 @@ const DebugProvider = ({ children }: PropsWithChildren): ReactElement => {
};
const i18n = createI18n();
if (process.env.NODE_ENV === 'development') {
console.log('Runtime Preset', config);
}
const App = function App({
Component,

View File

@@ -1,5 +1,4 @@
import { MainContainer } from '@affine/component/workspace';
import { config } from '@affine/env';
import { NoSsr } from '@mui/material';
import { affinePluginsAtom } from '@toeverything/plugin-infra/manager';
import { useAtomValue } from 'jotai';
@@ -29,7 +28,7 @@ const Plugins = () => {
};
export default function PluginPage(): ReactElement {
if (!config.enablePlugin) {
if (!runtimeConfig.enablePlugin) {
return <></>;
}
return (

View File

@@ -1,4 +1,3 @@
import { env } from '@affine/env';
import { WorkspaceSubPath } from '@affine/env/workspace';
import {
rootCurrentWorkspaceIdAtom,
@@ -69,7 +68,7 @@ export function CurrentWorkspaceModals() {
}, [setOpenDisableCloudAlertModal])}
/>
</Suspense>
{env.isDesktop && (
{environment.isDesktop && (
<Suspense>
<OnboardingModal
open={openOnboardingModal}

View File

@@ -1,4 +1,3 @@
import { prefixUrl } from '@affine/env';
import type {
GraphQLQuery,
MutationOptions,

View File

@@ -1,8 +1,6 @@
import { env } from '@affine/env';
import { isBrowser } from '@affine/env/constant';
import createCache from '@emotion/cache';
const isBrowser = env.isBrowser;
export default function createEmotionCache() {
let insertionPoint;