From a8abb03d1785791ab40e57ab49c87640914532c9 Mon Sep 17 00:00:00 2001 From: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sun, 6 Jul 2025 19:36:11 +0900 Subject: refactor(frontend): Formまわりの型強化 (#16260) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor(frontend): Formまわりの型強化 * fix * avoid non-null assertion and add null check for safety * refactor * avoid non-null assertion and add null check for safety * Update clip.vue --------- Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com> --- packages/frontend/src/widgets/WidgetUnixClock.vue | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'packages/frontend/src/widgets/WidgetUnixClock.vue') diff --git a/packages/frontend/src/widgets/WidgetUnixClock.vue b/packages/frontend/src/widgets/WidgetUnixClock.vue index f51ef12a2a..226a4c73aa 100644 --- a/packages/frontend/src/widgets/WidgetUnixClock.vue +++ b/packages/frontend/src/widgets/WidgetUnixClock.vue @@ -19,29 +19,29 @@ SPDX-License-Identifier: AGPL-3.0-only import { onUnmounted, ref, watch } from 'vue'; import { useWidgetPropsManager } from './widget.js'; import type { WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget.js'; -import type { GetFormResultType } from '@/utility/form.js'; +import type { FormWithDefault, GetFormResultType } from '@/utility/form.js'; const name = 'unixClock'; const widgetPropsDef = { transparent: { - type: 'boolean' as const, + type: 'boolean', default: false, }, fontSize: { - type: 'number' as const, + type: 'number', default: 1.5, step: 0.1, }, showMs: { - type: 'boolean' as const, + type: 'boolean', default: true, }, showLabel: { - type: 'boolean' as const, + type: 'boolean', default: true, }, -}; +} satisfies FormWithDefault; type WidgetProps = GetFormResultType; @@ -54,7 +54,7 @@ const { widgetProps, configure } = useWidgetPropsManager(name, emit, ); -let intervalId; +let intervalId: number | null = null; const ss = ref(''); const ms = ref(''); const showColon = ref(false); @@ -84,7 +84,10 @@ watch(() => widgetProps.showMs, () => { }, { immediate: true }); onUnmounted(() => { - window.clearInterval(intervalId); + if (intervalId) { + window.clearInterval(intervalId); + intervalId = null; + } }); defineExpose({ -- cgit v1.2.3-freya