Skip to content

Commit

Permalink
update tools
Browse files Browse the repository at this point in the history
  • Loading branch information
laiiihz committed Nov 16, 2023
1 parent 233d874 commit 86454c6
Show file tree
Hide file tree
Showing 37 changed files with 903 additions and 1,114 deletions.
31 changes: 3 additions & 28 deletions lib/models/app_atom.dart
Original file line number Diff line number Diff line change
@@ -1,32 +1,7 @@
// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'package:alga/models/app_category.dart';
import 'package:alga/routers/app_router.dart';
import 'package:alga/tools/converters/abs_length_converter/abs_length_converter_view.dart';
import 'package:alga/tools/converters/color_converter/color_converter_view.dart';
import 'package:alga/tools/converters/json_yaml_converter/json_yaml_converter_view.dart';
import 'package:alga/tools/converters/number_base_converter/number_base_converter_view.dart';
import 'package:alga/tools/encoders_decoders/base_64_encoder_decoder/base_64_encoder_decoder.dart';
import 'package:alga/tools/encoders_decoders/gzip_compress_decompress/gzip_compress_decompress_view.dart';
import 'package:alga/tools/encoders_decoders/jwt_decoder/jwt_decoder_view.dart';
import 'package:alga/tools/encoders_decoders/uri_encoder_decoder/uri_encoder_decoder.dart';
import 'package:alga/tools/encoders_decoders/uri_parser/uri_parser_view.dart';
import 'package:alga/tools/formatters/dart/dart_format.dart';
import 'package:alga/tools/formatters/json/json_format.dart';
import 'package:alga/tools/generators/hash_generator/hash_gen.dart';
import 'package:alga/tools/generators/lorem_ipsum_generator/lorem_ipsum_gen.dart';
import 'package:alga/tools/generators/password_generator/password_gen.dart';
import 'package:alga/tools/generators/random_file_generator/random_file_generator_view.dart';
import 'package:alga/tools/generators/sass_css_generator/sass2css.dart';
import 'package:alga/tools/generators/uuid_generator/uuid_gen.dart';
import 'package:alga/tools/image_tools/blur_hash_tool/blur_hash.dart';
import 'package:alga/tools/image_tools/qrcode_tool/qrcode.dart';
import 'package:alga/tools/info/device_info/device_info.dart';
import 'package:alga/tools/info/network_info/network_info_view.dart';
import 'package:alga/tools/js_tools/quick_js_tool/quick_js_view.dart';
import 'package:alga/tools/server_tools/static_server_tool/static_server_tool_view.dart';
import 'package:alga/tools/text_tools/date_parser/date_parser_view.dart';
import 'package:alga/tools/text_tools/markdown_preview/markdown_preview_view.dart';
import 'package:alga/tools/text_tools/regex_tester/regex_tester.dart';
import 'package:alga/tools/tools.dart';
import 'package:alga/ui/widgets/svg_asset_icon.dart';
import 'package:alga/utils/constants/import_helper.dart';

Expand Down Expand Up @@ -273,13 +248,13 @@ class AppAtom {
static final jsonFormatter = AppAtom(
icon: const SvgAssetIcon('assets/icons/json.svg', colorIcon: true),
title: (context) => context.tr.formatterJson,
path: JsonFormatRoute().location,
path: JsonFormatterRoute().location,
categories: [AppCategory.formatter],
);
static final dartFormatter = AppAtom(
icon: const SvgAssetIcon('assets/icons/dart.svg', colorIcon: true),
title: (context) => context.tr.formatterDart,
path: DartFormatRoute().location,
path: DartFormatterRoute().location,
categories: [AppCategory.formatter],
);

Expand Down
32 changes: 3 additions & 29 deletions lib/routers/app_router.dart
Original file line number Diff line number Diff line change
@@ -1,28 +1,4 @@
import 'package:alga/tools/converters/abs_length_converter/abs_length_converter_view.dart';
import 'package:alga/tools/converters/color_converter/color_converter_view.dart';
import 'package:alga/tools/converters/json_yaml_converter/json_yaml_converter_view.dart';
import 'package:alga/tools/converters/number_base_converter/number_base_converter_view.dart';
import 'package:alga/tools/encoders_decoders/base_64_encoder_decoder/base_64_encoder_decoder.dart';
import 'package:alga/tools/encoders_decoders/gzip_compress_decompress/gzip_compress_decompress_view.dart';
import 'package:alga/tools/encoders_decoders/jwt_decoder/jwt_decoder_view.dart';
import 'package:alga/tools/encoders_decoders/uri_encoder_decoder/uri_encoder_decoder.dart';
import 'package:alga/tools/encoders_decoders/uri_parser/uri_parser_view.dart';
import 'package:alga/tools/formatters/dart/dart_format.dart';
import 'package:alga/tools/formatters/json/json_format.dart';
import 'package:alga/tools/generators/hash_generator/hash_gen.dart';
import 'package:alga/tools/generators/lorem_ipsum_generator/lorem_ipsum_gen.dart';
import 'package:alga/tools/generators/password_generator/password_gen.dart';
import 'package:alga/tools/generators/random_file_generator/random_file_generator_view.dart';
import 'package:alga/tools/generators/sass_css_generator/sass2css.dart';
import 'package:alga/tools/generators/uuid_generator/uuid_gen.dart';
import 'package:alga/tools/image_tools/blur_hash_tool/blur_hash.dart';
import 'package:alga/tools/image_tools/qrcode_tool/qrcode.dart';
import 'package:alga/tools/info/device_info/device_info.dart';
import 'package:alga/tools/info/network_info/network_info_view.dart';
import 'package:alga/tools/js_tools/quick_js_tool/quick_js_view.dart';
import 'package:alga/tools/server_tools/static_server_tool/static_server_tool_view.dart';
import 'package:alga/tools/text_tools/date_parser/date_parser_view.dart';
import 'package:alga/tools/text_tools/markdown_preview/markdown_preview_view.dart';
import 'package:alga/tools/tools.dart';
import 'package:alga/ui/alga_view/alga_view.dart';
import 'package:alga/ui/alga_view/all_apps/alga_app_view.dart';
import 'package:alga/ui/views/favorite_view.dart';
Expand All @@ -32,8 +8,6 @@ import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';

import '../tools/text_tools/regex_tester/regex_tester.dart';

part 'app_router.g.dart';

final GlobalKey<NavigatorState> _routerKey =
Expand Down Expand Up @@ -74,8 +48,8 @@ GoRouter appRouter(AppRouterRef ref) {
path: 'gzip-compress-decompress'),
TypedGoRoute<JWTDecoderRoute>(path: 'jwt-decoder'),
TypedGoRoute<UriParserRoute>(path: 'uri-parser'),
TypedGoRoute<JsonFormatRoute>(path: 'json-format'),
TypedGoRoute<DartFormatRoute>(path: 'dart-format'),
TypedGoRoute<JsonFormatterRoute>(path: 'json-format'),
TypedGoRoute<DartFormatterRoute>(path: 'dart-format'),
TypedGoRoute<StaticServerToolRoute>(path: 'static-server-tool'),
TypedGoRoute<DeviceInfoRoute>(path: 'device-info'),
TypedGoRoute<NetworkInfoRoute>(path: 'network-info'),
Expand Down
14 changes: 8 additions & 6 deletions lib/routers/app_router.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions lib/tools/encoders_decoders/uri_parser/urI_parser.provider.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import 'package:riverpod_annotation/riverpod_annotation.dart';

import 'uri_parser.dart';

part 'urI_parser.provider.g.dart';

@riverpod
(Uri?, String?) uri(UriRef ref) {
final content = ref.watch(useContent);
if (content.isEmpty) return (null, null);
try {
return (Uri.parse(content), null);
} on FormatException catch (e) {
return (null, e.message);
}
}
24 changes: 24 additions & 0 deletions lib/tools/encoders_decoders/uri_parser/urI_parser.provider.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

116 changes: 116 additions & 0 deletions lib/tools/encoders_decoders/uri_parser/uri_parser.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
import 'dart:convert';

import 'package:alga/l10n/l10n.dart';
import 'package:alga/tools/encoders_decoders/uri_parser/urI_parser.provider.dart';
import 'package:alga/tools/tools.provider.dart';
import 'package:alga/ui/widgets/app_text_field.dart';
import 'package:alga/ui/widgets/buttons/clear_button.dart';
import 'package:alga/ui/widgets/buttons/copy_button.dart';
import 'package:alga/ui/widgets/configurations/configurations.dart';
import 'package:alga/ui/widgets/scaffold/scrollable_scaffold.dart';
import 'package:alga/ui/widgets/toolbar/alga_toolbar.dart';
import 'package:alga/ui/widgets/toolbar/toolbar_paste.dart';
import 'package:alga/utils/extension/list_ext.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:language_textfield/language_textfield.dart';

final useContent = stringConfigProvider(const Key('content'));

class UriParserRoute extends GoRouteData {
@override
Widget build(BuildContext context, GoRouterState state) {
return const UriParserPage();
}
}

class UriParserPage extends ConsumerStatefulWidget {
const UriParserPage({super.key});

@override
ConsumerState<ConsumerStatefulWidget> createState() => _UriParserPageState();
}

class _UriParserPageState extends ConsumerState<UriParserPage> {
// TODO(laiiihz): uri highlight
final _controller = TextEditingController();
@override
void initState() {
super.initState();
_controller.addListener(() {
ref.read(useContent.notifier).change(_controller.text);
});
}

@override
void dispose() {
_controller.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
final result = ref.watch(uriProvider);
final currentUri = result.$1 ?? Uri();
return ScrollableScaffold(
title: Text(context.tr.uriParser),
children: [
AlgaToolbar(
title: Text(context.tr.input),
actions: [
ToolbarPaste(controller: _controller),
ClearButton(controller: _controller),
],
),
TextField(
controller: _controller,
decoration: InputDecoration(errorText: result.$2),
),
CrossFade(
state: result.$1 != null,
first: Padding(
padding: const EdgeInsets.symmetric(vertical: 8),
child: Column(
children: <Widget>[
...{
if (currentUri.hasScheme)
context.tr.uriScheme: currentUri.scheme,
context.tr.hostName: currentUri.host,
if (currentUri.hasPort)
context.tr.uriPort: currentUri.port.toString(),
context.tr.uriPath: currentUri.path,
if (currentUri.hasScheme)
context.tr.uriOrigin: currentUri.origin,
if (currentUri.hasAuthority)
'authority': currentUri.authority,
}.entries.map((e) {
return AppTextField(
text: e.value,
decoration: InputDecoration(
labelText: e.key,
suffixIcon: CopyButton(() => e.value),
),
);
}),
if (currentUri.hasQuery)
Builder(builder: (context) {
final text = const JsonEncoder.withIndent(' ')
.convert(currentUri.queryParameters);
return AppTextField(
language: HighlightType.json,
text: text,
decoration: InputDecoration(
labelText: context.tr.uriParams,
suffixIcon: CopyButton(() => text),
),
);
}),
].sep(const SizedBox(height: 8)),
),
),
),
],
);
}
}
47 changes: 0 additions & 47 deletions lib/tools/encoders_decoders/uri_parser/uri_parser_provider.dart

This file was deleted.

Loading

0 comments on commit 86454c6

Please sign in to comment.