WIP: android/ios-adaption feature, markdown, and augment #6
@ -23,6 +23,9 @@ class _SonicEmailViewState extends State<SonicEmailView> {
|
|||||||
void _scrollToNumber(String spanId) {
|
void _scrollToNumber(String spanId) {
|
||||||
AugmentClasses.handleJump(spanId);
|
AugmentClasses.handleJump(spanId);
|
||||||
}
|
}
|
||||||
|
void _handleViewspecs(String queryViewspecs) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
@ -90,7 +93,9 @@ class _SonicEmailViewState extends State<SonicEmailView> {
|
|||||||
children: [
|
children: [
|
||||||
EmailToolbar(
|
EmailToolbar(
|
||||||
onButtonPressed: () => {},
|
onButtonPressed: () => {},
|
||||||
onJumpToSpan: _scrollToNumber),
|
onJumpToNumbering: _scrollToNumber,
|
||||||
|
onViewspecs: _handleViewspecs
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
// title of email
|
// title of email
|
||||||
children: [
|
children: [
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import 'package:crab_ui/augment.dart';
|
||||||
import 'package:crab_ui/collapsableEmailsAndroid.dart';
|
import 'package:crab_ui/collapsableEmailsAndroid.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
// import 'dart:ui_web' as ui;
|
// import 'dart:ui_web' as ui;
|
||||||
@ -33,6 +34,16 @@ class EmailView extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _EmailViewState extends State<EmailView> {
|
class _EmailViewState extends State<EmailView> {
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void _scrollToNumber(String spanId) {
|
||||||
|
// AugmentClasses.handleJump(spanId);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
@ -43,6 +54,10 @@ class _EmailViewState extends State<EmailView> {
|
|||||||
padding: const EdgeInsets.all(8.0),
|
padding: const EdgeInsets.all(8.0),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
|
EmailToolbar(
|
||||||
|
onButtonPressed: () => {},
|
||||||
|
onJumpToSpan: _scrollToNumber
|
||||||
|
),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
//data structures
|
//data structures
|
||||||
|
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
import 'package:markdown/markdown.dart' as md;
|
|
||||||
|
|
||||||
class GetThreadResponse {
|
class GetThreadResponse {
|
||||||
final int id;
|
final int id;
|
||||||
@ -177,7 +176,7 @@ class AugmentTree {
|
|||||||
parentIsLettered = false;
|
parentIsLettered = false;
|
||||||
} else {
|
} else {
|
||||||
parentIsLettered = prefix.runes.last >= 'a'.runes.first &&
|
parentIsLettered = prefix.runes.last >= 'a'.runes.first &&
|
||||||
prefix.runes.last <= 'z'.runes.first;
|
prefix.runes.last <= 'z'.runes.first;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prefix.isEmpty) {
|
if (prefix.isEmpty) {
|
||||||
@ -197,3 +196,15 @@ class AugmentTree {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class MarkdownParsed{
|
||||||
|
final String text;
|
||||||
|
MarkdownParsed({required this.text});
|
||||||
|
factory MarkdownParsed.fromJson(Map<String, String> json){
|
||||||
|
return MarkdownParsed(
|
||||||
|
text: json['md'] ?? '',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,9 @@ dependencies:
|
|||||||
photo_view: ^0.15.0
|
photo_view: ^0.15.0
|
||||||
web: ^1.1.1
|
web: ^1.1.1
|
||||||
flutter_widget_from_html: ^0.16.0
|
flutter_widget_from_html: ^0.16.0
|
||||||
|
html2md: ^1.3.2
|
||||||
|
markdown_widget: ^2.3.2+8
|
||||||
|
markdown: ^7.3.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
Loading…
Reference in New Issue
Block a user