chore: update blocksuite to 0.0.0-20230512192655-e61e272b-nightly (#2352)

This commit is contained in:
Himself65
2023-05-13 04:39:05 +08:00
committed by GitHub
parent 00fd468e9b
commit b240a70e51
12 changed files with 172 additions and 131 deletions

View File

@@ -4,13 +4,17 @@ import { getEnvironment } from '@affine/env';
import { ArrowDownSmallIcon } from '@blocksuite/icons';
import { assertExists } from '@blocksuite/store';
import { useBlockSuitePageMeta } from '@toeverything/hooks/use-block-suite-page-meta';
import { useAtom, useAtomValue, useSetAtom } from 'jotai';
import type { HTMLAttributes, PropsWithChildren } from 'react';
import { forwardRef, useCallback, useRef } from 'react';
import { useAtom, useSetAtom } from 'jotai';
import type {
FC,
HTMLAttributes,
PropsWithChildren,
ReactElement,
} from 'react';
import { useEffect, useRef } from 'react';
import { currentEditorAtom, openQuickSearchModalAtom } from '../../../atoms';
import { openQuickSearchModalAtom } from '../../../atoms';
import { guideQuickSearchTipsAtom } from '../../../atoms/guide';
import { useElementResizeEffect } from '../../../hooks/use-workspaces';
import { QuickSearchButton } from '../../pure/quick-search-button';
import { EditorModeSwitch } from './editor-mode-switch';
import type { BaseHeaderProps } from './header';
@@ -19,22 +23,23 @@ import * as styles from './styles.css';
export type WorkspaceHeaderProps = BaseHeaderProps;
export const WorkspaceHeader = forwardRef<
HTMLDivElement,
const isMac = () => {
const env = getEnvironment();
return env.isBrowser && env.isMacOs;
};
export const WorkspaceHeader: FC<
PropsWithChildren<WorkspaceHeaderProps> & HTMLAttributes<HTMLDivElement>
>((props, ref) => {
> = (props): ReactElement => {
const { workspace, currentPage, children, isPublic } = props;
// fixme(himself65): remove this atom and move it to props
const setOpenQuickSearch = useSetAtom(openQuickSearchModalAtom);
const pageMeta = useBlockSuitePageMeta(workspace.blockSuiteWorkspace).find(
meta => meta.id === currentPage?.id
);
const headerRef = useRef<HTMLDivElement>(null);
assertExists(pageMeta);
const title = pageMeta.title;
const isMac = () => {
const env = getEnvironment();
return env.isBrowser && env.isMacOs;
};
const popperRef: PopperProps['popperRef'] = useRef(null);
@@ -42,15 +47,21 @@ export const WorkspaceHeader = forwardRef<
guideQuickSearchTipsAtom
);
useElementResizeEffect(
useAtomValue(currentEditorAtom),
useCallback(() => {
useEffect(() => {
if (!headerRef.current) {
return;
}
const resizeObserver = new ResizeObserver(() => {
if (showQuickSearchTips || !popperRef.current) {
return;
}
popperRef.current.update();
}, [showQuickSearchTips])
);
});
resizeObserver.observe(headerRef.current);
return () => {
resizeObserver.disconnect();
};
}, [showQuickSearchTips]);
const TipsContent = (
<div className={styles.quickSearchTipContent}>
@@ -81,7 +92,7 @@ export const WorkspaceHeader = forwardRef<
);
return (
<Header ref={ref} {...props}>
<Header ref={headerRef} {...props}>
{children}
{!isPublic && currentPage && (
<div className={styles.titleContainer}>
@@ -117,6 +128,6 @@ export const WorkspaceHeader = forwardRef<
)}
</Header>
);
});
};
WorkspaceHeader.displayName = 'BlockSuiteEditorHeader';

View File

@@ -6,7 +6,7 @@ import { WorkspaceFlavour } from '@affine/workspace/type';
import { createEmptyBlockSuiteWorkspace } from '@affine/workspace/utils';
import { nanoid } from '@blocksuite/store';
import { useAtomValue, useSetAtom } from 'jotai';
import { useCallback, useEffect } from 'react';
import { useCallback } from 'react';
import { workspacesAtom } from '../atoms';
import { WorkspaceAdapters } from '../plugins';
@@ -97,25 +97,3 @@ export function useAppHelper() {
),
};
}
export const useElementResizeEffect = (
element: Element | null,
fn: () => void | (() => () => void),
// TODO: add throttle
_throttle = 0
) => {
useEffect(() => {
if (!element) {
return;
}
let dispose: void | (() => void);
const resizeObserver = new ResizeObserver(() => {
dispose = fn();
});
resizeObserver.observe(element);
return () => {
dispose?.();
resizeObserver.disconnect();
};
}, [element, fn]);
};

View File

@@ -365,7 +365,7 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
paths={isPublicWorkspace ? publicPathGenerator : pathGenerator}
/>
<MainContainer sidebarOpen={sidebarOpen}>
<Suspense fallback={<WorkspaceFallback />}>{children}</Suspense>
{children}
<ToolContainer>
{/* fixme(himself65): remove this */}
<div id="toolWrapper" style={{ marginBottom: '12px' }}>