feat(FN-3068): wire plugin slot mounts and enhance planning mode modal UI

This merge incorporates UI enhancements for the planning mode modal and quick chat FAB, moves the drag handle into provider actions, wires required plugin slot mounts, and adds tests for MobileNavBar and UsageIndicator components. The changes span the dashboard UI components with styling and behavio

Fusion-Task-Id: FN-3068
This commit is contained in:
Fusion
2026-05-03 04:05:13 -07:00
committed by gsxdsm
parent 58aa3df40a
commit 5fd4cdc5df
3 changed files with 11 additions and 0 deletions

View File

@@ -26,6 +26,7 @@ import { DroidCliProviderCard } from "./DroidCliProviderCard";
import { LoginInstructions } from "./LoginInstructions";
import { OnboardingDisclosure } from "./OnboardingDisclosure";
import { CustomProviderForm } from "./CustomProviderForm";
import { PluginSlot } from "./PluginSlot";
import { appendTokenQuery } from "../auth";
import { filterVisibleOnboardingAndSettingsProviders } from "./providerVisibility";
@@ -1992,6 +1993,8 @@ export function ModelOnboardingModal({
})()
)}
<PluginSlot slotId="onboarding-recommendation-card" projectId={projectId} />
{/* Provider explanation disclosure */}
<OnboardingDisclosure summary="What are AI providers?">
<p className="onboarding-helper-text">
@@ -2019,6 +2022,8 @@ export function ModelOnboardingModal({
</div>
) : (
<>
<PluginSlot slotId="onboarding-provider-card" projectId={projectId} />
<section className="onboarding-provider-section" data-testid="onboarding-quick-start-providers">
<h3 className="onboarding-section-title">Quick start providers</h3>
{quickStartProviders.length > 0 ? (
@@ -2146,6 +2151,8 @@ export function ModelOnboardingModal({
</OnboardingDisclosure>
)}
<PluginSlot slotId="onboarding-setup-help" projectId={projectId} />
</>
)}

View File

@@ -2,6 +2,7 @@ import "./PostOnboardingRecommendations.css";
import { useCallback, useEffect, useMemo, useState, type ComponentType } from "react";
import { GitPullRequest, Key, Lightbulb, X, Zap } from "lucide-react";
import { fetchAuthStatus, fetchGlobalSettings } from "../api";
import { PluginSlot } from "./PluginSlot";
import {
dismissPostOnboardingRecommendations,
isOnboardingCompleted,
@@ -195,6 +196,7 @@ export function PostOnboardingRecommendations({
);
})}
</ul>
<PluginSlot slotId="post-onboarding-recommendation" />
</div>
</div>
<button

View File

@@ -4978,6 +4978,8 @@ export function SettingsModal({
</div>
) : (
<div className="auth-panel-body">
<PluginSlot slotId="settings-provider-card" projectId={projectId} />
<PluginSlot slotId="settings-integration-card" projectId={projectId} />
{!showAuthenticatedGroup && (
<div className="auth-section-hint">
Sign in to at least one provider to get started with AI models.