diff --git a/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/connector.tsx b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/connector.tsx
index b127f658c1..c6edd4e805 100644
--- a/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/connector.tsx
+++ b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/connector.tsx
@@ -1,5 +1,4 @@
import {
- Menu,
MenuItem,
MenuTrigger,
RadioGroup,
@@ -18,7 +17,9 @@ import {
import { useFramework, useLiveData } from '@toeverything/infra';
import { useCallback, useMemo } from 'react';
+import { DropdownMenu } from '../menu';
import { menuTrigger, settingWrapper } from '../style.css';
+import { Point } from './point';
import { EdgelessSnapshot } from './snapshot';
enum ConnecterStyle {
@@ -130,6 +131,11 @@ export const ConnectorSettings = () => {
[editorSetting]
);
+ const currentColor = useMemo(() => {
+ const color = settings.connector.stroke;
+ return Object.entries(LineColor).find(([, value]) => value === color);
+ }, [settings]);
+
const colorItems = useMemo(() => {
const { stroke } = settings.connector;
return Object.entries(LineColor).map(([name, value]) => {
@@ -138,7 +144,12 @@ export const ConnectorSettings = () => {
};
const isSelected = stroke === value;
return (
-
);
@@ -188,11 +199,19 @@ export const ConnectorSettings = () => {
]()}
desc={''}
>
-
+ {currentColor ? (
+ }
+ >
+ {currentColor[0]}
+
+ }
+ />
+ ) : null}
{
]()}
desc={''}
>
-
+
+ {String(settings.connector.frontEndpointStyle)}
+
+ }
+ />
{
]()}
desc={''}
>
-
+
+ {String(settings.connector.rearEndpointStyle)}
+
+ }
+ />
>
);
diff --git a/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/mind-map.tsx b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/mind-map.tsx
index 33d4a5c584..0972863d32 100644
--- a/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/mind-map.tsx
+++ b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/mind-map.tsx
@@ -1,5 +1,4 @@
import {
- Menu,
MenuItem,
MenuTrigger,
RadioGroup,
@@ -9,6 +8,7 @@ import { SettingRow } from '@affine/component/setting-components';
import { useI18n } from '@affine/i18n';
import { useMemo, useState } from 'react';
+import { DropdownMenu } from '../menu';
import { menuTrigger, settingWrapper } from '../style.css';
import { EdgelessSnapshot } from './snapshot';
@@ -54,11 +54,14 @@ export const MindMapSettings = () => {
name={t['com.affine.settings.editorSettings.edgeless.style']()}
desc={''}
>
-
+ Style 1}
+ trigger={
+
+ Style 1
+
+ }
+ />
{
};
const isSelected = background === value;
return (
-
+ }
+ >
{name}
);
@@ -140,6 +146,13 @@ export const NoteSettings = () => {
});
}, [editorSetting, settings]);
+ const currentColor = useMemo(() => {
+ const { background } = settings['affine:note'];
+ return Object.entries(NoteBackgroundColor).find(
+ ([, value]) => value === background
+ );
+ }, [settings]);
+
return (
<>
{
]()}
desc={''}
>
-
+ {currentColor ? (
+ }
+ >
+ {currentColor[0]}
+
+ }
+ />
+ ) : null}
-
+
+ {String(settings['affine:note'].edgeless.style.borderRadius)}
+
+ }
+ />
-
+
+ {String(settings['affine:note'].edgeless.style.shadowType)}
+
+ }
+ />
{
},
[editorSetting]
);
-
return (
<>
{
name={t['com.affine.settings.editorSettings.edgeless.pen.color']()}
desc={''}
>
-
+
+ {String(settings.brush.color)}
+
+ }
+ />
{
+ return (
+
+ );
+};
diff --git a/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/shape.tsx b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/shape.tsx
index fdde2abc48..fccc763552 100644
--- a/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/shape.tsx
+++ b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/edgeless/shape.tsx
@@ -1,5 +1,4 @@
import {
- Menu,
MenuItem,
MenuTrigger,
RadioGroup,
@@ -10,6 +9,7 @@ import { SettingRow } from '@affine/component/setting-components';
import { useI18n } from '@affine/i18n';
import { useMemo, useState } from 'react';
+import { DropdownMenu } from '../menu';
import { menuTrigger, settingWrapper, shapeIndicator } from '../style.css';
import { EdgelessSnapshot } from './snapshot';
@@ -164,11 +164,14 @@ export const ShapeSettings = () => {
]()}
desc={''}
>
-
+ Yellow}
+ trigger={
+
+ Yellow
+
+ }
+ />
{
]()}
desc={''}
>
-
+ Yellow}
+ trigger={
+
+ Yellow
+
+ }
+ />
{
]()}
desc={''}
>
-
+ Yellow}
+ trigger={
+
+ Yellow
+
+ }
+ />
-
+ {' '}
+ Inter}
+ trigger={
+
+ Inter
+
+ }
+ />
{
]()}
desc={''}
>
-
+ 15px}
+ trigger={
+
+ 15px
+
+ }
+ />
{
]()}
desc={''}
>
-
+ Regular}
+ trigger={
+
+ Regular
+
+ }
+ />
{
@@ -73,7 +74,12 @@ export const TextSettings = () => {
};
const isSelected = color === value;
return (
-
+ }
+ >
{name}
);
@@ -125,6 +131,10 @@ export const TextSettings = () => {
});
}, [editorSetting, settings]);
+ const currentColor = useMemo(() => {
+ const { color } = settings['affine:edgeless-text'];
+ return Object.entries(LineColor).find(([, value]) => value === color);
+ }, [settings]);
return (
<>
{
name={t['com.affine.settings.editorSettings.edgeless.text.color']()}
desc={''}
>
-
+ {currentColor ? (
+ }
+ >
+ {currentColor[0]}
+
+ }
+ />
+ ) : null}
{
]()}
desc={''}
>
-
+
+ {FontFamilyMap[settings['affine:edgeless-text'].fontFamily]}
+
+ }
+ />
{
]()}
desc={''}
>
-
+
+ {String(settings['affine:edgeless-text'].fontStyle)}
+
+ }
+ />
{
]()}
desc={''}
>
-
+
+ {settings['affine:edgeless-text'].fontWeight}
+
+ }
+ />
{
@@ -94,13 +95,18 @@ const FontFamilySettings = () => {
);
return (
-
+
+
+
);
};
@@ -303,13 +309,71 @@ const NewDocDefaultModeSettings = () => {
[editorSettingService.editorSetting]
);
return (
-
+
+
+
+ );
+};
+
+export const DeFaultCodeBlockSettings = () => {
+ const t = useI18n();
+ return (
+ <>
+
+ Plain Text}
+ trigger={
+
+ Plain Text
+
+ }
+ />
+
+
+
+
+ >
+ );
+};
+
+export const SpellCheckSettings = () => {
+ const t = useI18n();
+ return (
+
+
+
);
};
@@ -323,62 +387,11 @@ export const General = () => {
>
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
);
};
diff --git a/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/menu.tsx b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/menu.tsx
new file mode 100644
index 0000000000..987b3a22fc
--- /dev/null
+++ b/packages/frontend/core/src/components/affine/setting-modal/general-setting/editor/menu.tsx
@@ -0,0 +1,23 @@
+import { Menu } from '@affine/component';
+import { type ReactNode } from 'react';
+
+export const DropdownMenu = ({
+ items,
+ trigger,
+}: {
+ items: ReactNode;
+ trigger: ReactNode;
+}) => {
+ return (
+
+ );
+};