mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-12 14:40:22 +08:00
refactor(core): doc property (#8465)
doc property upgraded to use orm. The visibility of the property are simplified to three types: `always show`, `always hide`, `hide when empty`, and the default is `always show`.  Added a sidebar view to manage properties  new property ui in workspace settings  Property lists can be collapsed 
This commit is contained in:
@@ -10,14 +10,17 @@ import * as styles from './drop-indicator.css';
|
||||
export type DropIndicatorProps = {
|
||||
instruction?: Instruction | null;
|
||||
edge?: Edge | null;
|
||||
noTerminal?: boolean;
|
||||
};
|
||||
|
||||
function getTreeElement({
|
||||
instruction,
|
||||
isBlocked,
|
||||
noTerminal,
|
||||
}: {
|
||||
instruction: Exclude<Instruction, { type: 'instruction-blocked' }>;
|
||||
isBlocked: boolean;
|
||||
noTerminal?: boolean;
|
||||
}): ReactElement | null {
|
||||
const style = {
|
||||
[styles.horizontalIndent]: `${instruction.currentLevel * instruction.indentPerLevel}px`,
|
||||
@@ -31,6 +34,7 @@ function getTreeElement({
|
||||
<div
|
||||
className={clsx(styles.treeLine, styles.lineAboveStyles)}
|
||||
style={assignInlineVars(style)}
|
||||
data-no-terminal={noTerminal}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -39,6 +43,7 @@ function getTreeElement({
|
||||
<div
|
||||
className={clsx(styles.treeLine, styles.lineBelowStyles)}
|
||||
style={assignInlineVars(style)}
|
||||
data-no-terminal={noTerminal}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -48,6 +53,7 @@ function getTreeElement({
|
||||
<div
|
||||
className={clsx(styles.outlineStyles)}
|
||||
style={assignInlineVars(style)}
|
||||
data-no-terminal={noTerminal}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -61,6 +67,7 @@ function getTreeElement({
|
||||
<div
|
||||
className={clsx(styles.treeLine, styles.lineBelowStyles)}
|
||||
style={assignInlineVars(style)}
|
||||
data-no-terminal={noTerminal}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -88,13 +95,14 @@ const edgeStyles: Record<Edge, string> = {
|
||||
right: styles.right,
|
||||
};
|
||||
|
||||
function getEdgeElement(edge: Edge, gap: number = 0) {
|
||||
function getEdgeElement(edge: Edge, gap: number = 0, noTerminal?: boolean) {
|
||||
const lineOffset = `calc(-0.5 * (${gap}px + 2px))`;
|
||||
|
||||
const orientation = edgeToOrientationMap[edge];
|
||||
|
||||
return (
|
||||
<div
|
||||
data-no-terminal={noTerminal}
|
||||
className={clsx([
|
||||
styles.edgeLine,
|
||||
orientationStyles[orientation],
|
||||
@@ -105,9 +113,13 @@ function getEdgeElement(edge: Edge, gap: number = 0) {
|
||||
);
|
||||
}
|
||||
|
||||
export function DropIndicator({ instruction, edge }: DropIndicatorProps) {
|
||||
export function DropIndicator({
|
||||
instruction,
|
||||
edge,
|
||||
noTerminal,
|
||||
}: DropIndicatorProps) {
|
||||
if (edge) {
|
||||
return getEdgeElement(edge, 0);
|
||||
return getEdgeElement(edge, 0, noTerminal);
|
||||
}
|
||||
if (instruction) {
|
||||
if (instruction.type === 'instruction-blocked') {
|
||||
|
||||
Reference in New Issue
Block a user