mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-07-18 21:21:11 +02:00
Small improvements 4 (#247)
* removed Publish from progress bar * removed publish tour related code * make chat correctly in tours * fixed use step completion
This commit is contained in:
parent
64a6cffe9c
commit
458302fc43
2 changed files with 19 additions and 37 deletions
|
|
@ -38,7 +38,6 @@ interface TopBarProps {
|
||||||
onStartNewChatAndFocus: () => void;
|
onStartNewChatAndFocus: () => void;
|
||||||
onStartBuildTour?: () => void;
|
onStartBuildTour?: () => void;
|
||||||
onStartTestTour?: () => void;
|
onStartTestTour?: () => void;
|
||||||
onStartPublishTour?: () => void;
|
|
||||||
onStartUseTour?: () => void;
|
onStartUseTour?: () => void;
|
||||||
onShareWorkflow: () => void;
|
onShareWorkflow: () => void;
|
||||||
shareUrl: string | null;
|
shareUrl: string | null;
|
||||||
|
|
@ -77,7 +76,6 @@ export function TopBar({
|
||||||
onStartNewChatAndFocus,
|
onStartNewChatAndFocus,
|
||||||
onStartBuildTour,
|
onStartBuildTour,
|
||||||
onStartTestTour,
|
onStartTestTour,
|
||||||
onStartPublishTour,
|
|
||||||
onStartUseTour,
|
onStartUseTour,
|
||||||
onShareWorkflow,
|
onShareWorkflow,
|
||||||
shareUrl,
|
shareUrl,
|
||||||
|
|
@ -98,16 +96,17 @@ export function TopBar({
|
||||||
// Progress bar steps with completion logic and current step detection
|
// Progress bar steps with completion logic and current step detection
|
||||||
const step1Complete = hasAgentInstructionChanges;
|
const step1Complete = hasAgentInstructionChanges;
|
||||||
const step2Complete = hasPlaygroundTested && hasAgentInstructionChanges;
|
const step2Complete = hasPlaygroundTested && hasAgentInstructionChanges;
|
||||||
const step3Complete = hasPublished && hasPlaygroundTested && hasAgentInstructionChanges;
|
// Keep publish as a prerequisite for Use completion, but remove it from the visual steps
|
||||||
const step4Complete = hasClickedUse && hasPublished && hasPlaygroundTested && hasAgentInstructionChanges;
|
// Mark "Use" complete as soon as a Use Assistant option is clicked
|
||||||
|
const step4Complete = hasClickedUse;
|
||||||
|
|
||||||
// Determine current step (first incomplete step)
|
// Determine current step (first incomplete visual step: 1 -> 2 -> 4)
|
||||||
const currentStep = !step1Complete ? 1 : !step2Complete ? 2 : !step3Complete ? 3 : !step4Complete ? 4 : null;
|
const currentStep = !step1Complete ? 1 : !step2Complete ? 2 : !step4Complete ? 4 : null;
|
||||||
|
|
||||||
const progressSteps: ProgressStep[] = [
|
const progressSteps: ProgressStep[] = [
|
||||||
{ id: 1, label: "Build: Ask the copilot to create your assistant. Add tools and connect data sources.", completed: step1Complete, isCurrent: currentStep === 1 },
|
{ id: 1, label: "Build: Ask the copilot to create your assistant. Add tools and connect data sources.", completed: step1Complete, isCurrent: currentStep === 1 },
|
||||||
{ id: 2, label: "Test: Test out your assistant by chatting with it. Use 'Fix' and 'Explain' to improve it.", completed: step2Complete, isCurrent: currentStep === 2 },
|
{ id: 2, label: "Test: Test out your assistant by chatting with it. Use 'Fix' and 'Explain' to improve it.", completed: step2Complete, isCurrent: currentStep === 2 },
|
||||||
{ id: 3, label: "Publish: Make it live with the Publish button. You can always switch back to draft.", completed: step3Complete, isCurrent: currentStep === 3 },
|
// Removed the 'Publish' step from the progress bar
|
||||||
{ id: 4, label: "Use: Click the 'Use Assistant' button to chat, set triggers (like emails), or connect via API.", completed: step4Complete, isCurrent: currentStep === 4 },
|
{ id: 4, label: "Use: Click the 'Use Assistant' button to chat, set triggers (like emails), or connect via API.", completed: step4Complete, isCurrent: currentStep === 4 },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
@ -185,7 +184,6 @@ export function TopBar({
|
||||||
onStepClick={(step) => {
|
onStepClick={(step) => {
|
||||||
if (step.id === 1 && onStartBuildTour) onStartBuildTour();
|
if (step.id === 1 && onStartBuildTour) onStartBuildTour();
|
||||||
if (step.id === 2 && onStartTestTour) onStartTestTour();
|
if (step.id === 2 && onStartTestTour) onStartTestTour();
|
||||||
if (step.id === 3 && onStartPublishTour) onStartPublishTour();
|
|
||||||
if (step.id === 4 && onStartUseTour) onStartUseTour();
|
if (step.id === 4 && onStartUseTour) onStartUseTour();
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -1077,7 +1077,6 @@ export function WorkflowEditor({
|
||||||
const [showTour, setShowTour] = useState(true);
|
const [showTour, setShowTour] = useState(true);
|
||||||
const [showBuildTour, setShowBuildTour] = useState(false);
|
const [showBuildTour, setShowBuildTour] = useState(false);
|
||||||
const [showTestTour, setShowTestTour] = useState(false);
|
const [showTestTour, setShowTestTour] = useState(false);
|
||||||
const [showPublishTour, setShowPublishTour] = useState(false);
|
|
||||||
const [showUseTour, setShowUseTour] = useState(false);
|
const [showUseTour, setShowUseTour] = useState(false);
|
||||||
|
|
||||||
// Centralized mode transition handler
|
// Centralized mode transition handler
|
||||||
|
|
@ -1192,10 +1191,8 @@ export function WorkflowEditor({
|
||||||
// Ensure chat is visible and collapse left panel
|
// Ensure chat is visible and collapse left panel
|
||||||
setActivePanel('playground');
|
setActivePanel('playground');
|
||||||
setViewMode((prev: ViewMode) => prev);
|
setViewMode((prev: ViewMode) => prev);
|
||||||
updateViewMode(
|
// Expand Chat to full view: hide Copilot panel and collapse Agents panel
|
||||||
viewMode === 'three_all' ? 'three_all' :
|
updateViewMode('two_agents_chat');
|
||||||
(viewMode === 'two_agents_skipper' ? 'two_agents_chat' : 'two_chat_skipper')
|
|
||||||
);
|
|
||||||
setIsLeftPanelCollapsed(true);
|
setIsLeftPanelCollapsed(true);
|
||||||
}, [updateViewMode, viewMode]);
|
}, [updateViewMode, viewMode]);
|
||||||
|
|
||||||
|
|
@ -1917,18 +1914,6 @@ export function WorkflowEditor({
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
onStartPublishTour={() => {
|
|
||||||
// Switch to 3-pane first to ensure elements are visible
|
|
||||||
updateViewMode('three_all');
|
|
||||||
if (isLive) {
|
|
||||||
handleModeTransition('draft', 'switch_draft');
|
|
||||||
}
|
|
||||||
requestAnimationFrame(() => {
|
|
||||||
requestAnimationFrame(() => {
|
|
||||||
setShowPublishTour(true);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
onStartUseTour={() => {
|
onStartUseTour={() => {
|
||||||
updateViewMode('three_all');
|
updateViewMode('three_all');
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
|
|
@ -2317,7 +2302,11 @@ export function WorkflowEditor({
|
||||||
{ target: 'copilot', title: 'Step 2/2', content: 'Ask Copilot to improve your agents based on test results. Use "Fix" and "Explain" to iterate quickly.' },
|
{ target: 'copilot', title: 'Step 2/2', content: 'Ask Copilot to improve your agents based on test results. Use "Fix" and "Explain" to iterate quickly.' },
|
||||||
]}
|
]}
|
||||||
onStepChange={(index) => {
|
onStepChange={(index) => {
|
||||||
if (index === 0) setActivePanel('playground');
|
if (index === 0) {
|
||||||
|
// Ensure Chat is focused and any middle-pane detail overlay is dismissed
|
||||||
|
setActivePanel('playground');
|
||||||
|
dispatch({ type: 'unselect_agent' });
|
||||||
|
}
|
||||||
if (index === 1) setActivePanel('copilot');
|
if (index === 1) setActivePanel('copilot');
|
||||||
}}
|
}}
|
||||||
onComplete={() => setShowTestTour(false)}
|
onComplete={() => setShowTestTour(false)}
|
||||||
|
|
@ -2335,21 +2324,16 @@ export function WorkflowEditor({
|
||||||
{ target: 'conversations', title: 'Step 5/5', content: 'Conversations: see all past interactions in one place, including manual chats, trigger activity, and API calls.' },
|
{ target: 'conversations', title: 'Step 5/5', content: 'Conversations: see all past interactions in one place, including manual chats, trigger activity, and API calls.' },
|
||||||
]}
|
]}
|
||||||
onStepChange={(index) => {
|
onStepChange={(index) => {
|
||||||
if (index === 0) setActivePanel('playground');
|
if (index === 0) {
|
||||||
|
// Ensure Chat is focused and any middle-pane detail overlay is dismissed
|
||||||
|
setActivePanel('playground');
|
||||||
|
dispatch({ type: 'unselect_agent' });
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
onComplete={() => setShowUseTour(false)}
|
onComplete={() => setShowUseTour(false)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{showPublishTour && (
|
|
||||||
<ProductTour
|
|
||||||
projectId={projectId}
|
|
||||||
forceStart
|
|
||||||
stepsOverride={[
|
|
||||||
{ target: 'deploy', title: 'Publish', content: 'Click Publish to make your workflow live, enabling triggers and API/SDK access. You can revert to a draft at any time.' },
|
|
||||||
]}
|
|
||||||
onComplete={() => setShowPublishTour(false)}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{/* Revert to Live Confirmation Modal */}
|
{/* Revert to Live Confirmation Modal */}
|
||||||
<Modal isOpen={isRevertModalOpen} onClose={onRevertModalClose}>
|
<Modal isOpen={isRevertModalOpen} onClose={onRevertModalClose}>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue