@@ -180,6 +180,8 @@ function onMouseenter() {
let lastClickTime: number | null = null;
function onMousedown(ev: MouseEvent | TouchEvent) {
+ if (props.disabled) return; // Prevent interaction if disabled
+
ev.preventDefault();
tooltipForDragShowing.value = true;
@@ -292,6 +294,11 @@ function onMousedown(ev: MouseEvent | TouchEvent) {
border: solid 1px var(--MI_THEME-panel);
border-radius: 6px;
+ &.disabled {
+ pointer-events: none;
+ opacity: 0.6;
+ }
+
> .container {
flex: 1;
position: relative;
diff --git a/packages/frontend/src/components/MkReactionIcon.vue b/packages/frontend/src/components/MkReactionIcon.vue
index 36d1103549..7d62456e03 100644
--- a/packages/frontend/src/components/MkReactionIcon.vue
+++ b/packages/frontend/src/components/MkReactionIcon.vue
@@ -24,6 +24,7 @@ const elRef = useTemplateRef('elRef');
if (props.withTooltip) {
useTooltip(elRef, (showing) => {
+ if (elRef.value == null) return;
const { dispose } = os.popup(defineAsyncComponent(() => import('@/components/MkReactionTooltip.vue')), {
showing,
reaction: props.reaction.replace(/^:(\w+):$/, ':$1@.:'),
diff --git a/packages/frontend/src/components/MkRolePreview.vue b/packages/frontend/src/components/MkRolePreview.vue
index 3f14c5b5e0..15149b3f0c 100644
--- a/packages/frontend/src/components/MkRolePreview.vue
+++ b/packages/frontend/src/components/MkRolePreview.vue
@@ -41,7 +41,7 @@ import { i18n } from '@/i18n.js';
const props = withDefaults(defineProps<{
role: Misskey.entities.Role;
forModeration: boolean;
- detailed: boolean;
+ detailed?: boolean;
}>(), {
detailed: true,
});
diff --git a/packages/frontend/src/components/MkSelect.vue b/packages/frontend/src/components/MkSelect.vue
index 58a4edfddf..485d163ac4 100644
--- a/packages/frontend/src/components/MkSelect.vue
+++ b/packages/frontend/src/components/MkSelect.vue
@@ -174,7 +174,7 @@ watch([modelValue, () => props.items], () => {
}, { immediate: true, deep: true });
function show() {
- if (opening.value) return;
+ if (opening.value || props.disabled || props.readonly) return;
focus();
opening.value = true;
diff --git a/packages/frontend/src/components/MkSignupDialog.form.vue b/packages/frontend/src/components/MkSignupDialog.form.vue
index aebec7a8f6..0f8713d4af 100644
--- a/packages/frontend/src/components/MkSignupDialog.form.vue
+++ b/packages/frontend/src/components/MkSignupDialog.form.vue
@@ -10,7 +10,7 @@ SPDX-License-Identifier: AGPL-3.0-only