Synced files: - Quote wizard frontend (all components, hooks, types, config) - API updates (config, models, routers, schemas, services) - Client work (bg-builders, gurushow) - Scripts (BGB Lesley termination, CIPP, Datto, migration) - Temp files (Bardach contacts, VWP investigation, misc) - Credentials and session logs - Email service, PHP API, session logs Machine: ACG-M-L5090 Timestamp: 2026-03-10 19:11:00 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
62 lines
1.4 KiB
TypeScript
62 lines
1.4 KiB
TypeScript
import { ChevronLeft, ChevronRight, Send } from 'lucide-react';
|
|
import { Button } from '@/components/ui';
|
|
|
|
export interface WizardNavigationProps {
|
|
onNext: () => void;
|
|
onPrev: () => void;
|
|
onSubmit?: () => void;
|
|
isFirstStep: boolean;
|
|
isLastStep: boolean;
|
|
isNextDisabled?: boolean;
|
|
isSubmitting?: boolean;
|
|
}
|
|
|
|
export function WizardNavigation({
|
|
onNext,
|
|
onPrev,
|
|
onSubmit,
|
|
isFirstStep,
|
|
isLastStep,
|
|
isNextDisabled = false,
|
|
isSubmitting = false,
|
|
}: WizardNavigationProps) {
|
|
return (
|
|
<div className="flex items-center justify-between pt-8 mt-8 border-t border-gray-100">
|
|
<Button
|
|
type="button"
|
|
variant="ghost"
|
|
onClick={onPrev}
|
|
disabled={isFirstStep}
|
|
className={isFirstStep ? 'invisible' : ''}
|
|
>
|
|
<ChevronLeft className="w-4 h-4 mr-1.5" />
|
|
Back
|
|
</Button>
|
|
|
|
{isLastStep ? (
|
|
<Button
|
|
type="button"
|
|
variant="primary"
|
|
size="lg"
|
|
onClick={onSubmit}
|
|
isLoading={isSubmitting}
|
|
disabled={isNextDisabled || isSubmitting}
|
|
>
|
|
<Send className="w-4 h-4 mr-2" />
|
|
Get My Quote
|
|
</Button>
|
|
) : (
|
|
<Button
|
|
type="button"
|
|
variant="primary"
|
|
onClick={onNext}
|
|
disabled={isNextDisabled}
|
|
>
|
|
Continue
|
|
<ChevronRight className="w-4 h-4 ml-1.5" />
|
|
</Button>
|
|
)}
|
|
</div>
|
|
);
|
|
}
|