Clear deeplinks after use (#5128)

This commit is contained in:
Zane
2025-10-13 09:21:50 -07:00
committed by GitHub
parent 1a905e8957
commit 73e9e1af2e
2 changed files with 15 additions and 2 deletions
+13 -2
View File
@@ -28,6 +28,7 @@ export const useRecipeManager = (chat: ChatType, recipe?: Recipe | null) => {
const messagesRef = useRef(messages);
const isCreatingRecipeRef = useRef(false);
const hasCheckedRecipeRef = useRef(false);
useEffect(() => {
messagesRef.current = messages;
@@ -56,6 +57,7 @@ export const useRecipeManager = (chat: ChatType, recipe?: Recipe | null) => {
setRecipeAccepted(false);
setIsParameterModalOpen(false);
setIsRecipeWarningModalOpen(false);
hasCheckedRecipeRef.current = false; // Reset check flag for new recipe
chatContext.setChat({
...chatContext.chat,
@@ -77,14 +79,23 @@ export const useRecipeManager = (chat: ChatType, recipe?: Recipe | null) => {
useEffect(() => {
const checkRecipeAcceptance = async () => {
// Only check once per recipe load
if (hasCheckedRecipeRef.current) {
return;
}
if (finalRecipe) {
hasCheckedRecipeRef.current = true;
// If the recipe comes from session metadata (not from navigation state),
// it means it was already accepted in a previous session, so auto-accept it
const isFromSessionMetadata = !recipe && finalRecipe;
const hasMessages = chat.messages.length > 0;
const isFromSessionMetadata = !recipe && finalRecipe && hasMessages;
if (isFromSessionMetadata) {
// Recipe loaded from session metadata should be automatically accepted
setRecipeAccepted(true);
setIsRecipeWarningModalOpen(false);
return;
}
@@ -110,7 +121,7 @@ export const useRecipeManager = (chat: ChatType, recipe?: Recipe | null) => {
};
checkRecipeAcceptance();
}, [finalRecipe, recipe]);
}, [finalRecipe, recipe, chat.messages.length]);
// Filter parameters to only show valid ones that are actually used in the recipe
const filteredParameters = useMemo(() => {
+2
View File
@@ -346,6 +346,7 @@ app.on('open-url', async (_event, url) => {
recipeDeeplink || undefined,
scheduledJobId || undefined
);
windowDeeplinkURL = null;
return; // Skip the rest of the handler
}
@@ -366,6 +367,7 @@ app.on('open-url', async (_event, url) => {
} else if (parsedUrl.hostname === 'sessions') {
firstOpenWindow.webContents.send('open-shared-session', pendingDeepLink);
}
pendingDeepLink = null;
}
});