|
@@ -33,7 +33,7 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { getFileUrl, getUrlType, MetaType } from "@/utils";
|
|
import { getFileUrl, getUrlType, MetaType } from "@/utils";
|
|
-import { computed, ref, watchEffect, nextTick } from "vue";
|
|
|
|
|
|
+import { computed, ref, watchEffect, nextTick, watch } from "vue";
|
|
import { getResource, showTaggingPositionsStack } from "@/env";
|
|
import { getResource, showTaggingPositionsStack } from "@/env";
|
|
import { getTaggingPosNode, sdk } from "@/sdk";
|
|
import { getTaggingPosNode, sdk } from "@/sdk";
|
|
import {
|
|
import {
|
|
@@ -86,19 +86,22 @@ const actions = {
|
|
delete: () => emit("delete"),
|
|
delete: () => emit("delete"),
|
|
};
|
|
};
|
|
|
|
|
|
-watchEffect((onCleanup) => {
|
|
|
|
- if (props.selected) {
|
|
|
|
- const success = () => emit("select", false);
|
|
|
|
- const stop = flyTagging(props.tagging, success);
|
|
|
|
- const keyupHandler = (ev: KeyboardEvent) => ev.code === "Escape" && success();
|
|
|
|
|
|
+watch(
|
|
|
|
+ () => props.selected,
|
|
|
|
+ (selected, _a, onCleanup) => {
|
|
|
|
+ if (selected) {
|
|
|
|
+ const success = () => emit("select", false);
|
|
|
|
+ const stop = flyTagging(props.tagging, success);
|
|
|
|
+ const keyupHandler = (ev: KeyboardEvent) => ev.code === "Escape" && success();
|
|
|
|
|
|
- document.documentElement.addEventListener("keyup", keyupHandler, false);
|
|
|
|
- onCleanup(() => {
|
|
|
|
- stop();
|
|
|
|
- document.documentElement.removeEventListener("keyup", keyupHandler, false);
|
|
|
|
- });
|
|
|
|
|
|
+ document.documentElement.addEventListener("keyup", keyupHandler, false);
|
|
|
|
+ onCleanup(() => {
|
|
|
|
+ stop();
|
|
|
|
+ document.documentElement.removeEventListener("keyup", keyupHandler, false);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-});
|
|
|
|
|
|
+);
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped src="./style.scss"></style>
|
|
<style lang="scss" scoped src="./style.scss"></style>
|