Files
AFFiNE-Mirror/packages/component/src/components/image-preview-modal/index.jotai.ts
2023-07-29 02:53:29 +00:00

23 lines
666 B
TypeScript

import { atom } from 'jotai';
export const previewBlockIdAtom = atom<string | null>(null);
export const hasAnimationPlayedAtom = atom<boolean | null>(true);
previewBlockIdAtom.onMount = set => {
const callback = (event: MouseEvent) => {
const target = event.target;
if (target instanceof HTMLImageElement) {
const imageBlock = target.closest('affine-image');
if (imageBlock) {
const blockId = imageBlock.getAttribute('data-block-id');
if (!blockId) return;
set(blockId);
}
}
};
window.addEventListener('dblclick', callback);
return () => {
window.removeEventListener('dblclick', callback);
};
};