|
@@ -1,4 +1,4 @@
|
|
|
-import { useEffect } from 'react'
|
|
|
|
|
|
|
+import { useCallback, useEffect } from 'react'
|
|
|
|
|
|
|
|
import { useFileTreeMutable } from '../contexts/file-tree-mutable'
|
|
import { useFileTreeMutable } from '../contexts/file-tree-mutable'
|
|
|
import { useFileTreeSelectable } from '../contexts/file-tree-selectable'
|
|
import { useFileTreeSelectable } from '../contexts/file-tree-selectable'
|
|
@@ -12,9 +12,18 @@ export function useFileTreeSocketListener() {
|
|
|
dispatchCreateDoc,
|
|
dispatchCreateDoc,
|
|
|
dispatchCreateFile
|
|
dispatchCreateFile
|
|
|
} = useFileTreeMutable()
|
|
} = useFileTreeMutable()
|
|
|
- const { unselect } = useFileTreeSelectable()
|
|
|
|
|
|
|
+ const { select, unselect } = useFileTreeSelectable()
|
|
|
const socket = window._ide && window._ide.socket
|
|
const socket = window._ide && window._ide.socket
|
|
|
|
|
|
|
|
|
|
+ const selectEntityIfCreatedByUser = useCallback(
|
|
|
|
|
+ (entityId, userId) => {
|
|
|
|
|
+ if (window.user && window.user.id && window.user.id === userId) {
|
|
|
|
|
+ select(entityId)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ [select]
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
function handleDispatchRename(entityId, name) {
|
|
function handleDispatchRename(entityId, name) {
|
|
|
dispatchRename(entityId, name)
|
|
dispatchRename(entityId, name)
|
|
@@ -48,34 +57,43 @@ export function useFileTreeSocketListener() {
|
|
|
}, [socket, dispatchMove])
|
|
}, [socket, dispatchMove])
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
- function handleDispatchCreateFolder(parentFolderId, folder) {
|
|
|
|
|
|
|
+ function handleDispatchCreateFolder(parentFolderId, folder, userId) {
|
|
|
dispatchCreateFolder(parentFolderId, folder)
|
|
dispatchCreateFolder(parentFolderId, folder)
|
|
|
|
|
+ selectEntityIfCreatedByUser(folder._id, userId)
|
|
|
}
|
|
}
|
|
|
if (socket) socket.on('reciveNewFolder', handleDispatchCreateFolder)
|
|
if (socket) socket.on('reciveNewFolder', handleDispatchCreateFolder)
|
|
|
return () => {
|
|
return () => {
|
|
|
if (socket)
|
|
if (socket)
|
|
|
socket.removeListener('reciveNewFolder', handleDispatchCreateFolder)
|
|
socket.removeListener('reciveNewFolder', handleDispatchCreateFolder)
|
|
|
}
|
|
}
|
|
|
- }, [socket, dispatchCreateFolder])
|
|
|
|
|
|
|
+ }, [socket, dispatchCreateFolder, selectEntityIfCreatedByUser])
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
- function handleDispatchCreateDoc(parentFolderId, doc) {
|
|
|
|
|
|
|
+ function handleDispatchCreateDoc(parentFolderId, doc, _source, userId) {
|
|
|
dispatchCreateDoc(parentFolderId, doc)
|
|
dispatchCreateDoc(parentFolderId, doc)
|
|
|
|
|
+ selectEntityIfCreatedByUser(doc._id, userId)
|
|
|
}
|
|
}
|
|
|
if (socket) socket.on('reciveNewDoc', handleDispatchCreateDoc)
|
|
if (socket) socket.on('reciveNewDoc', handleDispatchCreateDoc)
|
|
|
return () => {
|
|
return () => {
|
|
|
if (socket) socket.removeListener('reciveNewDoc', handleDispatchCreateDoc)
|
|
if (socket) socket.removeListener('reciveNewDoc', handleDispatchCreateDoc)
|
|
|
}
|
|
}
|
|
|
- }, [socket, dispatchCreateDoc])
|
|
|
|
|
|
|
+ }, [socket, dispatchCreateDoc, selectEntityIfCreatedByUser])
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
- function handleDispatchCreateFile(parentFolderId, file) {
|
|
|
|
|
|
|
+ function handleDispatchCreateFile(
|
|
|
|
|
+ parentFolderId,
|
|
|
|
|
+ file,
|
|
|
|
|
+ _source,
|
|
|
|
|
+ _linkedFileData,
|
|
|
|
|
+ userId
|
|
|
|
|
+ ) {
|
|
|
dispatchCreateFile(parentFolderId, file)
|
|
dispatchCreateFile(parentFolderId, file)
|
|
|
|
|
+ selectEntityIfCreatedByUser(file._id, userId)
|
|
|
}
|
|
}
|
|
|
if (socket) socket.on('reciveNewFile', handleDispatchCreateFile)
|
|
if (socket) socket.on('reciveNewFile', handleDispatchCreateFile)
|
|
|
return () => {
|
|
return () => {
|
|
|
if (socket)
|
|
if (socket)
|
|
|
socket.removeListener('reciveNewFile', handleDispatchCreateFile)
|
|
socket.removeListener('reciveNewFile', handleDispatchCreateFile)
|
|
|
}
|
|
}
|
|
|
- }, [socket, dispatchCreateFile])
|
|
|
|
|
|
|
+ }, [socket, dispatchCreateFile, selectEntityIfCreatedByUser])
|
|
|
}
|
|
}
|