ui: show no-agents banner on dashboard with link to onboarding step 2
When a company has no agents (e.g. user exited onboarding early), the dashboard now shows an amber banner: "You have no agents. Create one here" that opens the onboarding wizard directly at step 2 (agent creation), skipping the company creation step. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,11 @@ interface NewGoalDefaults {
|
||||
parentId?: string;
|
||||
}
|
||||
|
||||
interface OnboardingOptions {
|
||||
initialStep?: 1 | 2 | 3 | 4;
|
||||
companyId?: string;
|
||||
}
|
||||
|
||||
interface DialogContextValue {
|
||||
newIssueOpen: boolean;
|
||||
newIssueDefaults: NewIssueDefaults;
|
||||
@@ -27,7 +32,8 @@ interface DialogContextValue {
|
||||
openNewAgent: () => void;
|
||||
closeNewAgent: () => void;
|
||||
onboardingOpen: boolean;
|
||||
openOnboarding: () => void;
|
||||
onboardingOptions: OnboardingOptions;
|
||||
openOnboarding: (options?: OnboardingOptions) => void;
|
||||
closeOnboarding: () => void;
|
||||
}
|
||||
|
||||
@@ -41,6 +47,7 @@ export function DialogProvider({ children }: { children: ReactNode }) {
|
||||
const [newGoalDefaults, setNewGoalDefaults] = useState<NewGoalDefaults>({});
|
||||
const [newAgentOpen, setNewAgentOpen] = useState(false);
|
||||
const [onboardingOpen, setOnboardingOpen] = useState(false);
|
||||
const [onboardingOptions, setOnboardingOptions] = useState<OnboardingOptions>({});
|
||||
|
||||
const openNewIssue = useCallback((defaults: NewIssueDefaults = {}) => {
|
||||
setNewIssueDefaults(defaults);
|
||||
@@ -78,12 +85,14 @@ export function DialogProvider({ children }: { children: ReactNode }) {
|
||||
setNewAgentOpen(false);
|
||||
}, []);
|
||||
|
||||
const openOnboarding = useCallback(() => {
|
||||
const openOnboarding = useCallback((options: OnboardingOptions = {}) => {
|
||||
setOnboardingOptions(options);
|
||||
setOnboardingOpen(true);
|
||||
}, []);
|
||||
|
||||
const closeOnboarding = useCallback(() => {
|
||||
setOnboardingOpen(false);
|
||||
setOnboardingOptions({});
|
||||
}, []);
|
||||
|
||||
return (
|
||||
@@ -104,6 +113,7 @@ export function DialogProvider({ children }: { children: ReactNode }) {
|
||||
openNewAgent,
|
||||
closeNewAgent,
|
||||
onboardingOpen,
|
||||
onboardingOptions,
|
||||
openOnboarding,
|
||||
closeOnboarding,
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user