🎨 Continued to rearrange core folders content

This commit is contained in:
2026-02-06 00:57:17 +08:00
parent 862e3b451b
commit dfcbfcb31e
154 changed files with 259 additions and 269 deletions

View File

@@ -20,7 +20,7 @@ import 'package:island/posts/posts_widgets/post/compose_toolbar.dart';
import 'package:island/posts/posts_widgets/post/publishers_modal.dart';
import 'package:island/shared/widgets/app_scaffold.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/markdown.dart';
import 'package:island/drive/content/markdown.dart';
import 'package:island/shared/widgets/responsive_sidebar.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -20,7 +20,7 @@ import 'package:island/posts/posts_widgets/post/compose_toolbar.dart';
import 'package:island/posts/posts_widgets/post/publishers_modal.dart';
import 'package:island/shared/widgets/app_scaffold.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/markdown.dart';
import 'package:island/drive/content/markdown.dart';
import 'package:island/shared/widgets/responsive_sidebar.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -20,13 +20,13 @@ import 'package:island/posts/posts_widgets/post/post_shared.dart';
import 'package:island/reports/reports_widgets/safety/abuse_report_helper.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/shared/widgets/app_scaffold.dart';
import 'package:island/core/widgets/content/cloud_file_collection.dart';
import 'package:island/drive/content/cloud_file_collection.dart';
import 'package:island/shared/widgets/extended_refresh_indicator.dart';
import 'package:island/posts/posts_widgets/compose_sheet.dart';
import 'package:island/shared/widgets/response.dart';
import 'package:island/core/utils/share_utils.dart';
import 'package:island/core/widgets/share/share_sheet.dart';
import 'package:island/thought/thought/think_sheet.dart';
import 'package:island/posts/share_utils.dart';
import 'package:island/sharing/share_sheet.dart';
import 'package:island/thoughts/think_sheet.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -24,7 +24,7 @@ import 'package:island/core/services/responsive.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/shared/widgets/app_scaffold.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/markdown.dart';
import 'package:island/drive/content/markdown.dart';
import 'package:island/posts/activity_heatmap.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:island/core/services/color_extraction.dart';

View File

@@ -2,7 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/posts/posts_models/post_tag.dart';
import 'package:island/core/utils/text.dart';
import 'package:island/core/text.dart';
part 'post_category.freezed.dart';
part 'post_category.g.dart';

View File

@@ -12,7 +12,7 @@ import 'package:island/posts/posts_models/post.dart';
import 'package:island/posts/compose.dart';
import 'package:island/posts/compose_storage_db.dart';
import 'package:island/core/services/responsive.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/posts/posts_widgets/post/compose_card.dart';
import 'package:island/posts/posts_widgets/post/compose_shared.dart';
import 'package:island/posts/posts_widgets/post/compose_state_utils.dart';

View File

@@ -8,7 +8,7 @@ import 'package:island/core/services/responsive.dart';
import 'package:island/drive/drive_service.dart';
import 'package:island/posts/posts_widgets/post/compose_shared.dart';
import 'package:island/shared/widgets/attachment_uploader.dart';
import 'package:island/core/widgets/content/attachment_preview.dart';
import 'package:island/drive/content/attachment_preview.dart';
import 'package:material_symbols_icons/symbols.dart';
/// A reusable widget for displaying attachments in compose screens.

View File

@@ -12,7 +12,7 @@ import 'package:island/posts/posts_models/publisher.dart';
import 'package:island/posts/compose.dart';
import 'package:island/posts/compose_storage_db.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/posts/posts_widgets/post/compose_attachments.dart';
import 'package:island/posts/posts_widgets/post/compose_form_fields.dart';
import 'package:island/posts/posts_widgets/post/compose_info_banner.dart';

View File

@@ -7,7 +7,7 @@ import 'package:island/posts/posts_models/post.dart';
import 'package:island/posts/compose.dart';
import 'package:island/posts/compose_storage_db.dart';
import 'package:island/core/services/event_bus.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/posts/posts_widgets/post/compose_card.dart';
import 'package:island/posts/posts_widgets/post/compose_shared.dart';
import 'package:island/posts/posts_widgets/post/compose_state_utils.dart';

View File

@@ -8,7 +8,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/posts/posts_widgets/post/compose_shared.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -4,12 +4,12 @@ import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/wallet/wallet.dart';
import 'package:island/wallet/wallet_models/wallet.dart';
import 'package:island/wallets/wallet.dart';
import 'package:island/wallets/wallet_models/wallet.dart';
import 'package:island/core/network.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/core/widgets/payment/payment_overlay.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/payment/payment_overlay.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -7,7 +7,7 @@ import 'package:island/drive/drive_models/file.dart';
import 'package:island/core/network.dart';
import 'package:island/pagination/pagination.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/shared/widgets/pagination_list.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -8,7 +8,7 @@ import 'package:island/polls/poll/poll_editor.dart';
import 'package:island/posts/posts_models/poll.dart';
import 'package:island/posts/posts_models/publisher.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/posts/posts_widgets/post/publishers_modal.dart';
import 'package:island/shared/widgets/pagination_list.dart';
import 'package:material_symbols_icons/symbols.dart';

View File

@@ -9,7 +9,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/core/services/time.dart';
import 'package:island/talker.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:path_provider/path_provider.dart';
import 'package:record/record.dart' hide Amplitude;

View File

@@ -13,7 +13,7 @@ import 'package:island/realms/realm/realms.dart';
import 'package:island/realms/realms_models/realm.dart';
import 'package:island/core/network.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -12,7 +12,7 @@ import 'package:island/posts/posts_models/post.dart';
import 'package:island/posts/compose.dart';
import 'package:island/posts/compose_storage_db.dart';
import 'package:island/core/services/responsive.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/posts/posts_widgets/post/compose_card.dart';
import 'package:island/posts/posts_widgets/post/compose_shared.dart';
import 'package:island/posts/posts_widgets/post/compose_state_utils.dart';

View File

@@ -1,9 +1,9 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/drive/upload_menu.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/posts/compose_storage_db.dart';
import 'package:island/core/widgets/shared/upload_menu.dart';
import 'package:island/posts/posts_widgets/post/compose_embed_sheet.dart';
import 'package:island/posts/posts_widgets/post/compose_shared.dart';
import 'package:island/posts/posts_widgets/post/draft_manager.dart';

View File

@@ -5,7 +5,7 @@ import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/posts/compose_storage_db.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:material_symbols_icons/symbols.dart';
class DraftManagerSheet extends HookConsumerWidget {

View File

@@ -3,7 +3,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/pagination/pagination.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/core/network.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/shared/widgets/pagination_list.dart';
final postAwardListNotifierProvider = AsyncNotifierProvider.autoDispose.family(

View File

@@ -4,12 +4,12 @@ import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/wallet/wallet_models/wallet.dart';
import 'package:island/wallets/wallet_models/wallet.dart';
import 'package:island/core/network.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/core/widgets/payment/payment_overlay.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/payment/payment_overlay.dart';
import 'package:material_symbols_icons/symbols.dart';
class PostAwardSheet extends HookConsumerWidget {

View File

@@ -13,7 +13,7 @@ import 'package:island/core/network.dart';
import 'package:island/core/translate.dart';
import 'package:island/accounts/accounts_pod.dart';
import 'package:island/posts/compose.dart';
import 'package:island/core/utils/share_utils.dart';
import 'package:island/posts/share_utils.dart';
import 'package:island/posts/posts_widgets/post/embed_view_renderer.dart';
import 'package:island/posts/posts_widgets/post/post_award_sheet.dart';
import 'package:island/posts/posts_widgets/post/post_pin_sheet.dart';
@@ -21,9 +21,9 @@ import 'package:island/posts/posts_widgets/post/post_reaction_sheet.dart';
import 'package:island/posts/posts_widgets/post/post_shared.dart';
import 'package:island/reports/reports_widgets/safety/abuse_report_helper.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/core/widgets/content/markdown.dart';
import 'package:island/core/widgets/content/image.dart';
import 'package:island/core/widgets/share/share_sheet.dart';
import 'package:island/drive/content/markdown.dart';
import 'package:island/drive/content/image.dart';
import 'package:island/sharing/share_sheet.dart';
import 'package:island/posts/posts_widgets/compose_sheet.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -5,8 +5,8 @@ import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/core/config.dart';
import 'package:island/core/widgets/content/image.dart';
import 'package:island/core/widgets/content/markdown.dart';
import 'package:island/drive/content/image.dart';
import 'package:island/drive/content/markdown.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/posts/posts_widgets/post/post_shared.dart';
import 'package:qr_flutter/qr_flutter.dart';

View File

@@ -5,7 +5,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/core/network.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -13,7 +13,7 @@ import 'package:island/posts/posts_models/post.dart';
import 'package:island/core/network.dart';
import 'package:island/core/services/time.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:island/shared/widgets/pagination_list.dart';
import 'package:island/stickers/stickers_widgets/stickers/sticker_picker.dart';
import 'package:material_symbols_icons/symbols.dart';

View File

@@ -3,7 +3,7 @@ import 'package:gap/gap.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/accounts/accounts_pod.dart';
import 'package:island/core/widgets/content/sheet.dart';
import 'package:island/drive/content/sheet_scaffold.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:island/posts/posts_widgets/post/post_quick_reply.dart';
import 'package:island/posts/posts_widgets/post/post_replies.dart';

View File

@@ -16,10 +16,10 @@ import 'package:island/core/network.dart';
import 'package:island/core/services/time.dart';
import 'package:island/posts/posts_widgets/post/post_replies_sheet.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/core/widgets/content/cloud_file_collection.dart';
import 'package:island/drive/content/cloud_file_collection.dart';
import 'package:island/drive/drive_widgets/cloud_files.dart';
import 'package:island/core/widgets/content/embed/embed_list.dart';
import 'package:island/core/widgets/content/markdown.dart';
import 'package:island/embeds/embed_list.dart';
import 'package:island/drive/content/markdown.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:styled_widget/styled_widget.dart';

View File

@@ -24,7 +24,7 @@ import 'package:island/core/services/color.dart';
import 'package:island/core/services/responsive.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/shared/widgets/app_scaffold.dart';
import 'package:island/core/widgets/content/markdown.dart';
import 'package:island/drive/content/markdown.dart';
import 'package:island/posts/activity_heatmap.dart';
import 'package:material_symbols_icons/symbols.dart';
import 'package:island/core/services/color_extraction.dart';

View File

@@ -0,0 +1,71 @@
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:island/posts/posts_models/post.dart';
import 'package:island/core/config.dart';
import 'package:island/shared/widgets/alert.dart';
import 'package:island/posts/posts_widgets/post/post_item_screenshot.dart';
import 'package:island/posts/posts_widgets/post/post_shared.dart';
import 'package:path_provider/path_provider.dart' show getTemporaryDirectory;
import 'package:screenshot/screenshot.dart';
import 'package:share_plus/share_plus.dart';
import 'package:island/core/services/analytics_service.dart';
/// Shares a post as a screenshot image
Future<void> sharePostAsScreenshot(
BuildContext context,
WidgetRef ref,
SnPost post,
) async {
if (kIsWeb) return;
final screenshotController = ScreenshotController();
showLoadingModal(context);
await screenshotController
.captureFromWidget(
ProviderScope(
overrides: [
sharedPreferencesProvider.overrideWithValue(
ref.watch(sharedPreferencesProvider),
),
repliesProvider(
post.id,
).overrideWithValue(ref.watch(repliesProvider(post.id))),
],
child: Directionality(
textDirection: TextDirection.ltr,
child: SizedBox(
width: 520,
child: PostItemScreenshot(item: post, isFullPost: true),
),
),
),
context: context,
pixelRatio: MediaQuery.of(context).devicePixelRatio,
delay: const Duration(seconds: 1),
)
.then((Uint8List? image) async {
if (image == null) return;
final directory = await getTemporaryDirectory();
final imagePath = await File('${directory.path}/image.png').create();
await imagePath.writeAsBytes(image);
if (!context.mounted) return;
hideLoadingModal(context);
final box = context.findRenderObject() as RenderBox?;
await Share.shareXFiles([
XFile(imagePath.path),
], sharePositionOrigin: box!.localToGlobal(Offset.zero) & box.size);
})
.catchError((err) {
if (context.mounted) hideLoadingModal(context);
showErrorAlert(err);
})
.whenComplete(() {
final postTypeStr = post.type == 0 ? 'regular' : 'article';
AnalyticsService().logPostShared(post.id, 'screenshot', postTypeStr);
});
}