fix(editor): mid button drag in presentation mode (#12309)

Fixes https://linear.app/affine-design/issue/BS-3448

Before this PR, presentation mode would force quit if user either:

1. Press space
2. Drag with mouse middle button

Unfixed behavior:

https://github.com/user-attachments/assets/8ff4e13a-69a8-4de6-8994-bf36e6e3eb49

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Bug Fixes**
	- Improved presentation mode to preserve your current panned view when exiting pan mode or toggling fullscreen, preventing unwanted viewport resets.
	- Spacebar actions are now correctly disabled when using the frame navigator tool, avoiding accidental tool switches.
- **New Features**
	- Enhanced presentation controls for smoother transitions and better handling of user navigation states.
	- Added a one-time toast notification for presentations without frames, shown only once per session for better user guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
doodlewind
2025-05-15 11:12:40 +00:00
parent 147fa9a6b1
commit b6e9c41ee3
5 changed files with 134 additions and 34 deletions

View File

@@ -41,6 +41,7 @@ const LocalPropsSchema = z.object({
presentBlackBackground: z.boolean(),
presentFillScreen: z.boolean(),
presentHideToolbar: z.boolean(),
presentNoFrameToastShown: z.boolean(),
autoHideEmbedHTMLFullScreenToolbar: z.boolean(),
});
@@ -126,6 +127,8 @@ export class EditPropsStore extends LifeCycleWatcher {
return 'blocksuite:presentation:fillScreen';
case 'presentHideToolbar':
return 'blocksuite:presentation:hideToolbar';
case 'presentNoFrameToastShown':
return 'blocksuite:presentation:noFrameToastShown';
case 'templateCache':
return 'blocksuite:' + id + ':templateTool';
case 'remoteColor':