refactor
This commit is contained in:
parent
1c34a03b7a
commit
bc55af9165
|
@ -20,10 +20,12 @@ export const vAppear = {
|
|||
|
||||
observer.observe(src);
|
||||
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
src._observer_ = observer;
|
||||
},
|
||||
|
||||
async unmounted(src) {
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
src._observer_?.disconnect();
|
||||
},
|
||||
} satisfies VAppear as VAppear;
|
||||
|
|
|
@ -15,6 +15,8 @@ type VGetSize = ObjectDirective<HTMLElement, ((w: number, h: number) => unknown)
|
|||
|
||||
export const vGetSize = {
|
||||
async mounted(src, binding) {
|
||||
if (!binding.value) return;
|
||||
|
||||
const resize = new ResizeObserver(() => {
|
||||
calc(src);
|
||||
});
|
||||
|
@ -25,6 +27,7 @@ export const vGetSize = {
|
|||
},
|
||||
|
||||
async unmounted(src, binding) {
|
||||
if (!binding.value) return;
|
||||
binding.value(0, 0);
|
||||
const info = mountings.get(src);
|
||||
if (!info) return;
|
||||
|
|
|
@ -16,21 +16,29 @@ export const vHotkey = {
|
|||
import('@/scripts/hotkey.js'),
|
||||
]);
|
||||
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
src._hotkey_global = binding.modifiers.global === true;
|
||||
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
src._keyHandler = makeHotkey(binding.value);
|
||||
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
if (src._hotkey_global) {
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
document.addEventListener('keydown', src._keyHandler, { passive: false });
|
||||
} else {
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
src.addEventListener('keydown', src._keyHandler, { passive: false });
|
||||
}
|
||||
},
|
||||
|
||||
async unmounted(src) {
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
if (src._hotkey_global) {
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
document.removeEventListener('keydown', src._keyHandler);
|
||||
} else {
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
src.removeEventListener('keydown', src._keyHandler);
|
||||
}
|
||||
},
|
||||
|
|
|
@ -25,7 +25,8 @@ export const vTooltip = {
|
|||
|
||||
const delay = binding.modifiers.noDelay ? 0 : 100;
|
||||
|
||||
const self = (src as any)._tooltipDirective_ = {} as any;
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
const self = src._tooltipDirective_ = {} as any;
|
||||
|
||||
self.text = binding.value as string;
|
||||
self._close = null;
|
||||
|
@ -47,7 +48,7 @@ export const vTooltip = {
|
|||
ev.stopPropagation();
|
||||
alert({
|
||||
type: 'info',
|
||||
text: binding.value,
|
||||
text: binding.value ?? '',
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
@ -105,12 +106,14 @@ export const vTooltip = {
|
|||
},
|
||||
|
||||
async updated(src, binding) {
|
||||
const self = (src as any)._tooltipDirective_;
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
const self = src._tooltipDirective_;
|
||||
self.text = binding.value as string;
|
||||
},
|
||||
|
||||
async unmounted(src) {
|
||||
const self = (src as any)._tooltipDirective_;
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
const self = src._tooltipDirective_;
|
||||
window.clearInterval(self.checkTimer);
|
||||
},
|
||||
} satisfies VTooltip as VTooltip;
|
||||
|
|
|
@ -22,6 +22,7 @@ export const vUserPreview = {
|
|||
async unmounted(src, binding) {
|
||||
if (binding.value == null) return;
|
||||
|
||||
//@ts-expect-error HTMLElementにプロパティを追加している
|
||||
const self = src._userPreviewDirective_;
|
||||
self.preview.detach();
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue