Skip to content

Commit cb4a5ef

Browse files
prakriti-solankeykartikpersistent
authored andcommitted
mode removal of rows check
1 parent 8377df6 commit cb4a5ef

File tree

1 file changed

+11
-42
lines changed

1 file changed

+11
-42
lines changed

frontend/src/components/ChatBot/ChatModeToggle.tsx

Lines changed: 11 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { useCredentials } from '../../context/UserCredentials';
99

1010
export default function ChatModeToggle({
1111
menuAnchor,
12-
closeHandler = () => {},
12+
closeHandler = () => { },
1313
open,
1414
anchorPortal = true,
1515
disableBackdrop = false,
@@ -20,45 +20,25 @@ export default function ChatModeToggle({
2020
anchorPortal?: boolean;
2121
disableBackdrop?: boolean;
2222
}) {
23-
const { setchatModes, chatModes, postProcessingTasks, selectedRows } = useFileContext();
23+
const { setchatModes, chatModes, postProcessingTasks } = useFileContext();
2424
const isCommunityAllowed = postProcessingTasks.includes('enable_communities');
2525
const { isGdsActive } = useCredentials();
26-
2726
useEffect(() => {
28-
// If rows are selected, the mode is valid (either vector or graph+vector)
29-
if (selectedRows.length > 0) {
30-
if (
31-
chatModes.includes(chatModeLables.graph) ||
32-
chatModes.includes(chatModeLables.fulltext) ||
33-
chatModes.includes(chatModeLables['global search+vector+fulltext'])
34-
) {
35-
setchatModes((prev) =>
36-
prev.filter(
37-
(m) => ![chatModeLables.graph, chatModeLables.fulltext, chatModeLables['graph+vector+fulltext']].includes(m)
38-
)
39-
);
40-
}
41-
if (!chatModes.includes(chatModeLables.vector)) {
42-
setchatModes([chatModeLables.vector]);
43-
}
27+
if (!chatModes.length) {
28+
setchatModes([chatModeLables['graph+vector+fulltext']]);
4429
}
45-
}, [selectedRows.length, chatModes.length]);
46-
30+
}, [chatModes.length]);
4731
const memoizedChatModes = useMemo(() => {
4832
return isGdsActive && isCommunityAllowed
4933
? AvailableModes
5034
: AvailableModes?.filter((m) => !m.mode.includes(chatModeLables['global search+vector+fulltext']));
5135
}, [isGdsActive, isCommunityAllowed]);
5236
const menuItems = useMemo(() => {
5337
return memoizedChatModes?.map((m) => {
54-
const isDisabled = Boolean(
55-
selectedRows.length && !(m.mode === chatModeLables.vector || m.mode === chatModeLables['graph+vector'])
56-
);
5738
const handleModeChange = () => {
58-
if (isDisabled) {
59-
setchatModes([chatModeLables['graph+vector']]);
60-
} else if (chatModes.includes(m.mode)) {
61-
setchatModes((prev) => prev.filter((i) => i != m.mode));
39+
if (chatModes.includes(m.mode)) {
40+
if (chatModes.length === 1) return;
41+
setchatModes((prev) => prev.filter((i) => i !== m.mode));
6242
} else {
6343
setchatModes((prev) => [...prev, m.mode]);
6444
}
@@ -78,30 +58,19 @@ export default function ChatModeToggle({
7858
</div>
7959
),
8060
onClick: handleModeChange,
81-
disabledCondition: isDisabled,
61+
disabledCondition: false,
8262
description: (
8363
<span>
8464
{chatModes.includes(m.mode) && (
8565
<>
8666
<StatusIndicator type='success' /> {chatModeLables.selected}
8767
</>
8868
)}
89-
{isDisabled && (
90-
<>
91-
<StatusIndicator type='warning' /> {chatModeLables.unavailableChatMode}
92-
</>
93-
)}
9469
</span>
9570
),
9671
};
9772
});
98-
}, [chatModes.length, memoizedChatModes, closeHandler, selectedRows]);
99-
100-
useEffect(() => {
101-
if (!selectedRows.length && !chatModes.length) {
102-
setchatModes([]);
103-
}
104-
}, [selectedRows.length, chatModes.length]);
73+
}, [chatModes, memoizedChatModes, closeHandler]);
10574
return (
10675
<CustomMenu
10776
closeHandler={closeHandler}
@@ -112,4 +81,4 @@ export default function ChatModeToggle({
11281
items={menuItems}
11382
/>
11483
);
115-
}
84+
}

0 commit comments

Comments
 (0)