mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-23 16:23:08 +02:00
perf(client): use shallowRef for html element ref
This commit is contained in:
parent
a0af80f8c5
commit
2184240ef1
59 changed files with 114 additions and 115 deletions
|
@ -16,7 +16,7 @@
|
||||||
</li>
|
</li>
|
||||||
</ol>
|
</ol>
|
||||||
<ol v-else-if="emojis.length > 0" ref="suggests" class="emojis">
|
<ol v-else-if="emojis.length > 0" ref="suggests" class="emojis">
|
||||||
<li v-for="emoji in emojis" tabindex="-1" :key="emoji.emoji" @click="complete(type, emoji.emoji)" @keydown="onKeydown">
|
<li v-for="emoji in emojis" :key="emoji.emoji" tabindex="-1" @click="complete(type, emoji.emoji)" @keydown="onKeydown">
|
||||||
<div class="emoji">
|
<div class="emoji">
|
||||||
<MkEmoji :emoji="emoji.emoji"/>
|
<MkEmoji :emoji="emoji.emoji"/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -35,7 +35,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { markRaw, ref, onUpdated, onMounted, onBeforeUnmount, nextTick, watch } from 'vue';
|
import { markRaw, ref, shallowRef, onUpdated, onMounted, onBeforeUnmount, nextTick, watch } from 'vue';
|
||||||
|
import sanitizeHtml from 'sanitize-html';
|
||||||
import contains from '@/scripts/contains';
|
import contains from '@/scripts/contains';
|
||||||
import { char2twemojiFilePath, char2fluentEmojiFilePath } from '@/scripts/emoji-base';
|
import { char2twemojiFilePath, char2fluentEmojiFilePath } from '@/scripts/emoji-base';
|
||||||
import { acct } from '@/filters/user';
|
import { acct } from '@/filters/user';
|
||||||
|
@ -45,7 +46,6 @@ import { defaultStore } from '@/store';
|
||||||
import { emojilist } from '@/scripts/emojilist';
|
import { emojilist } from '@/scripts/emojilist';
|
||||||
import { instance } from '@/instance';
|
import { instance } from '@/instance';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
import sanitizeHtml from 'sanitize-html';
|
|
||||||
|
|
||||||
type EmojiDef = {
|
type EmojiDef = {
|
||||||
emoji: string;
|
emoji: string;
|
||||||
|
@ -136,7 +136,7 @@ const emit = defineEmits<{
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const suggests = ref<Element>();
|
const suggests = ref<Element>();
|
||||||
const rootEl = ref<HTMLDivElement>();
|
const rootEl = shallowRef<HTMLDivElement>();
|
||||||
|
|
||||||
const fetching = ref(true);
|
const fetching = ref(true);
|
||||||
const users = ref<any[]>([]);
|
const users = ref<any[]>([]);
|
||||||
|
|
|
@ -47,8 +47,8 @@ const emit = defineEmits<{
|
||||||
(ev: 'click', payload: MouseEvent): void;
|
(ev: 'click', payload: MouseEvent): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let el = $ref<HTMLElement | null>(null);
|
let el = $shallowRef<HTMLElement | null>(null);
|
||||||
let ripples = $ref<HTMLElement | null>(null);
|
let ripples = $shallowRef<HTMLElement | null>(null);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (props.autofocus) {
|
if (props.autofocus) {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, computed, onMounted, onBeforeUnmount, watch } from 'vue';
|
import { ref, shallowRef, computed, onMounted, onBeforeUnmount, watch } from 'vue';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ const emit = defineEmits<{
|
||||||
|
|
||||||
const available = ref(false);
|
const available = ref(false);
|
||||||
|
|
||||||
const captchaEl = ref<HTMLDivElement | undefined>();
|
const captchaEl = shallowRef<HTMLDivElement | undefined>();
|
||||||
|
|
||||||
const variable = computed(() => {
|
const variable = computed(() => {
|
||||||
switch (props.provider) {
|
switch (props.provider) {
|
||||||
|
@ -62,7 +62,7 @@ const src = computed(() => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const scriptId = computed(() => `script-${props.provider}`)
|
const scriptId = computed(() => `script-${props.provider}`);
|
||||||
|
|
||||||
const captcha = computed<Captcha>(() => window[variable.value] || {} as unknown as Captcha);
|
const captcha = computed<Captcha>(() => window[variable.value] || {} as unknown as Captcha);
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
id-denylist violation when setting it. This is causing about 60+ lint issues.
|
id-denylist violation when setting it. This is causing about 60+ lint issues.
|
||||||
As this is part of Chart.js's API it makes sense to disable the check here.
|
As this is part of Chart.js's API it makes sense to disable the check here.
|
||||||
*/
|
*/
|
||||||
import { onMounted, ref, watch, PropType, onUnmounted } from 'vue';
|
import { onMounted, ref, shallowRef, watch, PropType, onUnmounted } from 'vue';
|
||||||
import { Chart } from 'chart.js';
|
import { Chart } from 'chart.js';
|
||||||
import 'chartjs-adapter-date-fns';
|
import 'chartjs-adapter-date-fns';
|
||||||
import { enUS } from 'date-fns/locale';
|
import { enUS } from 'date-fns/locale';
|
||||||
|
@ -102,7 +102,7 @@ let chartData: {
|
||||||
}[];
|
}[];
|
||||||
} = null;
|
} = null;
|
||||||
|
|
||||||
const chartEl = ref<HTMLCanvasElement>(null);
|
const chartEl = shallowRef<HTMLCanvasElement>(null);
|
||||||
const fetching = ref(true);
|
const fetching = ref(true);
|
||||||
|
|
||||||
const getDate = (ago: number) => {
|
const getDate = (ago: number) => {
|
||||||
|
|
|
@ -22,7 +22,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'closed'): void;
|
(ev: 'closed'): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let rootEl = $ref<HTMLDivElement>();
|
let rootEl = $shallowRef<HTMLDivElement>();
|
||||||
|
|
||||||
let zIndex = $ref<number>(os.claimZIndex('high'));
|
let zIndex = $ref<number>(os.claimZIndex('high'));
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ const props = defineProps<{
|
||||||
|
|
||||||
const imgUrl = getProxiedImageUrl(props.file.url);
|
const imgUrl = getProxiedImageUrl(props.file.url);
|
||||||
let dialogEl = $ref<InstanceType<typeof XModalWindow>>();
|
let dialogEl = $ref<InstanceType<typeof XModalWindow>>();
|
||||||
let imgEl = $ref<HTMLImageElement>();
|
let imgEl = $shallowRef<HTMLImageElement>();
|
||||||
let cropper: Cropper | null = null;
|
let cropper: Cropper | null = null;
|
||||||
let loading = $ref(true);
|
let loading = $ref(true);
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { markRaw, nextTick, onActivated, onBeforeUnmount, onMounted, ref, watch } from 'vue';
|
import { markRaw, nextTick, onActivated, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import MkButton from './MkButton.vue';
|
import MkButton from './MkButton.vue';
|
||||||
import XNavFolder from '@/components/MkDrive.navFolder.vue';
|
import XNavFolder from '@/components/MkDrive.navFolder.vue';
|
||||||
|
@ -119,7 +119,7 @@ const emit = defineEmits<{
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const loadMoreFiles = ref<InstanceType<typeof MkButton>>();
|
const loadMoreFiles = ref<InstanceType<typeof MkButton>>();
|
||||||
const fileInput = ref<HTMLInputElement>();
|
const fileInput = shallowRef<HTMLInputElement>();
|
||||||
|
|
||||||
const folder = ref<Misskey.entities.DriveFolder | null>(null);
|
const folder = ref<Misskey.entities.DriveFolder | null>(null);
|
||||||
const files = ref<Misskey.entities.DriveFile[]>([]);
|
const files = ref<Misskey.entities.DriveFile[]>([]);
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, computed, watch, onMounted } from 'vue';
|
import { ref, shallowRef, computed, watch, onMounted } from 'vue';
|
||||||
import * as Misskey from 'misskey-js';
|
import * as Misskey from 'misskey-js';
|
||||||
import XSection from '@/components/MkEmojiPicker.section.vue';
|
import XSection from '@/components/MkEmojiPicker.section.vue';
|
||||||
import { emojilist, UnicodeEmojiDef, unicodeEmojiCategories as categories } from '@/scripts/emojilist';
|
import { emojilist, UnicodeEmojiDef, unicodeEmojiCategories as categories } from '@/scripts/emojilist';
|
||||||
|
@ -102,8 +102,8 @@ const emit = defineEmits<{
|
||||||
(ev: 'chosen', v: string): void;
|
(ev: 'chosen', v: string): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const search = ref<HTMLInputElement>();
|
const search = shallowRef<HTMLInputElement>();
|
||||||
const emojis = ref<HTMLDivElement>();
|
const emojis = shallowRef<HTMLDivElement>();
|
||||||
|
|
||||||
const {
|
const {
|
||||||
reactions: pinned,
|
reactions: pinned,
|
||||||
|
|
|
@ -27,8 +27,8 @@ const props = defineProps<{
|
||||||
src: string;
|
src: string;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const rootEl = $ref<HTMLDivElement>(null);
|
const rootEl = $shallowRef<HTMLDivElement>(null);
|
||||||
const chartEl = $ref<HTMLCanvasElement>(null);
|
const chartEl = $shallowRef<HTMLCanvasElement>(null);
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
let chartInstance: Chart = null;
|
let chartInstance: Chart = null;
|
||||||
let fetching = $ref(true);
|
let fetching = $ref(true);
|
||||||
|
|
|
@ -24,7 +24,7 @@ const props = withDefaults(defineProps<{
|
||||||
cover: true,
|
cover: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const canvas = $ref<HTMLCanvasElement>();
|
const canvas = $shallowRef<HTMLCanvasElement>();
|
||||||
let loaded = $ref(false);
|
let loaded = $ref(false);
|
||||||
|
|
||||||
function draw() {
|
function draw() {
|
||||||
|
|
|
@ -94,8 +94,8 @@ const chartLimit = 500;
|
||||||
let chartSpan = $ref<'hour' | 'day'>('hour');
|
let chartSpan = $ref<'hour' | 'day'>('hour');
|
||||||
let chartSrc = $ref('active-users');
|
let chartSrc = $ref('active-users');
|
||||||
let heatmapSrc = $ref('active-users');
|
let heatmapSrc = $ref('active-users');
|
||||||
let subDoughnutEl = $ref<HTMLCanvasElement>();
|
let subDoughnutEl = $shallowRef<HTMLCanvasElement>();
|
||||||
let pubDoughnutEl = $ref<HTMLCanvasElement>();
|
let pubDoughnutEl = $shallowRef<HTMLCanvasElement>();
|
||||||
|
|
||||||
const { handler: externalTooltipHandler1 } = useChartTooltip({
|
const { handler: externalTooltipHandler1 } = useChartTooltip({
|
||||||
position: 'middle',
|
position: 'middle',
|
||||||
|
|
|
@ -38,7 +38,7 @@ const props = withDefaults(defineProps<{
|
||||||
}>(), {
|
}>(), {
|
||||||
});
|
});
|
||||||
|
|
||||||
const audioEl = $ref<HTMLAudioElement | null>();
|
const audioEl = $shallowRef<HTMLAudioElement | null>();
|
||||||
let hide = $ref(true);
|
let hide = $ref(true);
|
||||||
|
|
||||||
function volumechange() {
|
function volumechange() {
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { on } from 'events';
|
import { on } from 'events';
|
||||||
import { nextTick, onBeforeUnmount, onMounted, onUnmounted, ref, watch } from 'vue';
|
import { nextTick, onBeforeUnmount, onMounted, onUnmounted, ref, shallowRef, watch } from 'vue';
|
||||||
import MkMenu from './MkMenu.vue';
|
import MkMenu from './MkMenu.vue';
|
||||||
import { MenuItem } from '@/types/menu';
|
import { MenuItem } from '@/types/menu';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
@ -24,7 +24,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'actioned'): void;
|
(ev: 'actioned'): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const el = ref<HTMLElement>();
|
const el = shallowRef<HTMLElement>();
|
||||||
const align = 'left';
|
const align = 'left';
|
||||||
|
|
||||||
function setPosition() {
|
function setPosition() {
|
||||||
|
|
|
@ -78,7 +78,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'close', actioned?: boolean): void;
|
(ev: 'close', actioned?: boolean): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let itemsEl = $ref<HTMLDivElement>();
|
let itemsEl = $shallowRef<HTMLDivElement>();
|
||||||
|
|
||||||
let items2: InnerMenuItem[] = $ref([]);
|
let items2: InnerMenuItem[] = $ref([]);
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ watch(() => props.items, () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
let childMenu = $ref<MenuItem[] | null>();
|
let childMenu = $ref<MenuItem[] | null>();
|
||||||
let childTarget = $ref<HTMLElement | null>();
|
let childTarget = $shallowRef<HTMLElement | null>();
|
||||||
|
|
||||||
function closeChild() {
|
function closeChild() {
|
||||||
childMenu = null;
|
childMenu = null;
|
||||||
|
|
|
@ -61,7 +61,7 @@ let maxHeight = $ref<number>();
|
||||||
let fixed = $ref(false);
|
let fixed = $ref(false);
|
||||||
let transformOrigin = $ref('center');
|
let transformOrigin = $ref('center');
|
||||||
let showing = $ref(true);
|
let showing = $ref(true);
|
||||||
let content = $ref<HTMLElement>();
|
let content = $shallowRef<HTMLElement>();
|
||||||
const zIndex = os.claimZIndex(props.zPriority);
|
const zIndex = os.claimZIndex(props.zPriority);
|
||||||
const type = $computed<ModalTypes>(() => {
|
const type = $computed<ModalTypes>(() => {
|
||||||
if (props.preferType === 'auto') {
|
if (props.preferType === 'auto') {
|
||||||
|
|
|
@ -42,8 +42,8 @@ const emit = defineEmits<{
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let modal = $ref<InstanceType<typeof MkModal>>();
|
let modal = $ref<InstanceType<typeof MkModal>>();
|
||||||
let rootEl = $ref<HTMLElement>();
|
let rootEl = $shallowRef<HTMLElement>();
|
||||||
let headerEl = $ref<HTMLElement>();
|
let headerEl = $shallowRef<HTMLElement>();
|
||||||
let bodyWidth = $ref(0);
|
let bodyWidth = $ref(0);
|
||||||
let bodyHeight = $ref(0);
|
let bodyHeight = $ref(0);
|
||||||
|
|
||||||
|
|
|
@ -101,7 +101,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, inject, onMounted, onUnmounted, reactive, ref, Ref } from 'vue';
|
import { computed, inject, onMounted, onUnmounted, reactive, ref, shallowRef, Ref } from 'vue';
|
||||||
import * as mfm from 'mfm-js';
|
import * as mfm from 'mfm-js';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import MkNoteSub from '@/components/MkNoteSub.vue';
|
import MkNoteSub from '@/components/MkNoteSub.vue';
|
||||||
|
@ -156,11 +156,11 @@ const isRenote = (
|
||||||
note.poll == null
|
note.poll == null
|
||||||
);
|
);
|
||||||
|
|
||||||
const el = ref<HTMLElement>();
|
const el = shallowRef<HTMLElement>();
|
||||||
const menuButton = ref<HTMLElement>();
|
const menuButton = shallowRef<HTMLElement>();
|
||||||
const renoteButton = ref<InstanceType<typeof MkRenoteButton>>();
|
const renoteButton = ref<InstanceType<typeof MkRenoteButton>>();
|
||||||
const renoteTime = ref<HTMLElement>();
|
const renoteTime = shallowRef<HTMLElement>();
|
||||||
const reactButton = ref<HTMLElement>();
|
const reactButton = shallowRef<HTMLElement>();
|
||||||
let appearNote = $computed(() => isRenote ? note.renote as misskey.entities.Note : note);
|
let appearNote = $computed(() => isRenote ? note.renote as misskey.entities.Note : note);
|
||||||
const isMyRenote = $i && ($i.id === note.userId);
|
const isMyRenote = $i && ($i.id === note.userId);
|
||||||
const showContent = ref(false);
|
const showContent = ref(false);
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, inject, onMounted, onUnmounted, reactive, ref } from 'vue';
|
import { computed, inject, onMounted, onUnmounted, reactive, ref, shallowRef } from 'vue';
|
||||||
import * as mfm from 'mfm-js';
|
import * as mfm from 'mfm-js';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import MkNoteSub from '@/components/MkNoteSub.vue';
|
import MkNoteSub from '@/components/MkNoteSub.vue';
|
||||||
|
@ -166,11 +166,11 @@ const isRenote = (
|
||||||
note.poll == null
|
note.poll == null
|
||||||
);
|
);
|
||||||
|
|
||||||
const el = ref<HTMLElement>();
|
const el = shallowRef<HTMLElement>();
|
||||||
const menuButton = ref<HTMLElement>();
|
const menuButton = shallowRef<HTMLElement>();
|
||||||
const renoteButton = ref<InstanceType<typeof MkRenoteButton>>();
|
const renoteButton = ref<InstanceType<typeof MkRenoteButton>>();
|
||||||
const renoteTime = ref<HTMLElement>();
|
const renoteTime = shallowRef<HTMLElement>();
|
||||||
const reactButton = ref<HTMLElement>();
|
const reactButton = shallowRef<HTMLElement>();
|
||||||
let appearNote = $computed(() => isRenote ? note.renote as misskey.entities.Note : note);
|
let appearNote = $computed(() => isRenote ? note.renote as misskey.entities.Note : note);
|
||||||
const isMyRenote = $i && ($i.id === note.userId);
|
const isMyRenote = $i && ($i.id === note.userId);
|
||||||
const showContent = ref(false);
|
const showContent = ref(false);
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, onMounted, onUnmounted, watch } from 'vue';
|
import { ref, shallowRef, onMounted, onUnmounted, watch } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import XReactionIcon from '@/components/MkReactionIcon.vue';
|
import XReactionIcon from '@/components/MkReactionIcon.vue';
|
||||||
import MkFollowButton from '@/components/MkFollowButton.vue';
|
import MkFollowButton from '@/components/MkFollowButton.vue';
|
||||||
|
@ -95,7 +95,7 @@ const props = withDefaults(defineProps<{
|
||||||
full: false,
|
full: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const elRef = ref<HTMLElement>(null);
|
const elRef = shallowRef<HTMLElement>(null);
|
||||||
const reactionRef = ref(null);
|
const reactionRef = ref(null);
|
||||||
|
|
||||||
let readObserver: IntersectionObserver | undefined;
|
let readObserver: IntersectionObserver | undefined;
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, ComputedRef, isRef, markRaw, onActivated, onDeactivated, Ref, ref, watch } from 'vue';
|
import { computed, ComputedRef, isRef, markRaw, onActivated, onDeactivated, Ref, ref, shallowRef, watch } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { onScrollTop, isTopVisible, getScrollPosition, getScrollContainer } from '@/scripts/scroll';
|
import { onScrollTop, isTopVisible, getScrollPosition, getScrollContainer } from '@/scripts/scroll';
|
||||||
|
@ -74,7 +74,7 @@ const emit = defineEmits<{
|
||||||
|
|
||||||
type Item = { id: string; [another: string]: unknown; };
|
type Item = { id: string; [another: string]: unknown; };
|
||||||
|
|
||||||
const rootEl = ref<HTMLElement>();
|
const rootEl = shallowRef<HTMLElement>();
|
||||||
const items = ref<Item[]>([]);
|
const items = ref<Item[]>([]);
|
||||||
const queue = ref<Item[]>([]);
|
const queue = ref<Item[]>([]);
|
||||||
const offset = ref(0);
|
const offset = ref(0);
|
||||||
|
|
|
@ -128,10 +128,10 @@ const emit = defineEmits<{
|
||||||
(ev: 'esc'): void;
|
(ev: 'esc'): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const textareaEl = $ref<HTMLTextAreaElement | null>(null);
|
const textareaEl = $shallowRef<HTMLTextAreaElement | null>(null);
|
||||||
const cwInputEl = $ref<HTMLInputElement | null>(null);
|
const cwInputEl = $shallowRef<HTMLInputElement | null>(null);
|
||||||
const hashtagsInputEl = $ref<HTMLInputElement | null>(null);
|
const hashtagsInputEl = $shallowRef<HTMLInputElement | null>(null);
|
||||||
const visibilityButton = $ref<HTMLElement | null>(null);
|
const visibilityButton = $shallowRef<HTMLElement | null>(null);
|
||||||
|
|
||||||
let posting = $ref(false);
|
let posting = $ref(false);
|
||||||
let posted = $ref(false);
|
let posted = $ref(false);
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, onMounted, ref, watch } from 'vue';
|
import { computed, onMounted, ref, shallowRef, watch } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import XDetails from '@/components/MkReactionsViewer.details.vue';
|
import XDetails from '@/components/MkReactionsViewer.details.vue';
|
||||||
import XReactionIcon from '@/components/MkReactionIcon.vue';
|
import XReactionIcon from '@/components/MkReactionIcon.vue';
|
||||||
|
@ -28,7 +28,7 @@ const props = defineProps<{
|
||||||
note: misskey.entities.Note;
|
note: misskey.entities.Note;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const buttonRef = ref<HTMLElement>();
|
const buttonRef = shallowRef<HTMLElement>();
|
||||||
|
|
||||||
const canToggle = computed(() => !props.reaction.match(/@\w/) && $i);
|
const canToggle = computed(() => !props.reaction.match(/@\w/) && $i);
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, ref } from 'vue';
|
import { computed, ref, shallowRef } from 'vue';
|
||||||
import * as misskey from 'misskey-js';
|
import * as misskey from 'misskey-js';
|
||||||
import XDetails from '@/components/MkUsersTooltip.vue';
|
import XDetails from '@/components/MkUsersTooltip.vue';
|
||||||
import { pleaseLogin } from '@/scripts/please-login';
|
import { pleaseLogin } from '@/scripts/please-login';
|
||||||
|
@ -28,7 +28,7 @@ const props = defineProps<{
|
||||||
count: number;
|
count: number;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const buttonRef = ref<HTMLElement>();
|
const buttonRef = shallowRef<HTMLElement>();
|
||||||
|
|
||||||
const canRenote = computed(() => ['public', 'home'].includes(props.note.visibility) || props.note.userId === $i.id);
|
const canRenote = computed(() => ['public', 'home'].includes(props.note.visibility) || props.note.userId === $i.id);
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,8 @@ import { initChart } from '@/scripts/init-chart';
|
||||||
|
|
||||||
initChart();
|
initChart();
|
||||||
|
|
||||||
const rootEl = $ref<HTMLDivElement>(null);
|
const rootEl = $shallowRef<HTMLDivElement>(null);
|
||||||
const chartEl = $ref<HTMLCanvasElement>(null);
|
const chartEl = $shallowRef<HTMLCanvasElement>(null);
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
let chartInstance: Chart = null;
|
let chartInstance: Chart = null;
|
||||||
let fetching = $ref(true);
|
let fetching = $ref(true);
|
||||||
|
|
|
@ -64,10 +64,10 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, onUnmounted, ref } from 'vue';
|
import { onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
||||||
|
|
||||||
const particles = ref([]);
|
const particles = ref([]);
|
||||||
const el = ref<HTMLElement>();
|
const el = shallowRef<HTMLElement>();
|
||||||
const width = ref(0);
|
const width = ref(0);
|
||||||
const height = ref(0);
|
const height = ref(0);
|
||||||
const colors = ['#FF1493', '#00FFFF', '#FFE202', '#FFE202', '#FFE202'];
|
const colors = ['#FF1493', '#00FFFF', '#FFE202', '#FFE202', '#FFE202'];
|
||||||
|
|
|
@ -19,9 +19,9 @@ const computedStyle = getComputedStyle(document.documentElement);
|
||||||
const idForCanvas = Array.from(Array(16)).map(() => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
const idForCanvas = Array.from(Array(16)).map(() => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
||||||
const idForTags = Array.from(Array(16)).map(() => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
const idForTags = Array.from(Array(16)).map(() => SAFE_FOR_HTML_ID[Math.floor(Math.random() * SAFE_FOR_HTML_ID.length)]).join('');
|
||||||
let available = $ref(false);
|
let available = $ref(false);
|
||||||
let rootEl = $ref<HTMLElement | null>(null);
|
let rootEl = $shallowRef<HTMLElement | null>(null);
|
||||||
let canvasEl = $ref<HTMLCanvasElement | null>(null);
|
let canvasEl = $shallowRef<HTMLCanvasElement | null>(null);
|
||||||
let tagsEl = $ref<HTMLElement | null>(null);
|
let tagsEl = $shallowRef<HTMLElement | null>(null);
|
||||||
let width = $ref(300);
|
let width = $ref(300);
|
||||||
|
|
||||||
watch($$(available), () => {
|
watch($$(available), () => {
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { nextTick, onMounted, onUnmounted, ref } from 'vue';
|
import { nextTick, onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
import { calcPopupPosition } from '@/scripts/popup-position';
|
import { calcPopupPosition } from '@/scripts/popup-position';
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'closed'): void;
|
(ev: 'closed'): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const el = ref<HTMLElement>();
|
const el = shallowRef<HTMLElement>();
|
||||||
const zIndex = os.claimZIndex('high');
|
const zIndex = os.claimZIndex('high');
|
||||||
|
|
||||||
function setPosition() {
|
function setPosition() {
|
||||||
|
|
|
@ -22,7 +22,7 @@ const props = defineProps<{
|
||||||
},
|
},
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const specified = $ref<HTMLElement>();
|
const specified = $shallowRef<HTMLElement>();
|
||||||
|
|
||||||
if (props.note.visibility === 'specified') {
|
if (props.note.visibility === 'specified') {
|
||||||
useTooltip($$(specified), async (showing) => {
|
useTooltip($$(specified), async (showing) => {
|
||||||
|
|
|
@ -88,7 +88,7 @@ const emit = defineEmits<{
|
||||||
|
|
||||||
provide('inWindow', true);
|
provide('inWindow', true);
|
||||||
|
|
||||||
let rootEl = $ref<HTMLElement | null>();
|
let rootEl = $shallowRef<HTMLElement | null>();
|
||||||
let showing = $ref(true);
|
let showing = $ref(true);
|
||||||
let beforeClickedAt = 0;
|
let beforeClickedAt = 0;
|
||||||
let maximized = $ref(false);
|
let maximized = $ref(false);
|
||||||
|
|
|
@ -35,7 +35,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'update:modelValue', v: boolean): void;
|
(ev: 'update:modelValue', v: boolean): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let button = $ref<HTMLElement>();
|
let button = $shallowRef<HTMLElement>();
|
||||||
const checked = toRefs(props).modelValue;
|
const checked = toRefs(props).modelValue;
|
||||||
const toggle = () => {
|
const toggle = () => {
|
||||||
if (props.disabled) return;
|
if (props.disabled) return;
|
||||||
|
|
|
@ -40,7 +40,7 @@ const props = withDefaults(defineProps<{
|
||||||
|
|
||||||
let opened = $ref(props.defaultOpen);
|
let opened = $ref(props.defaultOpen);
|
||||||
let openedAtLeastOnce = $ref(props.defaultOpen);
|
let openedAtLeastOnce = $ref(props.defaultOpen);
|
||||||
let root = $ref<HTMLElement>();
|
let root = $shallowRef<HTMLElement>();
|
||||||
|
|
||||||
function enter(el) {
|
function enter(el) {
|
||||||
const elementHeight = el.getBoundingClientRect().height;
|
const elementHeight = el.getBoundingClientRect().height;
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, onUnmounted, nextTick, ref, watch, computed, toRefs } from 'vue';
|
import { onMounted, onUnmounted, nextTick, ref, shallowRef, watch, computed, toRefs } from 'vue';
|
||||||
import { debounce } from 'throttle-debounce';
|
import { debounce } from 'throttle-debounce';
|
||||||
import MkButton from '@/components/MkButton.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
import { useInterval } from '@/scripts/use-interval';
|
import { useInterval } from '@/scripts/use-interval';
|
||||||
|
@ -74,9 +74,9 @@ const focused = ref(false);
|
||||||
const changed = ref(false);
|
const changed = ref(false);
|
||||||
const invalid = ref(false);
|
const invalid = ref(false);
|
||||||
const filled = computed(() => v.value !== '' && v.value != null);
|
const filled = computed(() => v.value !== '' && v.value != null);
|
||||||
const inputEl = ref<HTMLElement>();
|
const inputEl = shallowRef<HTMLElement>();
|
||||||
const prefixEl = ref<HTMLElement>();
|
const prefixEl = shallowRef<HTMLElement>();
|
||||||
const suffixEl = ref<HTMLElement>();
|
const suffixEl = shallowRef<HTMLElement>();
|
||||||
const height =
|
const height =
|
||||||
props.small ? 35 :
|
props.small ? 35 :
|
||||||
props.large ? 39 :
|
props.large ? 39 :
|
||||||
|
|
|
@ -34,7 +34,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'update:modelValue', v: boolean): void;
|
(ev: 'update:modelValue', v: boolean): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let button = $ref<HTMLElement>();
|
let button = $shallowRef<HTMLElement>();
|
||||||
const checked = toRefs(props).modelValue;
|
const checked = toRefs(props).modelValue;
|
||||||
const toggle = () => {
|
const toggle = () => {
|
||||||
if (props.disabled) return;
|
if (props.disabled) return;
|
||||||
|
|
|
@ -77,9 +77,9 @@ const metadata = injectPageMetadata();
|
||||||
const hideTitle = inject('shouldOmitHeaderTitle', false);
|
const hideTitle = inject('shouldOmitHeaderTitle', false);
|
||||||
const thin_ = props.thin || inject('shouldHeaderThin', false);
|
const thin_ = props.thin || inject('shouldHeaderThin', false);
|
||||||
|
|
||||||
const el = $ref<HTMLElement | undefined>(undefined);
|
const el = $shallowRef<HTMLElement | undefined>(undefined);
|
||||||
const tabRefs: Record<string, HTMLElement | null> = {};
|
const tabRefs: Record<string, HTMLElement | null> = {};
|
||||||
const tabHighlightEl = $ref<HTMLElement | null>(null);
|
const tabHighlightEl = $shallowRef<HTMLElement | null>(null);
|
||||||
const bg = ref<string | undefined>(undefined);
|
const bg = ref<string | undefined>(undefined);
|
||||||
let narrow = $ref(false);
|
let narrow = $ref(false);
|
||||||
const hasTabs = $computed(() => props.tabs.length > 0);
|
const hasTabs = $computed(() => props.tabs.length > 0);
|
||||||
|
|
|
@ -24,8 +24,8 @@ const props = withDefaults(defineProps<{
|
||||||
});
|
});
|
||||||
|
|
||||||
let ro: ResizeObserver;
|
let ro: ResizeObserver;
|
||||||
let root = $ref<HTMLElement>();
|
let root = $shallowRef<HTMLElement>();
|
||||||
let content = $ref<HTMLElement>();
|
let content = $shallowRef<HTMLElement>();
|
||||||
let margin = $ref(props.marginMin);
|
let margin = $ref(props.marginMin);
|
||||||
const widthHistory = [null, null] as [number | null, number | null];
|
const widthHistory = [null, null] as [number | null, number | null];
|
||||||
const heightHistory = [null, null] as [number | null, number | null];
|
const heightHistory = [null, null] as [number | null, number | null];
|
||||||
|
@ -72,7 +72,6 @@ onMounted(() => {
|
||||||
const pastHeight = heightHistory.pop();
|
const pastHeight = heightHistory.pop();
|
||||||
heightHistory.unshift(height);
|
heightHistory.unshift(height);
|
||||||
|
|
||||||
|
|
||||||
if (pastWidth === width && pastHeight === height) {
|
if (pastWidth === width && pastHeight === height) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ const CURRENT_STICKY_TOP = 'CURRENT_STICKY_TOP';
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, onUnmounted, provide, inject, Ref, ref, watch } from 'vue';
|
import { onMounted, onUnmounted, provide, inject, Ref, ref, watch } from 'vue';
|
||||||
|
|
||||||
const rootEl = $ref<HTMLElement>();
|
const rootEl = $shallowRef<HTMLElement>();
|
||||||
const headerEl = $ref<HTMLElement>();
|
const headerEl = $shallowRef<HTMLElement>();
|
||||||
const bodyEl = $ref<HTMLElement>();
|
const bodyEl = $shallowRef<HTMLElement>();
|
||||||
|
|
||||||
let headerHeight = $ref<string | undefined>();
|
let headerHeight = $ref<string | undefined>();
|
||||||
let childStickyTop = $ref(0);
|
let childStickyTop = $ref(0);
|
||||||
|
|
|
@ -156,7 +156,7 @@ const patrons = [
|
||||||
let easterEggReady = false;
|
let easterEggReady = false;
|
||||||
let easterEggEmojis = $ref([]);
|
let easterEggEmojis = $ref([]);
|
||||||
let easterEggEngine = $ref(null);
|
let easterEggEngine = $ref(null);
|
||||||
const containerEl = $ref<HTMLElement>();
|
const containerEl = $shallowRef<HTMLElement>();
|
||||||
|
|
||||||
function iconLoaded() {
|
function iconLoaded() {
|
||||||
const emojis = defaultStore.state.reactions;
|
const emojis = defaultStore.state.reactions;
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, onMounted, onUnmounted, ref, inject, watch, nextTick } from 'vue';
|
import { computed, onMounted, onUnmounted, ref, shallowRef, inject, watch, nextTick } from 'vue';
|
||||||
import tinycolor from 'tinycolor2';
|
import tinycolor from 'tinycolor2';
|
||||||
import { popupMenu } from '@/os';
|
import { popupMenu } from '@/os';
|
||||||
import { url } from '@/config';
|
import { url } from '@/config';
|
||||||
|
@ -64,9 +64,9 @@ const emit = defineEmits<{
|
||||||
|
|
||||||
const metadata = injectPageMetadata();
|
const metadata = injectPageMetadata();
|
||||||
|
|
||||||
const el = ref<HTMLElement>(null);
|
const el = shallowRef<HTMLElement>(null);
|
||||||
const tabRefs = {};
|
const tabRefs = {};
|
||||||
const tabHighlightEl = $ref<HTMLElement | null>(null);
|
const tabHighlightEl = $shallowRef<HTMLElement | null>(null);
|
||||||
const bg = ref(null);
|
const bg = ref(null);
|
||||||
const height = ref(0);
|
const height = ref(0);
|
||||||
const hasTabs = computed(() => {
|
const hasTabs = computed(() => {
|
||||||
|
|
|
@ -23,7 +23,7 @@ import { initChart } from '@/scripts/init-chart';
|
||||||
|
|
||||||
initChart();
|
initChart();
|
||||||
|
|
||||||
const chartEl = $ref<HTMLCanvasElement>(null);
|
const chartEl = $shallowRef<HTMLCanvasElement>(null);
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
let chartInstance: Chart = null;
|
let chartInstance: Chart = null;
|
||||||
const chartLimit = 7;
|
const chartLimit = 7;
|
||||||
|
|
|
@ -34,8 +34,8 @@ import { initChart } from '@/scripts/init-chart';
|
||||||
initChart();
|
initChart();
|
||||||
|
|
||||||
const chartLimit = 50;
|
const chartLimit = 50;
|
||||||
const chartEl = $ref<HTMLCanvasElement>();
|
const chartEl = $shallowRef<HTMLCanvasElement>();
|
||||||
const chartEl2 = $ref<HTMLCanvasElement>();
|
const chartEl2 = $shallowRef<HTMLCanvasElement>();
|
||||||
let fetching = $ref(true);
|
let fetching = $ref(true);
|
||||||
|
|
||||||
const { handler: externalTooltipHandler } = useChartTooltip();
|
const { handler: externalTooltipHandler } = useChartTooltip();
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, onUnmounted, ref } from 'vue';
|
import { onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
||||||
import { Chart } from 'chart.js';
|
import { Chart } from 'chart.js';
|
||||||
import number from '@/filters/number';
|
import number from '@/filters/number';
|
||||||
import { defaultStore } from '@/store';
|
import { defaultStore } from '@/store';
|
||||||
|
@ -16,7 +16,7 @@ const props = defineProps<{
|
||||||
data: { name: string; value: number; color: string; onClick?: () => void }[];
|
data: { name: string; value: number; color: string; onClick?: () => void }[];
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const chartEl = ref<HTMLCanvasElement>(null);
|
const chartEl = shallowRef<HTMLCanvasElement>(null);
|
||||||
|
|
||||||
const { handler: externalTooltipHandler } = useChartTooltip({
|
const { handler: externalTooltipHandler } = useChartTooltip({
|
||||||
position: 'middle',
|
position: 'middle',
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { watch, onMounted, onUnmounted, ref } from 'vue';
|
import { watch, onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
||||||
import { Chart } from 'chart.js';
|
import { Chart } from 'chart.js';
|
||||||
import number from '@/filters/number';
|
import number from '@/filters/number';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
@ -19,7 +19,7 @@ const props = defineProps<{
|
||||||
type: string;
|
type: string;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const chartEl = ref<HTMLCanvasElement>(null);
|
const chartEl = shallowRef<HTMLCanvasElement>(null);
|
||||||
|
|
||||||
const { handler: externalTooltipHandler } = useChartTooltip();
|
const { handler: externalTooltipHandler } = useChartTooltip();
|
||||||
|
|
||||||
|
|
|
@ -82,7 +82,7 @@ import { defaultStore } from '@/store';
|
||||||
import MkFileListForAdmin from '@/components/MkFileListForAdmin.vue';
|
import MkFileListForAdmin from '@/components/MkFileListForAdmin.vue';
|
||||||
import MkFolder from '@/components/MkFolder.vue';
|
import MkFolder from '@/components/MkFolder.vue';
|
||||||
|
|
||||||
const rootEl = $ref<HTMLElement>();
|
const rootEl = $shallowRef<HTMLElement>();
|
||||||
let serverInfo: any = $ref(null);
|
let serverInfo: any = $ref(null);
|
||||||
let topSubInstancesForPie: any = $ref(null);
|
let topSubInstancesForPie: any = $ref(null);
|
||||||
let topPubInstancesForPie: any = $ref(null);
|
let topPubInstancesForPie: any = $ref(null);
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { watch, onMounted, onUnmounted, ref } from 'vue';
|
import { watch, onMounted, onUnmounted, ref, shallowRef } from 'vue';
|
||||||
import { Chart } from 'chart.js';
|
import { Chart } from 'chart.js';
|
||||||
import number from '@/filters/number';
|
import number from '@/filters/number';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
@ -19,7 +19,7 @@ const props = defineProps<{
|
||||||
type: string;
|
type: string;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const chartEl = ref<HTMLCanvasElement>(null);
|
const chartEl = shallowRef<HTMLCanvasElement>(null);
|
||||||
|
|
||||||
const { handler: externalTooltipHandler } = useChartTooltip();
|
const { handler: externalTooltipHandler } = useChartTooltip();
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ const props = defineProps<{
|
||||||
|
|
||||||
let antenna = $ref(null);
|
let antenna = $ref(null);
|
||||||
let queue = $ref(0);
|
let queue = $ref(0);
|
||||||
let rootEl = $ref<HTMLElement>();
|
let rootEl = $shallowRef<HTMLElement>();
|
||||||
let tlEl = $ref<InstanceType<typeof XTimeline>>();
|
let tlEl = $ref<InstanceType<typeof XTimeline>>();
|
||||||
const keymap = $computed(() => ({
|
const keymap = $computed(() => ({
|
||||||
't': focus,
|
't': focus,
|
||||||
|
|
|
@ -46,8 +46,8 @@ const props = defineProps<{
|
||||||
group?: Misskey.entities.UserGroup | null;
|
group?: Misskey.entities.UserGroup | null;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let textEl = $ref<HTMLTextAreaElement>();
|
let textEl = $shallowRef<HTMLTextAreaElement>();
|
||||||
let fileEl = $ref<HTMLInputElement>();
|
let fileEl = $shallowRef<HTMLInputElement>();
|
||||||
|
|
||||||
let text = $ref<string>('');
|
let text = $ref<string>('');
|
||||||
let file = $ref<Misskey.entities.DriveFile | null>(null);
|
let file = $ref<Misskey.entities.DriveFile | null>(null);
|
||||||
|
|
|
@ -71,7 +71,7 @@ const props = defineProps<{
|
||||||
groupId?: string;
|
groupId?: string;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let rootEl = $ref<HTMLDivElement>();
|
let rootEl = $shallowRef<HTMLDivElement>();
|
||||||
let formEl = $ref<InstanceType<typeof XForm>>();
|
let formEl = $ref<InstanceType<typeof XForm>>();
|
||||||
let pagingComponent = $ref<InstanceType<typeof MkPagination>>();
|
let pagingComponent = $ref<InstanceType<typeof MkPagination>>();
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, defineAsyncComponent, inject, nextTick, onActivated, onMounted, onUnmounted, provide, ref, watch } from 'vue';
|
import { computed, defineAsyncComponent, inject, nextTick, onActivated, onMounted, onUnmounted, provide, ref, shallowRef, watch } from 'vue';
|
||||||
import { i18n } from '@/i18n';
|
import { i18n } from '@/i18n';
|
||||||
import MkInfo from '@/components/MkInfo.vue';
|
import MkInfo from '@/components/MkInfo.vue';
|
||||||
import MkSuperMenu from '@/components/MkSuperMenu.vue';
|
import MkSuperMenu from '@/components/MkSuperMenu.vue';
|
||||||
|
@ -40,7 +40,7 @@ const indexInfo = {
|
||||||
hideHeader: true,
|
hideHeader: true,
|
||||||
};
|
};
|
||||||
const INFO = ref(indexInfo);
|
const INFO = ref(indexInfo);
|
||||||
const el = ref<HTMLElement | null>(null);
|
const el = shallowRef<HTMLElement | null>(null);
|
||||||
const childInfo = ref(null);
|
const childInfo = ref(null);
|
||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
|
@ -42,7 +42,7 @@ const keymap = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const tlComponent = $ref<InstanceType<typeof XTimeline>>();
|
const tlComponent = $ref<InstanceType<typeof XTimeline>>();
|
||||||
const rootEl = $ref<HTMLElement>();
|
const rootEl = $shallowRef<HTMLElement>();
|
||||||
|
|
||||||
let queue = $ref(0);
|
let queue = $ref(0);
|
||||||
const src = $computed({ get: () => defaultStore.reactiveState.tl.value.src, set: (x) => saveSrc(x) });
|
const src = $computed({ get: () => defaultStore.reactiveState.tl.value.src, set: (x) => saveSrc(x) });
|
||||||
|
|
|
@ -35,7 +35,7 @@ const props = defineProps<{
|
||||||
let list = $ref(null);
|
let list = $ref(null);
|
||||||
let queue = $ref(0);
|
let queue = $ref(0);
|
||||||
let tlEl = $ref<InstanceType<typeof XTimeline>>();
|
let tlEl = $ref<InstanceType<typeof XTimeline>>();
|
||||||
let rootEl = $ref<HTMLElement>();
|
let rootEl = $shallowRef<HTMLElement>();
|
||||||
|
|
||||||
watch(() => props.listId, async () => {
|
watch(() => props.listId, async () => {
|
||||||
list = await os.api('users/lists/show', {
|
list = await os.api('users/lists/show', {
|
||||||
|
|
|
@ -28,8 +28,8 @@ const props = defineProps<{
|
||||||
user: misskey.entities.User;
|
user: misskey.entities.User;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const rootEl = $ref<HTMLDivElement>(null);
|
const rootEl = $shallowRef<HTMLDivElement>(null);
|
||||||
const chartEl = $ref<HTMLCanvasElement>(null);
|
const chartEl = $shallowRef<HTMLCanvasElement>(null);
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
let chartInstance: Chart = null;
|
let chartInstance: Chart = null;
|
||||||
let fetching = $ref(true);
|
let fetching = $ref(true);
|
||||||
|
|
|
@ -28,7 +28,7 @@ const props = defineProps<{
|
||||||
user: misskey.entities.User;
|
user: misskey.entities.User;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const chartEl = $ref<HTMLCanvasElement>(null);
|
const chartEl = $shallowRef<HTMLCanvasElement>(null);
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
let chartInstance: Chart = null;
|
let chartInstance: Chart = null;
|
||||||
const chartLimit = 30;
|
const chartLimit = 30;
|
||||||
|
|
|
@ -64,7 +64,7 @@ let fullView = $ref(false);
|
||||||
let globalHeaderHeight = $ref(0);
|
let globalHeaderHeight = $ref(0);
|
||||||
const wallpaper = localStorage.getItem('wallpaper') != null;
|
const wallpaper = localStorage.getItem('wallpaper') != null;
|
||||||
const showMenuOnTop = $computed(() => defaultStore.state.menuDisplay === 'top');
|
const showMenuOnTop = $computed(() => defaultStore.state.menuDisplay === 'top');
|
||||||
let live2d = $ref<HTMLIFrameElement>();
|
let live2d = $shallowRef<HTMLIFrameElement>();
|
||||||
let widgetsLeft = $ref();
|
let widgetsLeft = $ref();
|
||||||
let widgetsRight = $ref();
|
let widgetsRight = $ref();
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ function showSettings() {
|
||||||
os.pageWindow('/settings/deck');
|
os.pageWindow('/settings/deck');
|
||||||
}
|
}
|
||||||
|
|
||||||
let columnsEl = $ref<HTMLElement>();
|
let columnsEl = $shallowRef<HTMLElement>();
|
||||||
|
|
||||||
const addColumn = async (ev) => {
|
const addColumn = async (ev) => {
|
||||||
const columns = [
|
const columns = [
|
||||||
|
|
|
@ -59,7 +59,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'change-active-state', v: boolean): void;
|
(ev: 'change-active-state', v: boolean): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let body = $ref<HTMLDivElement>();
|
let body = $shallowRef<HTMLDivElement>();
|
||||||
|
|
||||||
let dragging = $ref(false);
|
let dragging = $ref(false);
|
||||||
watch($$(dragging), v => os.deckGlobalEvents.emit(v ? 'column.dragStart' : 'column.dragEnd'));
|
watch($$(dragging), v => os.deckGlobalEvents.emit(v ? 'column.dragStart' : 'column.dragEnd'));
|
||||||
|
|
|
@ -86,7 +86,7 @@ window.addEventListener('resize', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
let pageMetadata = $ref<null | ComputedRef<PageMetadata>>();
|
let pageMetadata = $ref<null | ComputedRef<PageMetadata>>();
|
||||||
const widgetsEl = $ref<HTMLElement>();
|
const widgetsEl = $shallowRef<HTMLElement>();
|
||||||
const widgetsShowing = $ref(false);
|
const widgetsShowing = $ref(false);
|
||||||
|
|
||||||
provide('router', mainRouter);
|
provide('router', mainRouter);
|
||||||
|
|
|
@ -31,7 +31,7 @@ const emit = defineEmits<{
|
||||||
(ev: 'mounted', el?: Element): void;
|
(ev: 'mounted', el?: Element): void;
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
let rootEl = $ref<HTMLDivElement>();
|
let rootEl = $shallowRef<HTMLDivElement>();
|
||||||
|
|
||||||
const widgets = $computed(() => {
|
const widgets = $computed(() => {
|
||||||
if (props.place === null) return defaultStore.reactiveState.widgets.value;
|
if (props.place === null) return defaultStore.reactiveState.widgets.value;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { onMounted, onUnmounted, reactive, ref } from 'vue';
|
import { onMounted, onUnmounted, reactive, ref, shallowRef } from 'vue';
|
||||||
import { useWidgetPropsManager, Widget, WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget';
|
import { useWidgetPropsManager, Widget, WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget';
|
||||||
import { GetFormResultType } from '@/scripts/form';
|
import { GetFormResultType } from '@/scripts/form';
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ const { widgetProps, configure } = useWidgetPropsManager(name,
|
||||||
emit,
|
emit,
|
||||||
);
|
);
|
||||||
|
|
||||||
const live2d = ref<HTMLIFrameElement>();
|
const live2d = shallowRef<HTMLIFrameElement>();
|
||||||
|
|
||||||
const touched = () => {
|
const touched = () => {
|
||||||
//if (this.live2d) this.live2d.changeExpression('gurugurume');
|
//if (this.live2d) this.live2d.changeExpression('gurugurume');
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { nextTick, onMounted, onUnmounted, reactive, ref } from 'vue';
|
import { nextTick, onMounted, onUnmounted, reactive, ref, shallowRef } from 'vue';
|
||||||
import { useWidgetPropsManager, Widget, WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget';
|
import { useWidgetPropsManager, Widget, WidgetComponentEmits, WidgetComponentExpose, WidgetComponentProps } from './widget';
|
||||||
import { GetFormResultType } from '@/scripts/form';
|
import { GetFormResultType } from '@/scripts/form';
|
||||||
import * as os from '@/os';
|
import * as os from '@/os';
|
||||||
|
@ -49,8 +49,8 @@ const { widgetProps, configure, save } = useWidgetPropsManager(name,
|
||||||
|
|
||||||
const images = ref([]);
|
const images = ref([]);
|
||||||
const fetching = ref(true);
|
const fetching = ref(true);
|
||||||
const slideA = ref<HTMLElement>();
|
const slideA = shallowRef<HTMLElement>();
|
||||||
const slideB = ref<HTMLElement>();
|
const slideB = shallowRef<HTMLElement>();
|
||||||
|
|
||||||
const change = () => {
|
const change = () => {
|
||||||
if (images.value.length === 0) return;
|
if (images.value.length === 0) return;
|
||||||
|
|
Loading…
Reference in a new issue