Skip to content

Commit 7006caa

Browse files
committed
improvement(context-menu): added awareness for chat and variables being open, fixed select calcaulation to match heihgt calculation for selecting multiple blocks
1 parent 142c9a0 commit 7006caa

File tree

4 files changed

+29
-15
lines changed

4 files changed

+29
-15
lines changed

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/context-menu/pane-context-menu.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ export function PaneContextMenu({
2424
onAddBlock,
2525
onAutoLayout,
2626
onOpenLogs,
27-
onOpenVariables,
28-
onOpenChat,
27+
onToggleVariables,
28+
onToggleChat,
2929
onInvite,
30+
isVariablesOpen = false,
31+
isChatOpen = false,
3032
hasClipboard = false,
3133
disableEdit = false,
3234
disableAdmin = false,
@@ -125,19 +127,19 @@ export function PaneContextMenu({
125127
</PopoverItem>
126128
<PopoverItem
127129
onClick={() => {
128-
onOpenVariables()
130+
onToggleVariables()
129131
onClose()
130132
}}
131133
>
132-
Variables
134+
{isVariablesOpen ? 'Close Variables' : 'Open Variables'}
133135
</PopoverItem>
134136
<PopoverItem
135137
onClick={() => {
136-
onOpenChat()
138+
onToggleChat()
137139
onClose()
138140
}}
139141
>
140-
Open Chat
142+
{isChatOpen ? 'Close Chat' : 'Open Chat'}
141143
</PopoverItem>
142144

143145
{/* Admin action */}

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/context-menu/types.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,13 @@ export interface PaneContextMenuProps {
7777
onAddBlock: () => void
7878
onAutoLayout: () => void
7979
onOpenLogs: () => void
80-
onOpenVariables: () => void
81-
onOpenChat: () => void
80+
onToggleVariables: () => void
81+
onToggleChat: () => void
8282
onInvite: () => void
83+
/** Whether the variables panel is currently open */
84+
isVariablesOpen?: boolean
85+
/** Whether the chat panel is currently open */
86+
isChatOpen?: boolean
8387
/** Whether clipboard has content for pasting */
8488
hasClipboard?: boolean
8589
/** Whether edit actions are disabled (no permission) */

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/workflow-block/workflow-block.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -911,7 +911,7 @@ export const WorkflowBlock = memo(function WorkflowBlock({
911911
type,
912912
config.category,
913913
displayTriggerMode,
914-
subBlockRows.length,
914+
subBlockRows.reduce((acc, row) => acc + row.length, 0),
915915
conditionRows.length,
916916
routerRows.length,
917917
horizontalHandles,

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/workflow.tsx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,10 @@ const WorkflowContent = React.memo(() => {
257257

258258
const snapToGridSize = useGeneralStore((state) => state.snapToGridSize)
259259
const snapToGrid = snapToGridSize > 0
260+
261+
// Panel open states for context menu
262+
const isVariablesOpen = useVariablesStore((state) => state.isOpen)
263+
const isChatOpen = useChatStore((state) => state.isChatOpen)
260264
const snapGrid: [number, number] = useMemo(
261265
() => [snapToGridSize, snapToGridSize],
262266
[snapToGridSize]
@@ -754,12 +758,14 @@ const WorkflowContent = React.memo(() => {
754758
router.push(`/workspace/${workspaceId}/logs?workflowIds=${workflowIdParam}`)
755759
}, [router, workspaceId, workflowIdParam])
756760

757-
const handleContextOpenVariables = useCallback(() => {
758-
useVariablesStore.getState().setIsOpen(true)
761+
const handleContextToggleVariables = useCallback(() => {
762+
const { isOpen, setIsOpen } = useVariablesStore.getState()
763+
setIsOpen(!isOpen)
759764
}, [])
760765

761-
const handleContextOpenChat = useCallback(() => {
762-
useChatStore.getState().setIsChatOpen(true)
766+
const handleContextToggleChat = useCallback(() => {
767+
const { isChatOpen, setIsChatOpen } = useChatStore.getState()
768+
setIsChatOpen(!isChatOpen)
763769
}, [])
764770

765771
const handleContextInvite = useCallback(() => {
@@ -2919,9 +2925,11 @@ const WorkflowContent = React.memo(() => {
29192925
onAddBlock={handleContextAddBlock}
29202926
onAutoLayout={handleAutoLayout}
29212927
onOpenLogs={handleContextOpenLogs}
2922-
onOpenVariables={handleContextOpenVariables}
2923-
onOpenChat={handleContextOpenChat}
2928+
onToggleVariables={handleContextToggleVariables}
2929+
onToggleChat={handleContextToggleChat}
29242930
onInvite={handleContextInvite}
2931+
isVariablesOpen={isVariablesOpen}
2932+
isChatOpen={isChatOpen}
29252933
hasClipboard={hasClipboard()}
29262934
disableEdit={!effectivePermissions.canEdit}
29272935
disableAdmin={!effectivePermissions.canAdmin}

0 commit comments

Comments
 (0)