@digilogiclabs/create-saas-app 1.17.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/README.md +153 -12
- package/dist/.tsbuildinfo +1 -1
- package/dist/cli/commands/create.d.ts.map +1 -1
- package/dist/cli/commands/create.js +6 -2
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/prompts/project-setup.d.ts.map +1 -1
- package/dist/cli/prompts/project-setup.js +4 -0
- package/dist/cli/prompts/project-setup.js.map +1 -1
- package/dist/generators/template-generator.d.ts.map +1 -1
- package/dist/generators/template-generator.js +13 -7
- package/dist/generators/template-generator.js.map +1 -1
- package/dist/templates/mobile/base/template/App.tsx +2 -0
- package/dist/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +85 -4
- package/dist/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/.env.example +23 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/README.md +254 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +169 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/ai.tsx +522 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/analytics.tsx +668 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +743 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +676 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/orders.tsx +402 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +580 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +127 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +246 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +362 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/onboarding/index.tsx +193 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app/tour/index.tsx +272 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/app.json +93 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/babel.config.js +23 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/eas.json +45 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/expo-env.d.ts +3 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/jest-setup.ts +74 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/metro.config.js +11 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/package.json +108 -0
- package/dist/templates/mobile/ui-auth-payments-ai/template/tsconfig.json +31 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/README.md +655 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +683 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +787 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +346 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +180 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/package.json +113 -0
- package/dist/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +599 -0
- package/dist/templates/web/base/template/src/app/loading.tsx +45 -27
- package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +2 -0
- package/dist/templates/web/ui-auth/template/src/app/loading.tsx +30 -12
- package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +2 -0
- package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +43 -2
- package/dist/templates/web/ui-auth-ai/template/package.json +1 -1
- package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +2 -0
- package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +2 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/README.md +434 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +642 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +466 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +393 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +457 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +478 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +250 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/package.json +74 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +622 -0
- package/dist/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +396 -0
- package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +2 -0
- package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +2 -0
- package/package.json +1 -1
- package/src/templates/mobile/base/template/App.tsx +2 -0
- package/src/templates/mobile/ui-auth-payments/template/app/(tabs)/index.tsx +85 -4
- package/src/templates/mobile/ui-auth-payments/template/app/_layout.tsx +2 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/.env.example +23 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/README.md +254 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/_layout.tsx +169 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/ai.tsx +522 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/analytics.tsx +668 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/billing.tsx +743 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/index.tsx +676 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/orders.tsx +402 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/(tabs)/profile.tsx +580 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/_layout.tsx +127 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/login.tsx +246 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/auth/signup.tsx +362 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/onboarding/index.tsx +193 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app/tour/index.tsx +272 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/app.json +93 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/babel.config.js +23 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/eas.json +45 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/expo-env.d.ts +3 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/jest-setup.ts +74 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/metro.config.js +11 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/package.json +108 -0
- package/src/templates/mobile/ui-auth-payments-ai/template/tsconfig.json +31 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/README.md +655 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +683 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +787 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +346 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +180 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/package.json +113 -0
- package/src/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +599 -0
- package/src/templates/web/base/template/src/app/loading.tsx +45 -27
- package/src/templates/web/base/template/src/components/providers/app-providers.tsx +2 -0
- package/src/templates/web/ui-auth/template/src/app/loading.tsx +30 -12
- package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +2 -0
- package/src/templates/web/ui-auth/template/src/components/shared/header.tsx +43 -2
- package/src/templates/web/ui-auth-ai/template/package.json +1 -1
- package/src/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +2 -0
- package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +2 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/README.md +434 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +642 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +466 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +393 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +457 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +478 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +250 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/package.json +74 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +622 -0
- package/src/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +396 -0
- package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +2 -0
- package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +2 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# {{titleCaseName}} - AI-Powered Mobile SaaS
|
|
2
|
+
|
|
3
|
+
A complete mobile AI application built with React Native, Expo, and Digi Logic Labs packages. Features comprehensive AI generation capabilities including text, audio, and video generation.
|
|
4
|
+
|
|
5
|
+
## 🚀 Quick Start
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install dependencies
|
|
9
|
+
npm install
|
|
10
|
+
|
|
11
|
+
# Start the development server
|
|
12
|
+
npm run dev
|
|
13
|
+
|
|
14
|
+
# Run on iOS simulator
|
|
15
|
+
npm run ios
|
|
16
|
+
|
|
17
|
+
# Run on Android emulator
|
|
18
|
+
npm run android
|
|
19
|
+
|
|
20
|
+
# Run on web
|
|
21
|
+
npm run web
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 🤖 AI Features
|
|
25
|
+
|
|
26
|
+
### Text Generation
|
|
27
|
+
- **OpenAI GPT-4 Integration** - Advanced text generation
|
|
28
|
+
- **Multiple Templates** - Blog posts, emails, social media, code docs
|
|
29
|
+
- **Real-time Generation** - Stream responses as they're generated
|
|
30
|
+
- **Word Count Tracking** - Monitor generation length
|
|
31
|
+
- **Export Options** - Save, copy, and share generated content
|
|
32
|
+
|
|
33
|
+
### Audio Generation
|
|
34
|
+
- **ElevenLabs Integration** - High-quality voice synthesis
|
|
35
|
+
- **Multiple Voices** - Choose from 6 different AI voices
|
|
36
|
+
- **Format Support** - MP3, WAV, OGG output formats
|
|
37
|
+
- **Waveform Display** - Visual audio representation
|
|
38
|
+
- **Duration Control** - Up to 5 minutes of audio
|
|
39
|
+
|
|
40
|
+
### Video Generation
|
|
41
|
+
- **Replicate Integration** - AI-powered video creation
|
|
42
|
+
- **Style Options** - Photorealistic, cartoon, anime, watercolor
|
|
43
|
+
- **HD Output** - 1080p video generation
|
|
44
|
+
- **Preview Support** - See previews before final generation
|
|
45
|
+
- **Multiple Formats** - MP4, WebM support
|
|
46
|
+
|
|
47
|
+
### AI Chat
|
|
48
|
+
- **Interactive Chat** - Conversational AI interface
|
|
49
|
+
- **Context Retention** - Maintains conversation history
|
|
50
|
+
- **Typing Indicators** - Shows when AI is responding
|
|
51
|
+
- **Message Management** - Up to 50 messages per session
|
|
52
|
+
|
|
53
|
+
## 📱 Core Features
|
|
54
|
+
|
|
55
|
+
- **✅ Authentication** - Secure user management with Supabase
|
|
56
|
+
- **💳 Payments** - Stripe integration for subscriptions
|
|
57
|
+
- **🎨 Modern UI** - 240+ components from @digilogiclabs/saas-factory-ui v0.22.0
|
|
58
|
+
- **📱 Native Experience** - Optimized for iOS and Android
|
|
59
|
+
- **🌓 Theme Support** - Light/dark modes with system preference
|
|
60
|
+
- **🔄 Offline Support** - Cached AI responses and offline capabilities
|
|
61
|
+
- **📊 Usage Analytics** - Track AI generation statistics
|
|
62
|
+
- **🎯 Haptic Feedback** - Enhanced mobile interaction
|
|
63
|
+
|
|
64
|
+
## 🏗️ Tech Stack
|
|
65
|
+
|
|
66
|
+
- **React Native** 0.73+ with Expo 50+
|
|
67
|
+
- **TypeScript** for type safety
|
|
68
|
+
- **Expo Router** for navigation
|
|
69
|
+
- **Stripe** for payments
|
|
70
|
+
- **Supabase** for backend services
|
|
71
|
+
- **React Hook Form** + Zod for form validation
|
|
72
|
+
- **@digilogiclabs/saas-factory-ui** for UI components (v0.22.0)
|
|
73
|
+
- **@digilogiclabs/saas-factory-auth** for authentication (v1.0.1)
|
|
74
|
+
- **@digilogiclabs/saas-factory-payments** for payment processing (v1.1.0)
|
|
75
|
+
- **@digilogiclabs/saas-factory-ai** for AI capabilities (v3.0.0)
|
|
76
|
+
|
|
77
|
+
## 📦 Project Structure
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
├── app/ # Expo Router pages
|
|
81
|
+
│ ├── (tabs)/ # Main app tabs
|
|
82
|
+
│ │ ├── index.tsx # Dashboard
|
|
83
|
+
│ │ ├── ai.tsx # AI Studio with generation tools
|
|
84
|
+
│ │ ├── orders.tsx # Orders list
|
|
85
|
+
│ │ ├── analytics.tsx # Analytics dashboard
|
|
86
|
+
│ │ ├── billing.tsx # Payments & billing
|
|
87
|
+
│ │ └── profile.tsx # User profile
|
|
88
|
+
│ ├── auth/ # Authentication screens
|
|
89
|
+
│ │ ├── login.tsx # Sign in
|
|
90
|
+
│ │ └── signup.tsx # Sign up
|
|
91
|
+
│ └── _layout.tsx # Root layout with providers
|
|
92
|
+
├── components/ # Reusable components
|
|
93
|
+
├── hooks/ # Custom hooks
|
|
94
|
+
├── utils/ # Utility functions
|
|
95
|
+
├── types/ # TypeScript types
|
|
96
|
+
└── constants/ # App constants
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 🔧 Configuration
|
|
100
|
+
|
|
101
|
+
### Environment Variables
|
|
102
|
+
|
|
103
|
+
Copy `.env.example` to `.env` and update the values:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Supabase
|
|
107
|
+
EXPO_PUBLIC_SUPABASE_URL=your-supabase-url
|
|
108
|
+
EXPO_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
|
|
109
|
+
|
|
110
|
+
# Stripe
|
|
111
|
+
EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY=your-stripe-publishable-key
|
|
112
|
+
|
|
113
|
+
# AI Configuration
|
|
114
|
+
EXPO_PUBLIC_OPENAI_API_KEY=your-openai-api-key
|
|
115
|
+
EXPO_PUBLIC_ELEVENLABS_API_KEY=your-elevenlabs-api-key
|
|
116
|
+
EXPO_PUBLIC_REPLICATE_API_TOKEN=your-replicate-api-token
|
|
117
|
+
|
|
118
|
+
# App Configuration
|
|
119
|
+
EXPO_PUBLIC_APP_NAME={{titleCaseName}}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### EAS Configuration
|
|
123
|
+
|
|
124
|
+
For building and deploying with EAS Build:
|
|
125
|
+
|
|
126
|
+
1. Install EAS CLI: `npm install -g eas-cli`
|
|
127
|
+
2. Login: `eas login`
|
|
128
|
+
3. Configure: `eas build:configure`
|
|
129
|
+
4. Build: `eas build --platform all`
|
|
130
|
+
|
|
131
|
+
## 🔒 Permissions
|
|
132
|
+
|
|
133
|
+
The app requests the following permissions:
|
|
134
|
+
|
|
135
|
+
- **Camera**: Profile photos and QR code scanning
|
|
136
|
+
- **Location**: Delivery tracking and location services
|
|
137
|
+
- **Notifications**: Order updates and push notifications
|
|
138
|
+
- **Storage**: Offline caching and data storage
|
|
139
|
+
|
|
140
|
+
## 🎨 UI Components
|
|
141
|
+
|
|
142
|
+
This app uses the **@digilogiclabs/saas-factory-ui** library for native components:
|
|
143
|
+
|
|
144
|
+
- **Native Cards**: Styled containers with shadows
|
|
145
|
+
- **Native Buttons**: Various styles and states
|
|
146
|
+
- **Native Forms**: Validated input fields
|
|
147
|
+
- **Native Charts**: Data visualization
|
|
148
|
+
- **Native Navigation**: Tab bars and navigation
|
|
149
|
+
- **Native Modals**: Overlay components
|
|
150
|
+
|
|
151
|
+
## 💳 Payments Integration
|
|
152
|
+
|
|
153
|
+
Stripe integration includes:
|
|
154
|
+
|
|
155
|
+
- **Payment Methods**: Add/remove credit cards
|
|
156
|
+
- **Subscriptions**: Manage recurring payments
|
|
157
|
+
- **Invoices**: View billing history
|
|
158
|
+
- **Apple Pay**: iOS native payment method
|
|
159
|
+
- **Google Pay**: Android native payment method
|
|
160
|
+
|
|
161
|
+
## 📊 Analytics
|
|
162
|
+
|
|
163
|
+
Built-in analytics dashboard with:
|
|
164
|
+
|
|
165
|
+
- **Revenue Tracking**: Daily, weekly, monthly views
|
|
166
|
+
- **Order Analytics**: Sales and conversion metrics
|
|
167
|
+
- **Customer Insights**: User behavior and trends
|
|
168
|
+
- **Real-time Data**: Live updates and notifications
|
|
169
|
+
|
|
170
|
+
## 🧪 Testing
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Run tests
|
|
174
|
+
npm test
|
|
175
|
+
|
|
176
|
+
# Run tests with coverage
|
|
177
|
+
npm run test:coverage
|
|
178
|
+
|
|
179
|
+
# Run tests in watch mode
|
|
180
|
+
npm run test:watch
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## 🚀 Deployment
|
|
184
|
+
|
|
185
|
+
### Development Build
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Create development build
|
|
189
|
+
eas build --profile development
|
|
190
|
+
|
|
191
|
+
# Install on device
|
|
192
|
+
eas install
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Production Build
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Build for App Store/Play Store
|
|
199
|
+
eas build --profile production
|
|
200
|
+
|
|
201
|
+
# Submit to stores
|
|
202
|
+
eas submit --platform all
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## 📱 Platform Support
|
|
206
|
+
|
|
207
|
+
- **iOS**: 13.0+
|
|
208
|
+
- **Android**: API 21+ (Android 5.0)
|
|
209
|
+
- **Web**: Modern browsers (for development)
|
|
210
|
+
|
|
211
|
+
## 🔄 Updates
|
|
212
|
+
|
|
213
|
+
The app supports over-the-air updates with Expo Updates:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Publish update
|
|
217
|
+
eas update --branch production
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## 🆘 Troubleshooting
|
|
221
|
+
|
|
222
|
+
### Common Issues
|
|
223
|
+
|
|
224
|
+
1. **Metro bundler issues**: Clear cache with `expo start -c`
|
|
225
|
+
2. **Build failures**: Check EAS build logs in the dashboard
|
|
226
|
+
3. **Permission errors**: Verify permissions in app.json
|
|
227
|
+
4. **Stripe setup**: Ensure proper API keys and webhook endpoints
|
|
228
|
+
|
|
229
|
+
### Debug Mode
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# Enable debug mode
|
|
233
|
+
EXPO_PUBLIC_DEBUG=true npm run dev
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## 📄 License
|
|
237
|
+
|
|
238
|
+
This project is licensed under the MIT License. See LICENSE file for details.
|
|
239
|
+
|
|
240
|
+
## 🤝 Contributing
|
|
241
|
+
|
|
242
|
+
1. Fork the repository
|
|
243
|
+
2. Create a feature branch: `git checkout -b feature/new-feature`
|
|
244
|
+
3. Commit changes: `git commit -am 'Add new feature'`
|
|
245
|
+
4. Push to branch: `git push origin feature/new-feature`
|
|
246
|
+
5. Submit a pull request
|
|
247
|
+
|
|
248
|
+
## 📞 Support
|
|
249
|
+
|
|
250
|
+
For support and questions:
|
|
251
|
+
|
|
252
|
+
- Email: support@{{packageName}}.com
|
|
253
|
+
- Documentation: [docs.{{packageName}}.com](https://docs.{{packageName}}.com)
|
|
254
|
+
- Issues: [GitHub Issues](https://github.com/{{githubRepo}}/issues)
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { Tabs } from 'expo-router';
|
|
4
|
+
import { useAuth } from '@digilogiclabs/saas-factory-auth/native';
|
|
5
|
+
import { Redirect } from 'expo-router';
|
|
6
|
+
|
|
7
|
+
// UI Components - Updated for v0.22.0
|
|
8
|
+
import {
|
|
9
|
+
BottomTabBar,
|
|
10
|
+
PageTransition,
|
|
11
|
+
useTheme
|
|
12
|
+
} from '@digilogiclabs/saas-factory-ui/native';
|
|
13
|
+
|
|
14
|
+
// Icons
|
|
15
|
+
import {
|
|
16
|
+
Home,
|
|
17
|
+
User,
|
|
18
|
+
Settings,
|
|
19
|
+
CreditCard,
|
|
20
|
+
BarChart3,
|
|
21
|
+
ShoppingBag,
|
|
22
|
+
Sparkles
|
|
23
|
+
} from 'react-native-heroicons/outline';
|
|
24
|
+
import {
|
|
25
|
+
Home as HomeSolid,
|
|
26
|
+
User as UserSolid,
|
|
27
|
+
Settings as SettingsSolid,
|
|
28
|
+
CreditCard as CreditCardSolid,
|
|
29
|
+
BarChart3 as BarChart3Solid,
|
|
30
|
+
ShoppingBag as ShoppingBagSolid,
|
|
31
|
+
Sparkles as SparklesSolid
|
|
32
|
+
} from 'react-native-heroicons/solid';
|
|
33
|
+
|
|
34
|
+
// Tab configuration for BottomTabBar
|
|
35
|
+
const tabConfig = [
|
|
36
|
+
{
|
|
37
|
+
id: 'index',
|
|
38
|
+
label: 'Home',
|
|
39
|
+
icon: Home,
|
|
40
|
+
activeIcon: HomeSolid,
|
|
41
|
+
route: '/dashboard'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'ai',
|
|
45
|
+
label: 'AI Studio',
|
|
46
|
+
icon: Sparkles,
|
|
47
|
+
activeIcon: SparklesSolid,
|
|
48
|
+
route: '/ai',
|
|
49
|
+
badge: 'NEW'
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'orders',
|
|
53
|
+
label: 'Orders',
|
|
54
|
+
icon: ShoppingBag,
|
|
55
|
+
activeIcon: ShoppingBagSolid,
|
|
56
|
+
route: '/orders'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'analytics',
|
|
60
|
+
label: 'Analytics',
|
|
61
|
+
icon: BarChart3,
|
|
62
|
+
activeIcon: BarChart3Solid,
|
|
63
|
+
route: '/analytics'
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: 'billing',
|
|
67
|
+
label: 'Billing',
|
|
68
|
+
icon: CreditCard,
|
|
69
|
+
activeIcon: CreditCardSolid,
|
|
70
|
+
route: '/billing'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: 'profile',
|
|
74
|
+
label: 'Profile',
|
|
75
|
+
icon: User,
|
|
76
|
+
activeIcon: UserSolid,
|
|
77
|
+
route: '/profile'
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
|
|
81
|
+
export default function TabLayout() {
|
|
82
|
+
const { user, loading } = useAuth();
|
|
83
|
+
const { colors } = useTheme();
|
|
84
|
+
|
|
85
|
+
// Show loading state while checking authentication
|
|
86
|
+
if (loading) {
|
|
87
|
+
return null; // or a loading component
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Redirect to auth if user is not authenticated
|
|
91
|
+
if (!user) {
|
|
92
|
+
return <Redirect href="/auth/login" />;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return (
|
|
96
|
+
<PageTransition type="slide" direction="horizontal">
|
|
97
|
+
<View style={{ flex: 1 }}>
|
|
98
|
+
<Tabs
|
|
99
|
+
screenOptions={{
|
|
100
|
+
headerShown: false,
|
|
101
|
+
tabBarStyle: { display: 'none' } // Hide default tab bar since we use BottomTabBar
|
|
102
|
+
}}
|
|
103
|
+
>
|
|
104
|
+
<Tabs.Screen
|
|
105
|
+
name="index"
|
|
106
|
+
options={{
|
|
107
|
+
title: 'Dashboard',
|
|
108
|
+
}}
|
|
109
|
+
/>
|
|
110
|
+
<Tabs.Screen
|
|
111
|
+
name="ai"
|
|
112
|
+
options={{
|
|
113
|
+
title: 'AI Studio',
|
|
114
|
+
}}
|
|
115
|
+
/>
|
|
116
|
+
<Tabs.Screen
|
|
117
|
+
name="orders"
|
|
118
|
+
options={{
|
|
119
|
+
title: 'Orders',
|
|
120
|
+
}}
|
|
121
|
+
/>
|
|
122
|
+
<Tabs.Screen
|
|
123
|
+
name="analytics"
|
|
124
|
+
options={{
|
|
125
|
+
title: 'Analytics',
|
|
126
|
+
}}
|
|
127
|
+
/>
|
|
128
|
+
<Tabs.Screen
|
|
129
|
+
name="billing"
|
|
130
|
+
options={{
|
|
131
|
+
title: 'Billing',
|
|
132
|
+
}}
|
|
133
|
+
/>
|
|
134
|
+
<Tabs.Screen
|
|
135
|
+
name="profile"
|
|
136
|
+
options={{
|
|
137
|
+
title: 'Profile',
|
|
138
|
+
}}
|
|
139
|
+
/>
|
|
140
|
+
</Tabs>
|
|
141
|
+
|
|
142
|
+
{/* Enhanced BottomTabBar from v0.22.0 */}
|
|
143
|
+
<BottomTabBar
|
|
144
|
+
tabs={tabConfig}
|
|
145
|
+
activeTabId="index" // This should be dynamic based on current route
|
|
146
|
+
onTabPress={(tabId) => {
|
|
147
|
+
// Handle tab navigation
|
|
148
|
+
console.log('Tab pressed:', tabId);
|
|
149
|
+
}}
|
|
150
|
+
style={{
|
|
151
|
+
position: 'absolute',
|
|
152
|
+
bottom: 16,
|
|
153
|
+
left: 16,
|
|
154
|
+
right: 16,
|
|
155
|
+
borderRadius: 24,
|
|
156
|
+
shadowColor: '#000',
|
|
157
|
+
shadowOffset: { width: 0, height: 8 },
|
|
158
|
+
shadowOpacity: 0.12,
|
|
159
|
+
shadowRadius: 24,
|
|
160
|
+
elevation: 12,
|
|
161
|
+
}}
|
|
162
|
+
variant="floating"
|
|
163
|
+
showLabels={true}
|
|
164
|
+
hapticFeedback={true}
|
|
165
|
+
/>
|
|
166
|
+
</View>
|
|
167
|
+
</PageTransition>
|
|
168
|
+
);
|
|
169
|
+
}
|