Skip to content

Commit

Permalink
feat(*): Part of web support
Browse files Browse the repository at this point in the history
Waiting for upstream wasm migration.
  • Loading branch information
realth000 committed Aug 18, 2024
1 parent d95f493 commit 9dd3468
Show file tree
Hide file tree
Showing 161 changed files with 341 additions and 248 deletions.
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# Not bundle drift web artifacts
/web/drift_worker.dart.js
/web/sqlite3.debug.wasm
/web/sqlite3.wasm

# Genetated files
/lib/generated
*.g.dart
*.mapper.dart
*.freezed.dart

# Devtools
/devtools_options.yaml

# Miscellaneous
*.class
*.log
Expand Down
13 changes: 0 additions & 13 deletions build.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,14 @@
targets:
$default:
builders:
source_gen|combining_builder:
generate_for:
- lib/**.dart
options:
build_extensions:
'^lib/{{}}.dart': 'lib/generated/{{}}.g.dart'
slang_build_runner:
enabled: true
options:
base_locale: en
output_directory: 'lib/generated/i18n'
gitsumu|info:
generate_for:
- lib/utils/git_info.dart
options:
build_extensions:
'^lib/{{}}.dart': 'lib/generated/{{}}.gitsumu.dart'
dart_mappable_builder:
options:
build_extensions:
'lib/{{}}.dart':
- 'lib/generated/{{}}.mapper.dart'
generatedMethods: [ decode, encode, copy, stringify, equals ]

2 changes: 1 addition & 1 deletion lib/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import 'package:tsdm_client/features/settings/bloc/settings_bloc.dart';
import 'package:tsdm_client/features/settings/repositories/settings_repository.dart';
import 'package:tsdm_client/features/theme/cubit/theme_cubit.dart';
import 'package:tsdm_client/features/upgrade/repository/upgrade_repository.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/instance.dart';
import 'package:tsdm_client/routes/app_routes.dart';
import 'package:tsdm_client/shared/providers/net_client_provider/net_client_provider.dart';
Expand Down
16 changes: 13 additions & 3 deletions lib/exceptions/exceptions.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import 'package:dart_mappable/dart_mappable.dart';

part 'exceptions.mapper.dart';

/// Exception represents an error occurred in http request.
///
/// Usually the response status code is not 200.
Expand All @@ -16,17 +20,23 @@ class HttpRequestFailedException implements Exception {
///
/// Till now we manually set the status code to 999 to indicate this error, but
/// it should be refactored to a more proper way.
class HttpHandshakeFailedException implements Exception {
@MappableClass()
class HttpHandshakeFailedException
with HttpHandshakeFailedExceptionMappable
implements Exception {
/// Constructor.
const HttpHandshakeFailedException(this.message);

/// Error message.
final String message;
}

/// Invalid settings's key (aka name) when accessing settings values:
/// Invalid setting's key (aka name) when accessing settings values:
/// setting values or getting values.
class InvalidSettingsKeyException implements Exception {
@MappableClass()
class InvalidSettingsKeyException
with InvalidSettingsKeyExceptionMappable
implements Exception {
/// Constructor.
const InvalidSettingsKeyException(this.message);

Expand Down
2 changes: 1 addition & 1 deletion lib/features/authentication/bloc/authentication_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:tsdm_client/features/authentication/repository/exceptions/except
import 'package:tsdm_client/features/authentication/repository/models/models.dart';
import 'package:tsdm_client/utils/logger.dart';

part '../../../generated/features/authentication/bloc/authentication_bloc.mapper.dart';
part 'authentication_bloc.mapper.dart';
part 'authentication_event.dart';
part 'authentication_state.dart';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import 'dart:async';
import 'dart:io';
import 'dart:io' if (dart.libaray.js) 'package:web/web.dart';

import 'package:rxdart/rxdart.dart';
import 'package:tsdm_client/constants/url.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/authentication/repository/models/models.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:dart_mappable/dart_mappable.dart';
import 'package:tsdm_client/constants/url.dart';

part '../../../../generated/features/authentication/repository/models/models.mapper.dart';
part 'hash.dart';
part 'models.mapper.dart';
part 'user.dart';
part 'user_credential.dart';
2 changes: 1 addition & 1 deletion lib/features/authentication/view/login_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:go_router/go_router.dart';
import 'package:tsdm_client/features/authentication/bloc/authentication_bloc.dart';
import 'package:tsdm_client/features/authentication/repository/exceptions/exceptions.dart';
import 'package:tsdm_client/features/authentication/widgets/login_form.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/utils/show_toast.dart';

/// Page of user to login.
Expand Down
2 changes: 1 addition & 1 deletion lib/features/authentication/widgets/captcha_image.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'dart:typed_data';

import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/instance.dart';
import 'package:tsdm_client/shared/providers/net_client_provider/net_client_provider.dart';
import 'package:tsdm_client/shared/providers/providers.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/authentication/widgets/login_form.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:tsdm_client/constants/layout.dart';
import 'package:tsdm_client/features/authentication/bloc/authentication_bloc.dart';
import 'package:tsdm_client/features/authentication/repository/models/models.dart';
import 'package:tsdm_client/features/authentication/widgets/captcha_image.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/utils/logger.dart';
import 'package:tsdm_client/widgets/debounce_buttons.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/features/cache/bloc/image_cache_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import 'package:equatable/equatable.dart';
import 'package:tsdm_client/features/cache/models/models.dart';
import 'package:tsdm_client/features/cache/repository/image_cache_repository.dart';

part '../../../generated/features/cache/bloc/image_cache_bloc.mapper.dart';
part 'image_cache_bloc.mapper.dart';
part 'image_cache_event.dart';
part 'image_cache_state.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/features/cache/bloc/image_cache_trigger_cubit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'package:bloc/bloc.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:tsdm_client/features/cache/repository/image_cache_repository.dart';

part '../../../generated/features/cache/bloc/image_cache_trigger_cubit.mapper.dart';
part 'image_cache_trigger_cubit.mapper.dart';
part 'image_cache_trigger_state.dart';

/// Global cubit as a trigger to enable widgets triggering image reload.
Expand Down
2 changes: 1 addition & 1 deletion lib/features/cache/models/models.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ import 'dart:typed_data';

import 'package:dart_mappable/dart_mappable.dart';

part '../../../generated/features/cache/models/models.mapper.dart';
part 'image_cache.dart';
part 'image_cache_response.dart';
part 'models.mapper.dart';
3 changes: 2 additions & 1 deletion lib/features/chat/bloc/chat_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ import 'package:tsdm_client/features/chat/repository/chat_repository.dart';
import 'package:tsdm_client/utils/logger.dart';
import 'package:universal_html/html.dart' as uh;

part '../../../generated/features/chat/bloc/chat_bloc.mapper.dart';
part 'chat_bloc.mapper.dart';
part 'chat_event.dart';

part 'chat_state.dart';

/// Emit
Expand Down
2 changes: 1 addition & 1 deletion lib/features/chat/bloc/chat_history_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import 'package:tsdm_client/features/chat/repository/chat_repository.dart';
import 'package:tsdm_client/utils/logger.dart';
import 'package:universal_html/html.dart' as uh;

part '../../../generated/features/chat/bloc/chat_history_bloc.mapper.dart';
part 'chat_history_bloc.mapper.dart';
part 'chat_history_event.dart';
part 'chat_history_state.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/features/chat/exceptions/exceptions.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:dart_mappable/dart_mappable.dart';

part '../../../generated/features/chat/exceptions/exceptions.mapper.dart';
part 'exceptions.mapper.dart';

/// Chat html document not found.
@MappableClass()
Expand Down
2 changes: 1 addition & 1 deletion lib/features/chat/models/models.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:tsdm_client/extensions/universal_html.dart';
import 'package:tsdm_client/instance.dart';
import 'package:universal_html/html.dart' as uh;

part '../../../generated/features/chat/models/models.mapper.dart';
part 'chat_history_send_target.dart';
part 'chat_message.dart';
part 'chat_send_target.dart';
part 'models.mapper.dart';
2 changes: 1 addition & 1 deletion lib/features/chat/repository/chat_repository.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'dart:io';
import 'dart:io' if (dart.libaray.js) 'package:web/web.dart';

import 'package:tsdm_client/constants/url.dart';
import 'package:tsdm_client/exceptions/exceptions.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/chat/view/chat_history_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:tsdm_client/features/chat/bloc/chat_history_bloc.dart';
import 'package:tsdm_client/features/chat/models/editor_features.dart';
import 'package:tsdm_client/features/chat/repository/chat_repository.dart';
import 'package:tsdm_client/features/chat/widgets/chat_message_card.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/utils/retry_button.dart';
import 'package:tsdm_client/utils/show_toast.dart';
import 'package:tsdm_client/widgets/reply_bar/bloc/reply_bloc.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/chat/view/chat_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import 'package:tsdm_client/features/chat/bloc/chat_bloc.dart';
import 'package:tsdm_client/features/chat/models/editor_features.dart';
import 'package:tsdm_client/features/chat/repository/chat_repository.dart';
import 'package:tsdm_client/features/chat/widgets/chat_message_card.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/utils/retry_button.dart';
import 'package:tsdm_client/utils/show_toast.dart';
import 'package:tsdm_client/widgets/reply_bar/bloc/reply_bloc.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/bloc/emoji_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import 'package:tsdm_client/features/editor/repository/editor_repository.dart';
import 'package:tsdm_client/shared/models/models.dart';
import 'package:tsdm_client/utils/logger.dart';

part '../../../generated/features/editor/bloc/emoji_bloc.mapper.dart';
part 'emoji_bloc.mapper.dart';
part 'emoji_event.dart';
part 'emoji_state.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/exceptions/exceptions.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'package:dart_mappable/dart_mappable.dart';

part '../../../generated/features/editor/exceptions/exceptions.mapper.dart';
part 'exceptions.mapper.dart';

/// Basic exception related to emoji.
@MappableClass()
Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/repository/editor_repository.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'dart:io';
import 'dart:io' if (dart.libaray.js) 'package:web/web.dart';

import 'package:tsdm_client/constants/url.dart';
import 'package:tsdm_client/features/editor/exceptions/exceptions.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/widgets/color_bottom_sheet.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bbcode_editor/flutter_bbcode_editor.dart';
import 'package:tsdm_client/constants/layout.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/utils/show_bottom_sheet.dart';

/// Show a bottom sheet provides all available foreground colors for user to
Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/widgets/emoji_bottom_sheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:tsdm_client/constants/layout.dart';
import 'package:tsdm_client/features/cache/repository/image_cache_repository.dart';
import 'package:tsdm_client/features/editor/bloc/emoji_bloc.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/utils/retry_button.dart';
import 'package:tsdm_client/utils/show_bottom_sheet.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/widgets/image_dialog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import 'package:go_router/go_router.dart';
import 'package:tsdm_client/constants/layout.dart';
import 'package:tsdm_client/extensions/list.dart';
import 'package:tsdm_client/features/cache/repository/image_cache_repository.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/instance.dart';
import 'package:tsdm_client/shared/providers/image_cache_provider/image_cache_provider.dart';
import 'package:tsdm_client/utils/logger.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/widgets/mention_user_dialog.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bbcode_editor/flutter_bbcode_editor.dart';
import 'package:go_router/go_router.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';

/// Show a [MentionUserDialog].
Future<void> showMentionUserDialog(
Expand Down
2 changes: 1 addition & 1 deletion lib/features/editor/widgets/url_dialog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:flutter_bbcode_editor/flutter_bbcode_editor.dart';
import 'package:go_router/go_router.dart';
import 'package:tsdm_client/constants/layout.dart';
import 'package:tsdm_client/extensions/list.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';

/// Show a url dialog.
///
Expand Down
2 changes: 1 addition & 1 deletion lib/features/forum/bloc/forum_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import 'package:tsdm_client/shared/models/models.dart';
import 'package:tsdm_client/utils/logger.dart';
import 'package:universal_html/html.dart' as uh;

part '../../../generated/features/forum/bloc/forum_bloc.mapper.dart';
part 'forum_bloc.mapper.dart';
part 'forum_event.dart';
part 'forum_state.dart';

Expand Down
2 changes: 1 addition & 1 deletion lib/features/forum/models/models.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'package:dart_mappable/dart_mappable.dart';

part '../../../generated/features/forum/models/models.mapper.dart';
part 'models.mapper.dart';
part 'thread_filter.dart';
2 changes: 1 addition & 1 deletion lib/features/forum/repository/forum_repository.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import 'dart:io';
import 'dart:io' if (dart.libaray.js) 'package:web/web.dart';

import 'package:tsdm_client/exceptions/exceptions.dart';
import 'package:tsdm_client/features/forum/models/models.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/forum/view/forum_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import 'package:tsdm_client/features/forum/repository/forum_repository.dart';
import 'package:tsdm_client/features/forum/widgets/thread_filter_chip.dart';
import 'package:tsdm_client/features/jump_page/cubit/jump_page_cubit.dart';
import 'package:tsdm_client/features/need_login/view/need_login_page.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/routes/screen_paths.dart';
import 'package:tsdm_client/shared/models/models.dart';
import 'package:tsdm_client/utils/clipboard.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/forum/widgets/thread_filter_chip.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:go_router/go_router.dart';
import 'package:tsdm_client/constants/layout.dart';
import 'package:tsdm_client/features/forum/bloc/forum_bloc.dart';
import 'package:tsdm_client/features/forum/models/models.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/utils/show_bottom_sheet.dart';

/// Construct a chip that controlling and mutating thread filter state.
Expand Down
2 changes: 1 addition & 1 deletion lib/features/home/cubit/home_cubit.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:bloc/bloc.dart';
import 'package:dart_mappable/dart_mappable.dart';

part '../../../generated/features/home/cubit/home_cubit.mapper.dart';
part 'home_cubit.mapper.dart';
part 'home_state.dart';

/// Cubit of the home page of the app.
Expand Down
4 changes: 2 additions & 2 deletions lib/features/home/cubit/init_cubit.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import 'dart:io';
import 'dart:io' if (dart.libaray.js) 'package:web/web.dart';

import 'package:bloc/bloc.dart';
import 'package:dart_mappable/dart_mappable.dart';
import 'package:path_provider/path_provider.dart';

part '../../../generated/features/home/cubit/init_cubit.mapper.dart';
part 'init_cubit.mapper.dart';
part 'init_state.dart';

/// Cubit to do some initializing work during app start.
Expand Down
2 changes: 1 addition & 1 deletion lib/features/home/view/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import 'package:tsdm_client/features/home/cubit/home_cubit.dart';
import 'package:tsdm_client/features/home/cubit/init_cubit.dart';
import 'package:tsdm_client/features/home/widgets/widgets.dart';
import 'package:tsdm_client/features/settings/repositories/settings_repository.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/instance.dart';
import 'package:tsdm_client/shared/repositories/forum_home_repository/forum_home_repository.dart';
import 'package:tsdm_client/utils/show_dialog.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/features/home/widgets/widgets.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
import 'package:tsdm_client/features/home/cubit/home_cubit.dart';
import 'package:tsdm_client/generated/i18n/strings.g.dart';
import 'package:tsdm_client/i18n/strings.g.dart';
import 'package:tsdm_client/routes/screen_paths.dart';

part 'home_navigation_bar.dart';
Expand Down
3 changes: 2 additions & 1 deletion lib/features/homepage/bloc/homepage_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,9 @@ import 'package:tsdm_client/shared/repositories/forum_home_repository/forum_home
import 'package:tsdm_client/utils/logger.dart';
import 'package:universal_html/html.dart' as uh;

part '../../../generated/features/homepage/bloc/homepage_bloc.mapper.dart';
part 'homepage_bloc.mapper.dart';
part 'homepage_event.dart';

part 'homepage_state.dart';

/// Extension on [uh.Document] to extract user info.
Expand Down
Loading

0 comments on commit 9dd3468

Please sign in to comment.