feat: Complete onboarding system with No Website functionality
- Add No Website button to Step 2 with business description form - Implement onboarding cache service for browser-side data storage - Add business info database models and API endpoints - Update API key manager to save keys to .env file immediately - Add database migration scripts for business info table - Create reset onboarding script for fresh starts - Implement hybrid data storage (API keys to backend, other data to cache) - Add comprehensive business info CRUD operations - Include database table creation and migration tools
This commit is contained in:
committed by
DikshaDisciplines
parent
dca2318235
commit
d86336dcf1
@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
|
|||||||
import { Box, Button, TextField, Typography, Card, CardContent, CircularProgress, Alert } from '@mui/material';
|
import { Box, Button, TextField, Typography, Card, CardContent, CircularProgress, Alert } from '@mui/material';
|
||||||
import { ArrowBack as ArrowBackIcon, Save as SaveIcon, CheckCircle as CheckCircleIcon } from '@mui/icons-material';
|
import { ArrowBack as ArrowBackIcon, Save as SaveIcon, CheckCircle as CheckCircleIcon } from '@mui/icons-material';
|
||||||
import { businessInfoApi, BusinessInfo } from '../../api/businessInfo';
|
import { businessInfoApi, BusinessInfo } from '../../api/businessInfo';
|
||||||
|
import { onboardingCache } from '../../services/onboardingCache';
|
||||||
|
|
||||||
interface BusinessDescriptionStepProps {
|
interface BusinessDescriptionStepProps {
|
||||||
onBack: () => void;
|
onBack: () => void;
|
||||||
@@ -19,6 +20,17 @@ const BusinessDescriptionStep: React.FC<BusinessDescriptionStepProps> = ({ onBac
|
|||||||
const [error, setError] = useState<string | null>(null);
|
const [error, setError] = useState<string | null>(null);
|
||||||
const [success, setSuccess] = useState<string | null>(null);
|
const [success, setSuccess] = useState<string | null>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
console.log('🔄 BusinessDescriptionStep mounted. Loading cached data...');
|
||||||
|
const cachedData = onboardingCache.getStepData(2)?.businessInfo;
|
||||||
|
if (cachedData) {
|
||||||
|
setFormData(cachedData);
|
||||||
|
console.log('✅ Loaded cached business info:', cachedData);
|
||||||
|
} else {
|
||||||
|
console.log('ℹ️ No cached business info found.');
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
|
const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
|
||||||
const { name, value } = e.target;
|
const { name, value } = e.target;
|
||||||
setFormData(prev => ({ ...prev, [name]: value }));
|
setFormData(prev => ({ ...prev, [name]: value }));
|
||||||
@@ -39,6 +51,10 @@ const BusinessDescriptionStep: React.FC<BusinessDescriptionStepProps> = ({ onBac
|
|||||||
console.log('✅ Business info saved to DB:', response);
|
console.log('✅ Business info saved to DB:', response);
|
||||||
setSuccess('Business information saved successfully!');
|
setSuccess('Business information saved successfully!');
|
||||||
|
|
||||||
|
// Also save to cache for consistency with other steps
|
||||||
|
onboardingCache.saveStepData(2, { businessInfo: response, hasWebsite: false });
|
||||||
|
console.log('✅ Business info saved to cache.');
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
onContinue();
|
onContinue();
|
||||||
}, 1500); // Give user time to see success message
|
}, 1500); // Give user time to see success message
|
||||||
|
|||||||
Reference in New Issue
Block a user