intermediate

This commit is contained in:
Fabian Freund
2024-09-13 09:11:06 +02:00
parent 3b047b5d8a
commit 37d2c84d7f
155 changed files with 5666 additions and 1816 deletions
@@ -1,50 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
import 'package:lensai/extensions/web_uri_favicon.dart';
class FaviconImage extends StatelessWidget {
final double size;
final Icon _iconPlaceholder;
final Favicon? favicon;
final Uri url;
FaviconImage({
required this.url,
required this.favicon,
this.size = 16,
super.key,
}) : _iconPlaceholder = Icon(
MdiIcons.webBox,
size: size,
);
@override
Widget build(BuildContext context) {
if (favicon != null) {
return FadeInImage(
placeholder: NetworkImage(
url.genericFavicon().toString(),
),
image: NetworkImage(favicon!.url.toString()),
placeholderErrorBuilder: (_, __, ___) => _iconPlaceholder,
imageErrorBuilder: (_, __, ___) => Image.network(
url.genericFavicon().toString(),
errorBuilder: (_, __, ___) => _iconPlaceholder,
height: size,
width: size,
),
height: size,
width: size,
);
} else {
return Image.network(
url.genericFavicon().toString(),
errorBuilder: (_, __, ___) => _iconPlaceholder,
height: size,
width: size,
);
}
}
}
@@ -1,14 +1,14 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_material_design_icons/flutter_material_design_icons.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/domain/entities/web_page_info.dart';
import 'package:lensai/data/models/web_page_info.dart';
import 'package:lensai/features/bangs/data/models/bang_data.dart';
import 'package:lensai/features/bangs/domain/providers.dart';
import 'package:lensai/features/bangs/presentation/widgets/site_search.dart';
import 'package:lensai/features/search_browser/domain/entities/modes.dart';
import 'package:lensai/features/kagi/data/entities/modes.dart';
import 'package:lensai/features/search_browser/utils/url_builder.dart'
as uri_builder;
import 'package:lensai/features/settings/data/models/settings.dart';
@@ -24,14 +24,12 @@ import 'package:share_plus/share_plus.dart';
class WebPageDialog extends HookConsumerWidget {
final Uri url;
final WebPageInfo? precachedInfo;
final InAppWebViewController? webViewController;
final void Function()? onDismiss;
const WebPageDialog({
required this.url,
this.precachedInfo,
this.webViewController,
this.onDismiss,
super.key,
});
@@ -3,14 +3,14 @@ import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:lensai/core/logger.dart';
import 'package:lensai/domain/services/generic_website.dart';
import 'package:lensai/features/bangs/domain/providers.dart';
import 'package:lensai/features/chat_archive/domain/entities/chat_entity.dart';
import 'package:lensai/features/chat_archive/domain/repositories/archive.dart';
import 'package:lensai/features/search_browser/domain/entities/modes.dart';
import 'package:lensai/features/kagi/data/entities/modes.dart';
import 'package:lensai/features/search_browser/domain/entities/sheet.dart';
import 'package:lensai/features/search_browser/domain/providers.dart';
import 'package:lensai/features/settings/data/models/settings.dart';
@@ -243,7 +243,7 @@ class _WebViewState extends ConsumerState<WebView> {
if (selectedText != null && selectedText.isNotEmpty) {
ref.read(bottomSheetProvider.notifier).show(
CreateTab(
CreateTabSheet(
content: selectedText,
preferredTool: KagiTool.assistant,
),
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:lensai/features/web_view/domain/entities/abstract/tab.dart';
import 'package:lensai/features/web_view/presentation/widgets/favicon.dart';
import 'package:lensai/features/search_browser/presentation/widgets/favicon.dart';
class WebViewTab extends StatelessWidget {
final ITab tab;