diff --git a/packages/frontend/src/components/MkDrive.vue b/packages/frontend/src/components/MkDrive.vue index d861f40f42..23a90eab52 100644 --- a/packages/frontend/src/components/MkDrive.vue +++ b/packages/frontend/src/components/MkDrive.vue @@ -142,6 +142,23 @@ const emit = defineEmits<{ (ev: 'open-folder', v: Misskey.entities.DriveFolder): void; }>(); +const folder = ref(null); +const hierarchyFolders = ref([]); +const selectedFiles = ref([]); +const selectedFolders = ref([]); +const uploadings = uploads; + +// ドロップされようとしているか +const draghover = ref(false); + +// 自身の所有するアイテムがドラッグをスタートさせたか +// (自分自身の階層にドロップできないようにするためのフラグ) +const isDragSource = ref(false); + +const fetching = ref(true); + +const sortModeSelect = ref>('+createdAt'); + const filesPaginator = usePagination({ ctx: { endpoint: 'drive/files', @@ -166,23 +183,6 @@ const foldersPaginator = usePagination({ autoInit: false, }); -const folder = ref(null); -const hierarchyFolders = ref([]); -const selectedFiles = ref([]); -const selectedFolders = ref([]); -const uploadings = uploads; - -// ドロップされようとしているか -const draghover = ref(false); - -// 自身の所有するアイテムがドラッグをスタートさせたか -// (自分自身の階層にドロップできないようにするためのフラグ) -const isDragSource = ref(false); - -const fetching = ref(true); - -const sortModeSelect = ref>('+createdAt'); - watch(folder, () => emit('cd', folder.value)); watch(sortModeSelect, () => { initialize(); @@ -627,8 +627,13 @@ function closeTip() { store.set('readDriveTip', true); } +let connection: Misskey.ChannelConnection | null = null; + onMounted(() => { - connection.on('fileCreated', onStreamDriveFileCreated); + if (store.s.realtimeMode) { + connection = useStream().useChannel('drive'); + connection.on('fileCreated', onStreamDriveFileCreated); + } if (props.initialFolder) { move(props.initialFolder); @@ -641,7 +646,9 @@ onActivated(() => { }); onBeforeUnmount(() => { - connection.dispose(); + if (connection != null) { + connection.dispose(); + } });