fix: sync deps doesn't support on web (#1181)

This commit is contained in:
Lucas 2026-01-28 14:16:38 +08:00 • committed by GitHub
commit 879305dead
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 34 additions and 9 deletions

1
example/.gitignore vendored
View file

@ -35,7 +35,6 @@ migrate_working_dir/
/build/
# Web related
lib/generated_plugin_registrant.dart
# Symbolication related
app.*.symbols

View file

@ -0,0 +1,18 @@
// Stub file for web - provides empty File class
// This file is used when building for web to avoid dart:io dependency
class File {
File(String path);
Future<void> writeAsString(String contents) async {
throw UnsupportedError('File operations are not supported on web');
}
Future<void> writeAsBytes(List<int> bytes) async {
throw UnsupportedError('File operations are not supported on web');
}
Future<String> readAsString() async {
throw UnsupportedError('File operations are not supported on web');
}
}

View file

@ -1,6 +1,6 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:io' if (dart.library.html) 'package:example/file_io_stub.dart';
import 'dart:math';
import 'package:appflowy_editor/appflowy_editor.dart';
@ -416,7 +416,7 @@ class _HomePageState extends State<HomePage> {
}
} else {
// for desktop
final path = await FilePicker.platform.saveFile(
final path = await FilePicker.saveFile(
fileName: 'document.${fileType.extension}',
);
if (path != null) {
@ -444,7 +444,7 @@ class _HomePageState extends State<HomePage> {
}
void _importFile(ExportFileType fileType) async {
final result = await FilePicker.platform.pickFiles(
final result = await FilePicker.pickFiles(
allowMultiple: false,
allowedExtensions: [fileType.extension],
type: FileType.custom,

View file

@ -1,5 +1,6 @@
import 'package:appflowy_editor/appflowy_editor.dart';
import 'package:appflowy_editor_sync_plugin/appflowy_editor_sync_utility_functions.dart';
import 'package:appflowy_editor_sync_plugin/appflowy_editor_sync_utility_functions.dart'
if (dart.library.html) 'package:example/sync_plugin_stub.dart';
import 'package:example/home_page.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

View file

@ -163,6 +163,7 @@ class _DesktopEditorState extends State<DesktopEditor> {
),
),
);
// Add a hover menu to the linked text.
if (rects.isNotEmpty && textInsert.attributes?.href != null) {
widgets.add(

View file

@ -0,0 +1,6 @@
// Stub file for web - provides empty implementation
class AppflowyEditorSyncUtilityFunctions {
static Future<void> initAppFlowyEditorSync() async {
// No-op on web
}
}

View file

@ -42,7 +42,7 @@ dependencies:
google_fonts: ^6.1.0
flutter_localizations:
sdk: flutter
file_picker: ^10.2.0
file_picker: ^10.3.0
universal_html: ^2.0.8
highlight: ^0.7.0
http: ^1.1.0

View file

@ -4,7 +4,7 @@ import 'package:file_picker/file_picker.dart' as fp;
class FilePicker implements FilePickerService {
@override
Future<String?> getDirectoryPath({String? title}) {
return fp.FilePicker.platform.getDirectoryPath();
return fp.FilePicker.getDirectoryPath();
}
@override
@ -19,7 +19,7 @@ class FilePicker implements FilePickerService {
bool withReadStream = false,
bool lockParentWindow = false,
}) async {
final result = await fp.FilePicker.platform.pickFiles(
final result = await fp.FilePicker.pickFiles(
dialogTitle: dialogTitle,
initialDirectory: initialDirectory,
type: type,
@ -43,7 +43,7 @@ class FilePicker implements FilePickerService {
List<String>? allowedExtensions,
bool lockParentWindow = false,
}) {
return fp.FilePicker.platform.saveFile(
return fp.FilePicker.saveFile(
dialogTitle: dialogTitle,
fileName: fileName,
initialDirectory: initialDirectory,