Files
AFFiNE-Mirror/blocksuite/affine/shared/src/services/virtual-keyboard-service.ts
T
L-Sun e1cb8198f1 fix(editor): android bs keyboard provider error (#11647)
### What Changes
- fixed keyboard service can not be initialized since a anonymous `BSKeyboardWithActionService` class was provider to di
- fixed tool panel was not closed when focus on other pragraph by clicking
- optimized code structure of fallback `show` and `hide` of keyboard
2025-04-13 09:59:24 +00:00

24 lines
728 B
TypeScript

import { createIdentifier } from '@blocksuite/global/di';
import type { ReadonlySignal } from '@preact/signals-core';
export interface VirtualKeyboardProvider {
readonly visible$: ReadonlySignal<boolean>;
readonly height$: ReadonlySignal<number>;
}
export interface VirtualKeyboardProviderWithAction
extends VirtualKeyboardProvider {
show: () => void;
hide: () => void;
}
export const VirtualKeyboardProvider = createIdentifier<
VirtualKeyboardProvider | VirtualKeyboardProviderWithAction
>('VirtualKeyboardProvider');
export function isVirtualKeyboardProviderWithAction(
provider: VirtualKeyboardProvider
): provider is VirtualKeyboardProviderWithAction {
return 'show' in provider && 'hide' in provider;
}