[workbench] Improve asynchronous tool use (#30184)

GitOrigin-RevId: d1bd33469b557c29968049af99b9c3c85731151d
This commit is contained in:
Alf Eaton
2025-12-10 09:06:43 +00:00
committed by Copybot
parent 851f0c92b1
commit b811da0695
13 changed files with 40 additions and 25 deletions
@@ -20,7 +20,10 @@ const EditorNavigationToolbarRoot = React.memo(
openShareProjectModal,
}: {
onlineUsersArray: OnlineUser[]
openDoc: (doc: Doc, { gotoLine }: { gotoLine: number }) => void
openDoc: (
doc: Doc,
{ gotoLine }: { gotoLine: number }
) => Promise<Doc | undefined>
openShareProjectModal: () => void
}) {
const {
@@ -93,9 +96,9 @@ const EditorNavigationToolbarRoot = React.memo(
}, [setLeftMenuShown])
const goToUser = useCallback(
(user: OnlineUser) => {
async (user: OnlineUser) => {
if (user.doc && typeof user.row === 'number') {
openDoc(user.doc, { gotoLine: user.row + 1 })
return await openDoc(user.doc, { gotoLine: user.row + 1 })
}
},
[openDoc]
@@ -11,13 +11,14 @@ import { getBackgroundColorForUserId } from '@/shared/utils/colors'
import OLTooltip from '@/shared/components/ol/ol-tooltip'
import MaterialIcon from '@/shared/components/material-icon'
import { OnlineUser } from '@/features/ide-react/context/online-users-context'
import { Doc } from '@ol-types/doc'
function OnlineUsersWidget({
onlineUsers,
goToUser,
}: {
onlineUsers: OnlineUser[]
goToUser: (user: OnlineUser) => void
goToUser: (user: OnlineUser) => Promise<Doc | undefined>
}) {
const { t } = useTranslation()
@@ -19,6 +19,7 @@ import TryNewEditorButton from '../try-new-editor-button'
import { OnlineUser } from '@/features/ide-react/context/online-users-context'
import { Cobranding } from '../../../../../types/cobranding'
import { canUseNewEditor } from '@/features/ide-redesign/utils/new-editor-utils'
import { Doc } from '@ol-types/doc'
const [publishModalModules] = importOverleafModules('publishModal') as {
import: { default: ElementType }
@@ -50,7 +51,7 @@ export type ToolbarHeaderProps = {
toggleHistoryOpen: () => void
unreadMessageCount: number
onlineUsers: OnlineUser[]
goToUser: (user: OnlineUser) => void
goToUser: (user: OnlineUser) => Promise<Doc | undefined>
isRestrictedTokenMember: boolean | undefined
hasPublishPermissions: boolean
chatVisible: boolean