From 8c988412d2e6a550d30edfd13b9ac696f5ac2a4c Mon Sep 17 00:00:00 2001 From: MohammadTaha Basiri Date: Fri, 1 Apr 2022 16:58:05 +0430 Subject: [PATCH] studio description html parser added --- .../widgets/studio_details_widget.dart | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/views/home/studio/studio_details/widgets/studio_details_widget.dart b/lib/views/home/studio/studio_details/widgets/studio_details_widget.dart index 60a9024..1248309 100644 --- a/lib/views/home/studio/studio_details/widgets/studio_details_widget.dart +++ b/lib/views/home/studio/studio_details/widgets/studio_details_widget.dart @@ -12,7 +12,9 @@ import 'package:didvan/views/widgets/didvan/text.dart'; import 'package:didvan/views/widgets/skeleton_image.dart'; import 'package:didvan/views/widgets/state_handlers/state_handler.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_html/flutter_html.dart'; import 'package:provider/provider.dart'; +import 'package:url_launcher/url_launcher.dart'; class StudioDetailsWidget extends StatelessWidget { final ScrollController? scrollController; @@ -46,12 +48,33 @@ class StudioDetailsWidget extends StatelessWidget { builder: (context, state) { if (state.selectedDetailsIndex == 0) { return SingleChildScrollView( - padding: const EdgeInsets.symmetric(horizontal: 20), + // padding: const EdgeInsets.symmetric(horizontal: 20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - DidvanText(state.studio.description), + ConstrainedBox( + constraints: BoxConstraints( + maxHeight: ds.height - + ds.width * 9 / 16 - + 144 - + MediaQuery.of(context).padding.top, + ), + child: Html( + data: state.studio.description, + onAnchorTap: (href, context, map, element) => + launch(href!), + style: { + '*': Style( + direction: TextDirection.rtl, + textAlign: TextAlign.right, + lineHeight: LineHeight.percent(135), + margin: EdgeInsets.zero, + padding: EdgeInsets.zero, + ), + }, + ), + ), if (state.studio.tags.isNotEmpty) const SizedBox(height: 20), Wrap(