Skip to content

Commit

Permalink
feat(core): make AI functions follow server configuration (#8374)
Browse files Browse the repository at this point in the history
  • Loading branch information
JimmFly authored Oct 16, 2024
1 parent 075ceda commit 82916e8
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { FeatureFlagService, useService } from '@toeverything/infra';
import { ServerConfigService } from '@affine/core/modules/cloud';
import {
FeatureFlagService,
useLiveData,
useService,
} from '@toeverything/infra';
import { Suspense, useCallback, useEffect, useState } from 'react';

import { AIOnboardingEdgeless } from './edgeless.dialog';
Expand Down Expand Up @@ -30,7 +35,12 @@ export const WorkspaceAIOnboarding = () => {
const [dismissGeneral] = useDismiss(AIOnboardingType.GENERAL);
const [dismissLocal] = useDismiss(AIOnboardingType.LOCAL);
const featureFlagService = useService(FeatureFlagService);
const enableAI = featureFlagService.flags.enable_ai.value;
const serverConfigService = useService(ServerConfigService);
const serverFeatures = useLiveData(
serverConfigService.serverConfig.features$
);
const enableAI =
serverFeatures?.copilot && featureFlagService.flags.enable_ai.value;

return (
<Suspense>
Expand All @@ -43,7 +53,12 @@ export const WorkspaceAIOnboarding = () => {
export const PageAIOnboarding = () => {
const [dismissEdgeless] = useDismiss(AIOnboardingType.EDGELESS);
const featureFlagService = useService(FeatureFlagService);
const enableAI = featureFlagService.flags.enable_ai.value;
const serverConfigService = useService(ServerConfigService);
const serverFeatures = useLiveData(
serverConfigService.serverConfig.features$
);
const enableAI =
serverFeatures?.copilot && featureFlagService.flags.enable_ai.value;

return (
<Suspense>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import {
SettingRow,
SettingWrapper,
} from '@affine/component/setting-components';
import { ServerConfigService } from '@affine/core/modules/cloud';
import {
EditorSettingService,
type FontFamily,
Expand Down Expand Up @@ -402,8 +403,13 @@ export const SpellCheckSettings = () => {
const AISettings = () => {
const t = useI18n();
const { openConfirmModal } = useConfirmModal();
const { featureFlagService } = useServices({ FeatureFlagService });

const { featureFlagService, serverConfigService } = useServices({
FeatureFlagService,
ServerConfigService,
});
const serverFeatures = useLiveData(
serverConfigService.serverConfig.features$
);
const enableAI = useLiveData(featureFlagService.flags.enable_ai.$);

const onAIChange = useCallback(
Expand Down Expand Up @@ -440,6 +446,10 @@ const AISettings = () => {
[openConfirmModal, t, onAIChange]
);

if (!serverFeatures?.copilot) {
return null;
}

return (
<SettingRow
name={t['com.affine.settings.editorSettings.general.ai.title']()}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
useLitPortalFactory,
} from '@affine/component';
import { useJournalInfoHelper } from '@affine/core/components/hooks/use-journal';
import { ServerConfigService } from '@affine/core/modules/cloud';
import { EditorService } from '@affine/core/modules/editor';
import { EditorSettingService } from '@affine/core/modules/editor-settting';
import { toURLSearchParams } from '@affine/core/modules/navigation';
Expand Down Expand Up @@ -86,15 +87,20 @@ const usePatchSpecs = (shared: boolean, mode: DocMode) => {
editorService,
workspaceService,
featureFlagService,
serverConfigService,
} = useServices({
PeekViewService,
DocService,
DocsService,
WorkspaceService,
EditorService,
FeatureFlagService,
ServerConfigService,
});
const framework = useFramework();
const serverFeatures = useLiveData(
serverConfigService.serverConfig.features$
);
const referenceRenderer: ReferenceReactRenderer = useMemo(() => {
return function customReference(reference) {
const data = reference.delta.attributes?.reference;
Expand All @@ -120,11 +126,17 @@ const usePatchSpecs = (shared: boolean, mode: DocMode) => {
}, [workspaceService]);

const specs = useMemo(() => {
const enableAI = featureFlagService.flags.enable_ai.value;
const enableAI =
serverFeatures?.copilot && featureFlagService.flags.enable_ai.value;
return mode === 'edgeless'
? createEdgelessModeSpecs(framework, enableAI)
: createPageModeSpecs(framework, enableAI);
}, [featureFlagService, mode, framework]);
? createEdgelessModeSpecs(framework, !!enableAI)
: createPageModeSpecs(framework, !!enableAI);
}, [
serverFeatures?.copilot,
featureFlagService.flags.enable_ai.value,
mode,
framework,
]);

const confirmModal = useConfirmModal();
const patchedSpecs = useMemo(() => {
Expand Down

0 comments on commit 82916e8

Please sign in to comment.