mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-18 02:26:21 +08:00
388641bc89
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Unified internal data access by replacing all references from `doc` to `store` across all components, blocks, widgets, and utilities. This affects how readonly state, block operations, and service retrieval are handled throughout the application. - **Tests** - Updated all test utilities and test cases to use `store` instead of `doc` for document-related operations. - **Chores** - Updated context providers and property names to reflect the change from `doc` to `store` for improved consistency and maintainability. No user-facing features or behaviors have changed. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import type { BlockComponent, EditorHost } from '@blocksuite/std';
|
|
import { html } from 'lit';
|
|
|
|
import { htmlToElement } from './html-to-element.js';
|
|
|
|
export const createToastContainer = (editorHost: EditorHost) => {
|
|
const styles = `
|
|
position: fixed;
|
|
z-index: 9999;
|
|
top: 16px;
|
|
left: 16px;
|
|
right: 16px;
|
|
bottom: 78px;
|
|
pointer-events: none;
|
|
display: flex;
|
|
flex-direction: column-reverse;
|
|
align-items: center;
|
|
`;
|
|
const template = html`<div class="toast-container" style="${styles}"></div>`;
|
|
const element = htmlToElement<HTMLDivElement>(template);
|
|
const { std, store } = editorHost;
|
|
|
|
let container = document.body;
|
|
if (store.root) {
|
|
const rootComponent = std.view.getBlock(store.root.id) as BlockComponent & {
|
|
viewportElement: HTMLElement;
|
|
};
|
|
if (rootComponent) {
|
|
const viewportElement = rootComponent.viewportElement;
|
|
const editorContainer = viewportElement.parentElement;
|
|
if (editorContainer) {
|
|
container = editorContainer;
|
|
}
|
|
}
|
|
}
|
|
container.append(element);
|
|
|
|
return element;
|
|
};
|