mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-25 22:38:56 +08:00
feat: bump more deps (#14079)
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
"@radix-ui/react-scroll-area": "^1.2.2",
|
||||
"@radix-ui/react-slot": "^1.1.1",
|
||||
"@radix-ui/react-toolbar": "^1.1.1",
|
||||
"@sentry/react": "^9.2.0",
|
||||
"@sentry/react": "^9.47.1",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"@toeverything/pdf-viewer": "^0.1.1",
|
||||
"@toeverything/theme": "^1.1.16",
|
||||
@@ -57,43 +57,43 @@
|
||||
"eventemitter2": "^6.4.9",
|
||||
"file-type": "^21.0.0",
|
||||
"filesize": "^10.1.6",
|
||||
"foxact": "^0.2.43",
|
||||
"foxact": "^0.2.49",
|
||||
"fuse.js": "^7.0.0",
|
||||
"graphemer": "^1.4.0",
|
||||
"graphql": "^16.9.0",
|
||||
"history": "^5.3.0",
|
||||
"ical.js": "^2.1.0",
|
||||
"idb": "^8.0.0",
|
||||
"idb-keyval": "^6.2.1",
|
||||
"idb-keyval": "^6.2.2",
|
||||
"image-blob-reduce": "^4.1.0",
|
||||
"is-svg": "^6.0.0",
|
||||
"is-svg": "^6.1.0",
|
||||
"jotai": "^2.10.3",
|
||||
"jotai-scope": "^0.7.2",
|
||||
"katex": "^0.16.11",
|
||||
"lib0": "^0.2.99",
|
||||
"katex": "^0.16.27",
|
||||
"lib0": "^0.2.114",
|
||||
"lit": "^3.2.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lottie-react": "^2.4.0",
|
||||
"mermaid": "^11.1.0",
|
||||
"mp4-muxer": "^5.2.1",
|
||||
"nanoid": "^5.0.9",
|
||||
"mermaid": "^11.12.2",
|
||||
"mp4-muxer": "^5.2.2",
|
||||
"nanoid": "^5.1.6",
|
||||
"next-themes": "^0.4.4",
|
||||
"query-string": "^9.1.1",
|
||||
"react": "19.1.0",
|
||||
"react-dom": "19.1.0",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"react-error-boundary": "^6.0.0",
|
||||
"react-router-dom": "^6.28.0",
|
||||
"react-router-dom": "^6.30.2",
|
||||
"react-transition-state": "^2.2.0",
|
||||
"react-virtuoso": "^4.12.3",
|
||||
"rxjs": "^7.8.1",
|
||||
"semver": "^7.7.2",
|
||||
"ses": "^1.10.0",
|
||||
"shiki": "^3.7.0",
|
||||
"rxjs": "^7.8.2",
|
||||
"semver": "^7.7.3",
|
||||
"ses": "^1.14.0",
|
||||
"shiki": "^3.19.0",
|
||||
"socket.io-client": "^4.8.1",
|
||||
"swr": "2.3.3",
|
||||
"swr": "^2.3.7",
|
||||
"tinykeys": "patch:tinykeys@npm%3A2.1.0#~/.yarn/patches/tinykeys-npm-2.1.0-819feeaed0.patch",
|
||||
"y-protocols": "^1.0.6",
|
||||
"yjs": "^13.6.21",
|
||||
"yjs": "^13.6.27",
|
||||
"zod": "^3.25.76"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -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';
|
||||
|
||||
+1
-2
@@ -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;
|
||||
}
|
||||
|
||||
+1
-2
@@ -34,8 +34,7 @@ export const IntegrationSettingHeader = ({
|
||||
};
|
||||
|
||||
// universal
|
||||
export interface IntegrationSettingItemProps
|
||||
extends HTMLAttributes<HTMLDivElement> {
|
||||
export interface IntegrationSettingItemProps extends HTMLAttributes<HTMLDivElement> {
|
||||
name?: ReactNode;
|
||||
desc?: ReactNode;
|
||||
}
|
||||
|
||||
+5
-4
@@ -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 = ({
|
||||
|
||||
+1
-2
@@ -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;
|
||||
|
||||
+1
-2
@@ -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;
|
||||
|
||||
+4
-2
@@ -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