mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 12:55:00 +00:00
feat: bump more deps (#14079)
This commit is contained in:
@@ -65,9 +65,8 @@ export const usePageHelper = (docCollection: Workspace) => {
|
||||
|
||||
const importFileAndOpen = useMemo(
|
||||
() => async () => {
|
||||
const { showImportModal } = await import(
|
||||
'@blocksuite/affine/widgets/linked-doc'
|
||||
);
|
||||
const { showImportModal } =
|
||||
await import('@blocksuite/affine/widgets/linked-doc');
|
||||
const { promise, resolve, reject } =
|
||||
Promise.withResolvers<
|
||||
Parameters<
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import type { HTMLAttributes, ReactNode } from 'react';
|
||||
|
||||
export interface EmptyLayoutProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
||||
export interface EmptyLayoutProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
illustrationLight: string;
|
||||
illustrationDark?: string;
|
||||
illustrationWidth?: number | string;
|
||||
|
||||
@@ -4,8 +4,10 @@ import type { HTMLAttributes } from 'react';
|
||||
import { MemberItem } from './item';
|
||||
import * as styles from './styles.css';
|
||||
|
||||
interface InlineMemberListProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
interface InlineMemberListProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
members: string[];
|
||||
focusedIndex?: number;
|
||||
onRemove?: (id: string) => void;
|
||||
|
||||
@@ -108,8 +108,10 @@ export const ConfigRow = forwardRef<HTMLDivElement, HTMLProps<HTMLDivElement>>(
|
||||
}
|
||||
);
|
||||
|
||||
export interface SettingGroupProps
|
||||
extends Omit<HTMLProps<HTMLDivElement>, 'title'> {
|
||||
export interface SettingGroupProps extends Omit<
|
||||
HTMLProps<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
title?: ReactNode;
|
||||
contentClassName?: string;
|
||||
contentStyle?: CSSProperties;
|
||||
|
||||
@@ -4,8 +4,10 @@ import * as styles from './inline-tag-list.css';
|
||||
import { TagItem } from './tag';
|
||||
import type { TagLike } from './types';
|
||||
|
||||
interface InlineTagListProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
interface InlineTagListProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
onRemoved?: (id: string) => void;
|
||||
tags: TagLike[];
|
||||
tagMode: 'inline-tag' | 'db-label';
|
||||
|
||||
@@ -13,8 +13,7 @@ import {
|
||||
|
||||
import * as styles from './empty-section.css';
|
||||
|
||||
interface NavigationPanelEmptySectionProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
interface NavigationPanelEmptySectionProps extends HTMLAttributes<HTMLDivElement> {
|
||||
icon:
|
||||
| ((props: SVGProps<SVGSVGElement>) => JSX.Element)
|
||||
| ReactElement<SVGAttributes<SVGElement>>;
|
||||
|
||||
@@ -90,8 +90,7 @@ type ExplorerIconConfig = {
|
||||
where: ExplorerType;
|
||||
id: string;
|
||||
};
|
||||
interface WebNavigationPanelTreeNodeProps
|
||||
extends BaseNavigationPanelTreeNodeProps {
|
||||
interface WebNavigationPanelTreeNodeProps extends BaseNavigationPanelTreeNodeProps {
|
||||
renameable?: boolean;
|
||||
onRename?: (newName: string) => void;
|
||||
renameableGuard?: { docId: string; action: DocPermissionActions };
|
||||
|
||||
@@ -20,8 +20,10 @@ import {
|
||||
|
||||
import * as styles from './server-selector.css';
|
||||
|
||||
export interface ServerSelectorProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
export interface ServerSelectorProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
selectedId: Server['id'];
|
||||
onChange: (id: Server['id']) => void;
|
||||
placeholder?: ReactNode;
|
||||
|
||||
@@ -30,8 +30,10 @@ export const SeeAllLink = () => {
|
||||
);
|
||||
};
|
||||
|
||||
interface PricingCollapsibleProps
|
||||
extends Omit<HtmlHTMLAttributes<HTMLDivElement>, 'title'> {
|
||||
interface PricingCollapsibleProps extends Omit<
|
||||
HtmlHTMLAttributes<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
title?: ReactNode;
|
||||
caption?: ReactNode;
|
||||
}
|
||||
|
||||
@@ -34,8 +34,7 @@ export const IntegrationSettingHeader = ({
|
||||
};
|
||||
|
||||
// universal
|
||||
export interface IntegrationSettingItemProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
export interface IntegrationSettingItemProps extends HTMLAttributes<HTMLDivElement> {
|
||||
name?: ReactNode;
|
||||
desc?: ReactNode;
|
||||
}
|
||||
|
||||
@@ -49,8 +49,10 @@ const CountDisplay = ({
|
||||
}: { count: number; max?: number } & HTMLAttributes<HTMLSpanElement>) => {
|
||||
return <span {...attrs}>{count > max ? `${max}+` : count}</span>;
|
||||
};
|
||||
interface PageItemProps
|
||||
extends Omit<HTMLAttributes<HTMLAnchorElement>, 'onClick'> {
|
||||
interface PageItemProps extends Omit<
|
||||
HTMLAttributes<HTMLAnchorElement>,
|
||||
'onClick'
|
||||
> {
|
||||
docId: string;
|
||||
right?: ReactNode;
|
||||
duplicate?: boolean;
|
||||
@@ -321,8 +323,7 @@ const JournalDailyCountBlock = ({ date }: JournalBlockProps) => {
|
||||
|
||||
const MAX_CONFLICT_COUNT = 5;
|
||||
interface ConflictListProps
|
||||
extends PropsWithChildren,
|
||||
HTMLAttributes<HTMLDivElement> {
|
||||
extends PropsWithChildren, HTMLAttributes<HTMLDivElement> {
|
||||
docRecords: DocRecord[];
|
||||
}
|
||||
const ConflictList = ({
|
||||
|
||||
@@ -7,8 +7,7 @@ import { type HTMLAttributes, useContext } from 'react';
|
||||
import { levelIndent } from '../tree/node.css';
|
||||
import * as styles from './add-item-placeholder.css';
|
||||
|
||||
export interface AddItemPlaceholderProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
export interface AddItemPlaceholderProps extends HTMLAttributes<HTMLDivElement> {
|
||||
onClick?: () => void;
|
||||
label?: string;
|
||||
icon?: React.ReactNode;
|
||||
|
||||
@@ -28,8 +28,7 @@ interface CollapsibleSectionProps extends HTMLAttributes<HTMLDivElement> {
|
||||
contentClassName?: string;
|
||||
}
|
||||
|
||||
interface CollapsibleSectionTriggerProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
interface CollapsibleSectionTriggerProps extends HTMLAttributes<HTMLDivElement> {
|
||||
label: string;
|
||||
collapsed?: boolean;
|
||||
actions?: ReactNode;
|
||||
|
||||
@@ -20,8 +20,7 @@ import {
|
||||
import { SwipeMenu } from '../../swipe-menu';
|
||||
import * as styles from './node.css';
|
||||
|
||||
interface NavigationPanelTreeNodeProps
|
||||
extends BaseNavigationPanelTreeNodeProps {}
|
||||
interface NavigationPanelTreeNodeProps extends BaseNavigationPanelTreeNodeProps {}
|
||||
|
||||
export const NavigationPanelTreeNode = ({
|
||||
children,
|
||||
|
||||
@@ -11,8 +11,10 @@ import { forwardRef } from 'react';
|
||||
import { NavigationBackButton } from '../navigation-back';
|
||||
import * as styles from './styles.css';
|
||||
|
||||
export interface PageHeaderProps
|
||||
extends Omit<HtmlHTMLAttributes<HTMLHeadElement>, 'prefix'> {
|
||||
export interface PageHeaderProps extends Omit<
|
||||
HtmlHTMLAttributes<HTMLHeadElement>,
|
||||
'prefix'
|
||||
> {
|
||||
/**
|
||||
* whether to show back button
|
||||
*/
|
||||
|
||||
@@ -19,8 +19,7 @@ export interface RenameContentProps extends RenameBaseProps {
|
||||
inputBelowRenderer?: (props: { input: string }) => ReactNode;
|
||||
}
|
||||
|
||||
export interface RenameSubMenuProps
|
||||
extends PropsWithChildren<RenameContentProps> {
|
||||
export interface RenameSubMenuProps extends PropsWithChildren<RenameContentProps> {
|
||||
/** Submenu's title */
|
||||
title?: string;
|
||||
/** MenuItem.icon */
|
||||
@@ -31,8 +30,7 @@ export interface RenameSubMenuProps
|
||||
disabled?: boolean;
|
||||
}
|
||||
|
||||
export interface RenameDialogProps
|
||||
extends PropsWithChildren<RenameContentProps> {
|
||||
export interface RenameDialogProps extends PropsWithChildren<RenameContentProps> {
|
||||
open?: boolean;
|
||||
onOpenChange?: (open: boolean) => void;
|
||||
title?: string;
|
||||
|
||||
@@ -16,8 +16,10 @@ import {
|
||||
|
||||
import * as styles from './style.css';
|
||||
|
||||
export interface SearchInputProps
|
||||
extends Omit<HTMLProps<HTMLInputElement>, 'onInput'> {
|
||||
export interface SearchInputProps extends Omit<
|
||||
HTMLProps<HTMLInputElement>,
|
||||
'onInput'
|
||||
> {
|
||||
value?: string;
|
||||
height?: number;
|
||||
cornerRadius?: number;
|
||||
|
||||
@@ -10,8 +10,7 @@ import { forwardRef, type HTMLAttributes } from 'react';
|
||||
|
||||
import { card, dropdownIcon, label } from './card.css';
|
||||
|
||||
export interface CurrentWorkspaceCardProps
|
||||
extends HTMLAttributes<HTMLDivElement> {}
|
||||
export interface CurrentWorkspaceCardProps extends HTMLAttributes<HTMLDivElement> {}
|
||||
|
||||
export const CurrentWorkspaceCard = forwardRef<
|
||||
HTMLDivElement,
|
||||
|
||||
@@ -9,8 +9,10 @@ import {
|
||||
|
||||
import * as styles from './group.css';
|
||||
|
||||
export interface SettingGroupProps
|
||||
extends Omit<HTMLProps<HTMLDivElement>, 'title'> {
|
||||
export interface SettingGroupProps extends Omit<
|
||||
HTMLProps<HTMLDivElement>,
|
||||
'title'
|
||||
> {
|
||||
title?: ReactNode;
|
||||
contentClassName?: string;
|
||||
contentStyle?: CSSProperties;
|
||||
|
||||
@@ -3,8 +3,10 @@ import { type HTMLAttributes, useCallback, useEffect, useState } from 'react';
|
||||
import { JournalDatePickerContext } from './context';
|
||||
import { ResizeViewport } from './viewport';
|
||||
|
||||
export interface JournalDatePickerProps
|
||||
extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
||||
export interface JournalDatePickerProps extends Omit<
|
||||
HTMLAttributes<HTMLDivElement>,
|
||||
'onChange'
|
||||
> {
|
||||
date: string;
|
||||
onChange: (date: string) => void;
|
||||
withDotDates: Set<string | null | undefined>;
|
||||
|
||||
@@ -3,26 +3,22 @@
|
||||
## How Cross-Tab Audio Synchronization Works
|
||||
|
||||
1. **Global State**:
|
||||
|
||||
- Shared between all tabs via Electron's global state or browser storage
|
||||
- Contains `PlaybackState` and `MediaStats` objects
|
||||
- Each state update includes a timestamp (`updateTime`) to track recency
|
||||
|
||||
2. **Tab 1 - Playing Audio**:
|
||||
|
||||
- User initiates playback in Tab 1
|
||||
- `AudioMediaManagerService` updates global state with new playback info
|
||||
- Global state includes the tab ID that initiated playback
|
||||
|
||||
3. **Tab 2 - Responding to Changes**:
|
||||
|
||||
- Observes changes to global state via `observeGlobalPlaybackState`
|
||||
- Detects that audio is playing in another tab (different tabId)
|
||||
- Automatically stops any playing audio in Tab 2
|
||||
- Does not attempt to play the audio from Tab 1
|
||||
|
||||
4. **State Synchronization**:
|
||||
|
||||
- All state changes include `updateTime` to prevent race conditions
|
||||
- `distinctUntilChanged` ensures only meaningful state changes trigger updates
|
||||
- `skipUpdate` parameter prevents circular update loops
|
||||
|
||||
@@ -117,8 +117,7 @@ export const TemplateListMenuContentScrollable = (
|
||||
};
|
||||
|
||||
interface TemplateListMenuProps
|
||||
extends TemplateListMenuContentProps,
|
||||
Omit<MenuProps, 'items'> {}
|
||||
extends TemplateListMenuContentProps, Omit<MenuProps, 'items'> {}
|
||||
export const TemplateListMenu = ({
|
||||
children,
|
||||
onSelect,
|
||||
|
||||
@@ -8,8 +8,7 @@ import { forwardRef, memo, useCallback, useMemo, useState } from 'react';
|
||||
import type { View } from '../../entities/view';
|
||||
import * as styles from './indicator.css';
|
||||
|
||||
export interface SplitViewDragHandleProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
export interface SplitViewDragHandleProps extends HTMLAttributes<HTMLDivElement> {
|
||||
active?: boolean;
|
||||
dragging?: boolean;
|
||||
open?: boolean;
|
||||
|
||||
@@ -32,8 +32,9 @@ import {
|
||||
} from './state';
|
||||
import { allowedSplitViewEntityTypes } from './types';
|
||||
|
||||
export interface SplitViewPanelProps
|
||||
extends PropsWithChildren<HTMLAttributes<HTMLDivElement>> {
|
||||
export interface SplitViewPanelProps extends PropsWithChildren<
|
||||
HTMLAttributes<HTMLDivElement>
|
||||
> {
|
||||
view: View;
|
||||
index: number;
|
||||
resizeHandle?: React.ReactNode;
|
||||
|
||||
Reference in New Issue
Block a user