diff --git a/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/experimental-features/index.tsx b/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/experimental-features/index.tsx
index 2e8ebc3bb..3e0b7028e 100644
--- a/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/experimental-features/index.tsx
+++ b/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/experimental-features/index.tsx
@@ -2,14 +2,7 @@ import { Button, Checkbox, Loading, Switch } from '@affine/component';
import { SettingHeader } from '@affine/component/setting-components';
import { useAppSettingHelper } from '@affine/core/hooks/affine/use-app-setting-helper';
import { useAsyncCallback } from '@affine/core/hooks/affine-async-hooks';
-import {
- useSetWorkspaceFeature,
- useWorkspaceAvailableFeatures,
- useWorkspaceEnabledFeatures,
-} from '@affine/core/hooks/use-workspace-features';
-import { FeatureType } from '@affine/graphql';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
-import type { WorkspaceMetadata } from '@toeverything/infra';
import { useAtom } from 'jotai';
import { atomWithStorage } from 'jotai/utils';
import { Suspense, useCallback, useState } from 'react';
@@ -73,12 +66,6 @@ const ExperimentalFeaturesPrompt = ({
);
};
-interface ExperimentalFeaturesItemProps {
- feature: FeatureType;
- title: React.ReactNode;
- workspaceMetadata: WorkspaceMetadata;
-}
-
const ExperimentalFeaturesItem = ({
title,
isMutating,
@@ -102,49 +89,6 @@ const ExperimentalFeaturesItem = ({
);
};
-const WorkspaceFeaturesSettingItem = ({
- feature,
- title,
- workspaceMetadata,
-}: ExperimentalFeaturesItemProps) => {
- const enabledFeatures = useWorkspaceEnabledFeatures(workspaceMetadata);
- const enabled = enabledFeatures.includes(feature);
- const [localEnabled, setLocalEnabled] = useState(enabled);
- const { trigger, isMutating } = useSetWorkspaceFeature(workspaceMetadata);
- const onChange = useCallback(
- (checked: boolean) => {
- setLocalEnabled(checked);
- trigger(feature, checked);
- },
- [trigger, feature]
- );
-
- return (
-
- );
-};
-
-const CopilotSettingRow = ({
- workspaceMetadata,
-}: {
- workspaceMetadata: WorkspaceMetadata;
-}) => {
- const features = useWorkspaceAvailableFeatures(workspaceMetadata);
-
- return features.includes(FeatureType.Copilot) ? (
-
- ) : null;
-};
-
const SplitViewSettingRow = () => {
const { appSettings, updateSettings } = useAppSettingHelper();
@@ -204,11 +148,7 @@ const BlocksuiteFeatureFlagSettings = () => {
);
};
-const ExperimentalFeaturesMain = ({
- workspaceMetadata,
-}: {
- workspaceMetadata: WorkspaceMetadata;
-}) => {
+const ExperimentalFeaturesMain = () => {
const t = useAFFiNEI18N();
return (
@@ -219,7 +159,6 @@ const ExperimentalFeaturesMain = ({
]()}
/>
-
@@ -233,11 +172,7 @@ const experimentalFeaturesDisclaimerAtom = atomWithStorage(
false
);
-export const ExperimentalFeatures = ({
- workspaceMetadata,
-}: {
- workspaceMetadata: WorkspaceMetadata;
-}) => {
+export const ExperimentalFeatures = () => {
const [enabled, setEnabled] = useAtom(experimentalFeaturesDisclaimerAtom);
const handleConfirm = useAsyncCallback(async () => {
setEnabled(true);
@@ -247,7 +182,7 @@ export const ExperimentalFeatures = ({
} else {
return (
}>
-
+
);
}
diff --git a/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/index.tsx b/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/index.tsx
index 45a7fabba..10571dc13 100644
--- a/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/index.tsx
+++ b/packages/frontend/core/src/components/affine/setting-modal/workspace-setting/index.tsx
@@ -23,7 +23,7 @@ export const WorkspaceSetting = ({
/>
);
case 'experimental-features':
- return ;
+ return ;
case 'properties':
return (
diff --git a/packages/frontend/core/src/modules/multi-tab-sidebar/entities/tabs/chat.tsx b/packages/frontend/core/src/modules/multi-tab-sidebar/entities/tabs/chat.tsx
index 2eced5b19..f69060b55 100644
--- a/packages/frontend/core/src/modules/multi-tab-sidebar/entities/tabs/chat.tsx
+++ b/packages/frontend/core/src/modules/multi-tab-sidebar/entities/tabs/chat.tsx
@@ -1,9 +1,6 @@
-import { useWorkspaceEnabledFeatures } from '@affine/core/hooks/use-workspace-features';
-import { FeatureType } from '@affine/graphql';
import { assertExists } from '@blocksuite/global/utils';
import { AiIcon } from '@blocksuite/icons';
import { ChatPanel } from '@blocksuite/presets';
-import { useService, Workspace } from '@toeverything/infra';
import { useCallback, useRef } from 'react';
import type { SidebarTab, SidebarTabProps } from '../sidebar-tab';
@@ -11,21 +8,14 @@ import * as styles from './chat.css';
// A wrapper for CopilotPanel
const EditorChatPanel = ({ editor }: SidebarTabProps) => {
- const workspace = useService(Workspace);
- const copilotEnabled = useWorkspaceEnabledFeatures(workspace.meta).includes(
- FeatureType.Copilot
- );
const chatPanelRef = useRef(null);
- const onRefChange = useCallback(
- (container: HTMLDivElement | null) => {
- if (container && copilotEnabled) {
- assertExists(chatPanelRef.current, 'chat panel should be initialized');
- container.append(chatPanelRef.current);
- }
- },
- [copilotEnabled]
- );
+ const onRefChange = useCallback((container: HTMLDivElement | null) => {
+ if (container) {
+ assertExists(chatPanelRef.current, 'chat panel should be initialized');
+ container.append(chatPanelRef.current);
+ }
+ }, []);
if (!editor) {
return;
diff --git a/packages/frontend/core/src/modules/multi-tab-sidebar/view/header-switcher.tsx b/packages/frontend/core/src/modules/multi-tab-sidebar/view/header-switcher.tsx
index 07e086bf4..ddfd21701 100644
--- a/packages/frontend/core/src/modules/multi-tab-sidebar/view/header-switcher.tsx
+++ b/packages/frontend/core/src/modules/multi-tab-sidebar/view/header-switcher.tsx
@@ -1,10 +1,8 @@
import { IconButton } from '@affine/component';
import { useJournalInfoHelper } from '@affine/core/hooks/use-journal';
-import { useWorkspaceEnabledFeatures } from '@affine/core/hooks/use-workspace-features';
-import { FeatureType } from '@affine/graphql';
import { Doc, useService, Workspace } from '@toeverything/infra';
import { assignInlineVars } from '@vanilla-extract/dynamic';
-import { useEffect, useMemo } from 'react';
+import { useEffect } from 'react';
import type { SidebarTab, SidebarTabName } from '../entities/sidebar-tab';
import * as styles from './header-switcher.css';
@@ -24,22 +22,10 @@ export const MultiTabSidebarHeaderSwitcher = ({
}: MultiTabSidebarHeaderSwitcherProps) => {
const workspace = useService(Workspace);
const doc = useService(Doc);
- const copilotEnabled = useWorkspaceEnabledFeatures(workspace.meta).includes(
- FeatureType.Copilot
- );
const { isJournal } = useJournalInfoHelper(workspace.docCollection, doc.id);
- const exts = useMemo(
- () =>
- tabs.filter(ext => {
- if (ext.name === 'chat' && !copilotEnabled) return false;
- return true;
- }),
- [copilotEnabled, tabs]
- );
-
- const activeExtension = exts.find(ext => ext.name === activeTabName);
+ const activeExtension = tabs.find(ext => ext.name === activeTabName);
// if journal is active, set selected to journal
useEffect(() => {
@@ -50,14 +36,14 @@ export const MultiTabSidebarHeaderSwitcher = ({
const vars = assignInlineVars({
[styles.activeIdx]: String(
- exts.findIndex(ext => ext.name === activeExtension?.name) ?? 0
+ tabs.findIndex(ext => ext.name === activeExtension?.name) ?? 0
),
});
return (
- {exts.map(extension => {
+ {tabs.map(extension => {
return (
setActiveTabName(extension.name)}