Skip to content

Commit 8372798

Browse files
[dev] [Marfuen] mariano/onboarding-tracker (#1747)
* feat(onboarding): add real-time tracking with floating card UI - Implement real-time onboarding progress tracking using Trigger.dev metadata - Track individual policy completion status dynamically - Replace top banner with floating card (bottom-right, 600px height, 400px min width) - Add expandable policies section showing individual policy statuses - Replace LogoSpinner with Loader2 for loading states - Auto-minimize on completion with dismiss functionality - Remove redundant current step message below title * feat(onboarding): add localhost prefill button and enhance card shadow - Add Complete button on localhost to pre-fill organization creation form - Enhance onboarding tracker card shadow for better visibility - Auto-fetch frameworks and pre-fill with first 2 visible frameworks * feat(ui): add responsive padding and improve mobile layouts - Add responsive padding (px-4 sm:px-6 lg:px-8) to all pages for mobile - Exclude padding from automation pages, automation overview, and task detail pages - Make integrations search and category filters mobile-friendly with horizontal scroll - Fix search input component styling for better mobile experience - Update cloud-tests and integrations pages to use consistent padding approach * fix(setup): add handlePrefillAll to useOnboardingForm destructuring --------- Co-authored-by: Mariano Fuentes <marfuen98@gmail.com>
1 parent cb1b5fb commit 8372798

16 files changed

Lines changed: 588 additions & 152 deletions

File tree

apps/app/src/app/(app)/[orgId]/cloud-tests/components/EmptyState.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ export function EmptyState({ onBack, connectedProviders = [], onConnected }: Emp
258258
// AWS Step 2.5: Region Selection (after credential validation)
259259
if (step === 'validate-aws' && provider && selectedProvider === 'aws') {
260260
return (
261-
<div className="container mx-auto flex min-h-[600px] w-full flex-col gap-6 p-4 md:p-6 lg:p-8">
261+
<div className="mx-auto max-w-7xl flex min-h-[600px] w-full flex-col gap-6 py-4 md:py-6 lg:py-8">
262262
<div className="flex items-center gap-4">
263263
<Button variant="ghost" size="sm" onClick={() => setStep('connect')}>
264264
<ArrowLeft className="mr-2 h-4 w-4" />
@@ -413,7 +413,7 @@ export function EmptyState({ onBack, connectedProviders = [], onConnected }: Emp
413413
const fields = PROVIDER_FIELDS[provider.id];
414414

415415
return (
416-
<div className="container mx-auto flex min-h-[600px] w-full flex-col gap-6 p-4 md:p-6 lg:p-8">
416+
<div className="mx-auto max-w-7xl flex min-h-[600px] w-full flex-col gap-6 py-4 md:py-6 lg:py-8">
417417
<div className="flex items-center gap-4">
418418
<Button variant="ghost" size="sm" onClick={handleBack}>
419419
<ArrowLeft className="mr-2 h-4 w-4" />

apps/app/src/app/(app)/[orgId]/cloud-tests/components/TestsLayout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ export function TestsLayout({
199199
const providerFindings = findingsByProvider[provider.integrationId] ?? [];
200200

201201
return (
202-
<div className="container mx-auto flex w-full flex-col gap-6 p-4 md:p-6 lg:p-8">
202+
<div className="mx-auto max-w-7xl flex w-full flex-col gap-6 py-4 md:py-6 lg:py-8">
203203
<div className="flex items-center justify-between">
204204
<div className="space-y-1">
205205
<h1 className="text-2xl font-semibold tracking-tight">Cloud Security Tests</h1>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use client';
2+
3+
import { usePathname } from 'next/navigation';
4+
5+
export function ConditionalPaddingWrapper({ children }: { children: React.ReactNode }) {
6+
const pathname = usePathname();
7+
8+
// Don't add padding for automation pages, automation overview pages, and task detail pages
9+
const isAutomationPage = pathname?.includes('/automation/');
10+
const isAutomationOverviewPage = pathname?.includes('/automations/');
11+
const isTaskDetailPage = pathname?.match(/\/tasks\/[^/]+$/) !== null; // Matches /tasks/[taskId] but not /tasks/[taskId]/automation
12+
13+
if (isAutomationPage || isAutomationOverviewPage || isTaskDetailPage) {
14+
return <>{children}</>;
15+
}
16+
17+
return <div className="px-4 sm:px-6 lg:px-8">{children}</div>;
18+
}

0 commit comments

Comments
 (0)