Skip to content

Commit

Permalink
fix: added the svg rendered and the issue in github tracker dnfield/f…
Browse files Browse the repository at this point in the history
  • Loading branch information
JoSeTe4ever committed Sep 13, 2024
1 parent 4086223 commit 3d13f5e
Show file tree
Hide file tree
Showing 3 changed files with 94 additions and 31 deletions.
91 changes: 91 additions & 0 deletions lib/presentation/screens/birth_info/birth_info_screen.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
import 'package:flutter/material.dart';

import '../../../core/services/astrology-service.dart';
import '../../../domain/entities/birth_card_request.dart';
import '../../widgets/birth/birth_chart.dart';

class BirthInfoScreen extends StatefulWidget {
const BirthInfoScreen({super.key});

@override
State<BirthInfoScreen> createState() => _BirthInfoScreenState();
}

class _BirthInfoScreenState extends State<BirthInfoScreen> {
final AstrologyService _astrologyService = AstrologyService();
String? _svgData;
bool _isLoading = false;
String? _errorMessage;

@override
void initState() {
super.initState();
_fetchBirthCard();
}

Future<void> _fetchBirthCard() async {
setState(() {
_isLoading = true;
_errorMessage = null;
});
final subject = Subject(
year: 1980,
month: 12,
day: 12,
hour: 12,
minute: 12,
longitude: 0.0,
latitude: 51.4825766,
city: 'London',
nation: 'GB',
timezone: 'Europe/London',
name: 'John Doe',
zodiacType: 'Tropic',
siderealMode: null,
);
final request = BirthCardRequest(
subject: subject,
theme: 'classic',
language: 'EN',
);
try {
final response = await _astrologyService.getBirthCard(request.toJson());
setState(() {
_svgData = response['chart'];

RegExp regex = RegExp(r"<svg.*?>([\s\S]*?)<\/svg>");
Match? match = regex.firstMatch(_svgData!);

if (match != null) {
_svgData = match.group(0) ?? "";
}

_isLoading = false;

});
} catch (e) {
setState(() {
_errorMessage = 'Failed to load birth card: $e';
_isLoading = false;
});
}
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Birth Info'),
),
body: Center(
child: _isLoading
? CircularProgressIndicator()
: _errorMessage != null
? Text(_errorMessage!)
: _svgData != null
? BirthChart(svgData: _svgData!)
: Text('No data available'),
),
);
}
}
4 changes: 3 additions & 1 deletion lib/presentation/screens/splash/slides/welcome_page.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import 'package:first_app/presentation/screens/counter_screen.dart';
import 'package:flutter/material.dart';

import '../../birth_info/birth_info_screen.dart';

class WelcomePage extends StatelessWidget {
const WelcomePage({super.key});

Expand All @@ -22,7 +24,7 @@ class WelcomePage extends StatelessWidget {
// Navigate to the next screen
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => CounterScreen()),
MaterialPageRoute(builder: (context) => BirthInfoScreen()),
);
},
child: Text('Get Started'),
Expand Down
30 changes: 0 additions & 30 deletions test/widget_test.dart

This file was deleted.

0 comments on commit 3d13f5e

Please sign in to comment.