From 1e12d4a2cb9a3edd1a01cf327c30496a86f935ec Mon Sep 17 00:00:00 2001 From: EYHN Date: Fri, 12 Apr 2024 06:45:10 +0000 Subject: [PATCH] feat(core): remove ai from experimental features (#6529) --- .../experimental-features/index.tsx | 71 +------------------ .../setting-modal/workspace-setting/index.tsx | 2 +- .../multi-tab-sidebar/entities/tabs/chat.tsx | 22 ++---- .../view/header-switcher.tsx | 22 ++---- 4 files changed, 14 insertions(+), 103 deletions(-) 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)}