refactor(core): clear build config (#8268)

remove build config

allowLocalWorkspace -> FeatureFlag
enablePreloading -> removed
enableNewSettingUnstableApi -> removed
enableExperimentalFeature -> removed
enableThemeEditor -> FeatureFlag

remove some unused code
This commit is contained in:
EYHN
2024-09-18 06:33:24 +00:00
parent 46f8237a46
commit fab23d226d
17 changed files with 91 additions and 611 deletions
@@ -9,7 +9,7 @@ import { WorkspaceFlavour } from '@affine/env/workspace';
import { useI18n } from '@affine/i18n';
import { track } from '@affine/track';
import {
initEmptyPage,
FeatureFlagService,
useLiveData,
useService,
WorkspacesService,
@@ -18,9 +18,9 @@ import { useSetAtom } from 'jotai';
import type { KeyboardEvent } from 'react';
import { useCallback, useLayoutEffect, useState } from 'react';
import { buildShowcaseWorkspace } from '../../../bootstrap/first-app-data';
import { AuthService } from '../../../modules/cloud';
import { _addLocalWorkspace } from '../../../modules/workspace-engine';
import { buildShowcaseWorkspace } from '../../../utils/first-app-data';
import { CreateWorkspaceDialogService } from '../services/dialog';
import * as styles from './dialog.css';
@@ -35,8 +35,6 @@ interface NameWorkspaceContentProps extends ConfirmModalProps {
) => void;
}
const shouldEnableCloud = !BUILD_CONFIG.allowLocalWorkspace;
const NameWorkspaceContent = ({
loading,
onConfirmName,
@@ -44,7 +42,11 @@ const NameWorkspaceContent = ({
}: NameWorkspaceContentProps) => {
const t = useI18n();
const [workspaceName, setWorkspaceName] = useState('');
const [enable, setEnable] = useState(shouldEnableCloud);
const featureFlagService = useService(FeatureFlagService);
const enableLocalWorkspace = useLiveData(
featureFlagService.flags.enable_local_workspace.$
);
const [enable, setEnable] = useState(!enableLocalWorkspace);
const session = useService(AuthService).session;
const loginStatus = useLiveData(session.status$);
@@ -132,7 +134,7 @@ const NameWorkspaceContent = ({
<Switch
checked={enable}
onChange={onSwitchChange}
disabled={shouldEnableCloud}
disabled={!enableLocalWorkspace}
/>
</div>
<div className={styles.cardDescription}>
@@ -143,7 +145,7 @@ const NameWorkspaceContent = ({
<CloudSvg />
</div>
</div>
{shouldEnableCloud ? (
{!enableLocalWorkspace ? (
<a
className={styles.cloudTips}
href={BUILD_CONFIG.downloadUrl}
@@ -213,27 +215,12 @@ const CreateWorkspaceDialog = () => {
// this will be the last step for web for now
// fix me later
if (BUILD_CONFIG.enablePreloading) {
const { meta, defaultDocId } = await buildShowcaseWorkspace(
workspacesService,
workspaceFlavour,
name
);
createWorkspaceDialogService.dialog.callback({ meta, defaultDocId });
} else {
let defaultDocId: string | undefined = undefined;
const meta = await workspacesService.create(
workspaceFlavour,
async workspace => {
workspace.meta.initialize();
workspace.meta.setName(name);
const page = workspace.createDoc();
defaultDocId = page.id;
initEmptyPage(page);
}
);
createWorkspaceDialogService.dialog.callback({ meta, defaultDocId });
}
const { meta, defaultDocId } = await buildShowcaseWorkspace(
workspacesService,
workspaceFlavour,
name
);
createWorkspaceDialogService.dialog.callback({ meta, defaultDocId });
createWorkspaceDialogService.dialog.close();
setLoading(false);
@@ -1,4 +1,8 @@
import { useService } from '@toeverything/infra';
import {
FeatureFlagService,
useLiveData,
useServices,
} from '@toeverything/infra';
import { useTheme } from 'next-themes';
import { useEffect } from 'react';
@@ -7,16 +11,22 @@ import { ThemeEditorService } from '../services/theme-editor';
let _provided = false;
export const useCustomTheme = (target: HTMLElement) => {
const themeEditor = useService(ThemeEditorService);
const { themeEditorService, featureFlagService } = useServices({
ThemeEditorService,
FeatureFlagService,
});
const enableThemeEditor = useLiveData(
featureFlagService.flags.enable_theme_editor.$
);
const { resolvedTheme } = useTheme();
useEffect(() => {
if (!BUILD_CONFIG.enableThemeEditor) return;
if (!enableThemeEditor) return;
if (_provided) return;
_provided = true;
const sub = themeEditor.customTheme$.subscribe(themeObj => {
const sub = themeEditorService.customTheme$.subscribe(themeObj => {
if (!themeObj) return;
const mode = resolvedTheme === 'dark' ? 'dark' : 'light';
@@ -37,7 +47,7 @@ export const useCustomTheme = (target: HTMLElement) => {
_provided = false;
sub.unsubscribe();
};
}, [resolvedTheme, target.style, themeEditor.customTheme$]);
}, [resolvedTheme, target.style, enableThemeEditor, themeEditorService]);
};
export const CustomThemeModifier = () => {