Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
5bb8449
refactor: folder strcuture
LucasXu0 Mar 17, 2025
79bf6f7
refactor: folder view item
LucasXu0 Mar 17, 2025
0598efb
refactor: folder views
LucasXu0 Mar 17, 2025
5aba19c
feat: support depth and root_view_id
LucasXu0 Mar 17, 2025
0736478
feat: support switch space
LucasXu0 Mar 17, 2025
708893c
feat: update folder views after switching to another workspace
LucasXu0 Mar 17, 2025
07255c1
feat: expose add view, update view, add space and update space api
LucasXu0 Mar 18, 2025
bd08309
Merge branch 'main' into refactor_folder_strucuture
LucasXu0 Mar 18, 2025
300bdf2
feat: expose more folder apis
LucasXu0 Mar 18, 2025
c878c24
feat: integrate folder api in folder blok event
LucasXu0 Mar 18, 2025
9cf05a5
feat: integrate folder bloc event in folder bloc
LucasXu0 Mar 18, 2025
d70fe9d
fix: view bloc provider issue
LucasXu0 Mar 18, 2025
c09d3f8
feat: rename page
LucasXu0 Mar 18, 2025
bffc613
feat: integrate create space, delete page, update page
LucasXu0 Mar 18, 2025
9232496
feat: add download button in file block
LucasXu0 Mar 18, 2025
a295d91
Merge branch 'main' into refactor_folder_strucuture
LucasXu0 Mar 19, 2025
00c1686
feat: refactor the view bloc
LucasXu0 Mar 19, 2025
27e1b1f
feat: refactor delete, duplicate api
LucasXu0 Mar 19, 2025
f490e1c
feat: refactor move api
LucasXu0 Mar 19, 2025
688fddf
feat: refactor move api
LucasXu0 Mar 19, 2025
295f7aa
feat: create space, update space
LucasXu0 Mar 20, 2025
527c24a
chore: replace viewpb with folderviewpb
LucasXu0 Mar 20, 2025
2f56548
chore: remove space id from workspace service
LucasXu0 Mar 20, 2025
03aa4cf
feat: integrate new apis in folder view bloc
LucasXu0 Mar 20, 2025
95e0531
feat: refresh folder after editing pages
LucasXu0 Mar 20, 2025
8548d65
refactor: space popup
LucasXu0 Mar 20, 2025
67f6464
feat: duplicate space
LucasXu0 Mar 20, 2025
80c3922
feat: manage space
LucasXu0 Mar 20, 2025
e96e433
feat: delete space
LucasXu0 Mar 20, 2025
7cb3037
feat: add workspace service, space service and page service
LucasXu0 Mar 20, 2025
549ed6d
chore: update Arabic translations (#7571)
FakhriAz Mar 19, 2025
5ebb3be
fix: toolbar tooltip message is incorrect on Windows (#7572)
asjqkkkk Mar 19, 2025
d50c447
chore: rename the local ai plugin
appflowy Mar 19, 2025
9988702
chore: adjust UI
appflowy Mar 19, 2025
8cbede9
chore: remove test
appflowy Mar 19, 2025
ed15656
fix: continue writing empty text case (#7574)
richardshiue Mar 19, 2025
d7797d9
chore: bump lai commit
appflowy Mar 19, 2025
b04bef7
chore: completion stream v2
appflowy Mar 20, 2025
52fad6b
chore: callback
appflowy Mar 20, 2025
4a5d9bc
feat: allow user scroll during generation (#7559)
richardshiue Mar 20, 2025
9ab3599
chore: ai writer more actions (#7576)
richardshiue Mar 20, 2025
0db5eaa
chore: implement ui
richardshiue Mar 20, 2025
b45febc
chore: update local ai commit
appflowy Mar 20, 2025
b488236
chore: update client api
appflowy Mar 21, 2025
f8ae251
chore: fix test
appflowy Mar 21, 2025
2362cf0
chore: fix test
richardshiue Mar 21, 2025
f985fec
chore: remove actions in explanation when not explain
richardshiue Mar 21, 2025
42669a9
chore: revert podfile changes and update error
richardshiue Mar 21, 2025
1190203
chore: don't allow double register two ai nodes
richardshiue Mar 21, 2025
e71c913
chore: upgrade lai commit
appflowy Mar 21, 2025
4b50c58
feat: add favorite / recent apis
LucasXu0 Mar 21, 2025
d38c3e2
chore: rename folder strucuture
LucasXu0 Mar 21, 2025
180f3b3
chore: rename folder strucuture
LucasXu0 Mar 21, 2025
4ab2aa3
feat: add favorite list
LucasXu0 Mar 21, 2025
dd8830c
feat: refactor favorite list
LucasXu0 Mar 21, 2025
58cd4d1
Merge branch 'main' into refactor_folder_strucuture
LucasXu0 Mar 24, 2025
cfb8d41
feat: add folder sql
LucasXu0 Mar 24, 2025
4f80c38
feat: add folder_table
LucasXu0 Mar 24, 2025
712edb7
feat: add folder page notification
LucasXu0 Mar 24, 2025
a5c2f99
feat: add DidUpdateFolderPages notification
LucasXu0 Mar 25, 2025
432482f
feat: add operation table
LucasXu0 Mar 25, 2025
63ac12c
feat: support update page offline
LucasXu0 Mar 25, 2025
05e8525
feat: support update page offline
LucasXu0 Mar 25, 2025
cdff0b5
Merge branch 'main' into refactor_folder_strucuture
LucasXu0 Mar 26, 2025
8ec2fed
chore: optimize sync worker
LucasXu0 Mar 26, 2025
4cca6d6
chore: rename folder strucuture
LucasXu0 Mar 26, 2025
0d0d94b
feat: add sync worker space ops
LucasXu0 Mar 26, 2025
61eff0c
feat: support delete page in offline mode
LucasXu0 Mar 26, 2025
9736d79
feat: add sync worker api to http_service
LucasXu0 Mar 26, 2025
f9282bc
feat: add sync worker callback
LucasXu0 Mar 26, 2025
0d589ee
feat: send notification to client if there're no pending ops
LucasXu0 Mar 26, 2025
9b5eccd
feat: add sync pending ops notification
LucasXu0 Mar 26, 2025
cafaa09
fix: repeated notifcations
LucasXu0 Mar 26, 2025
a4170f7
fix: unable to reload the pages
LucasXu0 Mar 26, 2025
cdc3b20
Merge branch 'main' into refactor_folder_strucuture
LucasXu0 Mar 27, 2025
579a806
feat: support trash table
LucasXu0 Mar 28, 2025
07daee3
feat: support favorite table
LucasXu0 Mar 28, 2025
91b2499
chore: update schema
LucasXu0 Mar 30, 2025
7675615
Merge branch 'main' into refactor_folder_strucuture
LucasXu0 Mar 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
216 changes: 108 additions & 108 deletions frontend/.vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,122 +4,122 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
// This task only builds the Dart code of AppFlowy.
// It supports both the desktop and mobile version.
"name": "AF: Build Dart Only",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"env": {
"RUST_LOG": "debug",
},
// uncomment the following line to testing performance.
// "flutterMode": "profile",
"cwd": "${workspaceRoot}/appflowy_flutter"
{
// This task only builds the Dart code of AppFlowy.
// It supports both the desktop and mobile version.
"name": "AF: Build Dart Only",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"env": {
"RUST_LOG": "debug"
},
{
// This task builds the Rust and Dart code of AppFlowy.
"name": "AF-desktop: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core",
"env": {
"RUST_LOG": "trace",
"RUST_BACKTRACE": "1"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
// uncomment the following line to testing performance.
// "flutterMode": "profile",
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
// This task builds the Rust and Dart code of AppFlowy.
"name": "AF-desktop: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core",
"env": {
"RUST_LOG": "trace",
"RUST_BACKTRACE": "1"
},
{
// This task builds will:
// - call the clean task,
// - rebuild all the generated Files (including freeze and language files)
// - rebuild the the Rust and Dart code of AppFlowy.
"name": "AF-desktop: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
// This task builds will:
// - call the clean task,
// - rebuild all the generated Files (including freeze and language files)
// - rebuild the the Rust and Dart code of AppFlowy.
"name": "AF-desktop: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All",
"env": {
"RUST_LOG": "trace"
},
{
"name": "AF-iOS: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core For iOS",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-iOS: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core For iOS",
"env": {
"RUST_LOG": "trace"
},
{
"name": "AF-iOS: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (iOS)",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-iOS: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (iOS)",
"env": {
"RUST_LOG": "trace"
},
{
"name": "AF-iOS-Simulator: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core For iOS Simulator",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-iOS-Simulator: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core For iOS Simulator",
"env": {
"RUST_LOG": "trace"
},
{
"name": "AF-iOS-Simulator: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (iOS Simulator)",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-iOS-Simulator: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (iOS Simulator)",
"env": {
"RUST_LOG": "trace"
},
{
"name": "AF-Android: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core For Android",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-Android: Build All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Build Appflowy Core For Android",
"env": {
"RUST_LOG": "trace"
},
{
"name": "AF-Android: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (Android)",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-desktop: Debug Rust",
"type": "lldb",
"request": "attach",
"pid": "${command:pickMyProcess}"
// To launch the application directly, use the following configuration:
// "request": "launch",
// "program": "[YOUR_APPLICATION_PATH]",
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-Android: Clean + Rebuild All",
"request": "launch",
"program": "./lib/main.dart",
"type": "dart",
"preLaunchTask": "AF: Clean + Rebuild All (Android)",
"env": {
"RUST_LOG": "trace"
},
"cwd": "${workspaceRoot}/appflowy_flutter"
},
{
"name": "AF-desktop: Debug Rust",
"type": "lldb",
// "request": "attach",
// "pid": "${command:pickMyProcess}"
// To launch the application directly, use the following configuration:
"request": "launch",
"program": "/Users/lucas.xu/Desktop/AppFlowy/frontend/appflowy_flutter/build/macos/Build/Products/Debug/AppFlowy.app"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import 'package:appflowy/mobile/presentation/home/space/space_menu_bottom_sheet.
import 'package:appflowy/mobile/presentation/home/space/widgets.dart';
import 'package:appflowy/mobile/presentation/home/workspaces/create_workspace_menu.dart';
import 'package:appflowy/shared/icon_emoji_picker/icon_picker.dart';
import 'package:appflowy/workspace/application/sidebar/space/space_bloc.dart';
import 'package:appflowy/workspace/application/view/view_ext.dart';
import 'package:appflowy/workspace/presentation/home/menu/sidebar/experimental/bloc/space/space_bloc.dart';
import 'package:appflowy/workspace/application/view/folder_view_ext.dart';
import 'package:appflowy/workspace/presentation/home/menu/sidebar/space/space_icon_popup.dart';
import 'package:appflowy_backend/protobuf/flowy-folder/protobuf.dart';
import 'package:easy_localization/easy_localization.dart';
Expand All @@ -33,10 +33,10 @@ void main() {

Future<void> openSpaceMenuMoreOptions(
WidgetTester tester,
ViewPB space,
FolderViewPB space,
) async {
final spaceMenuItemTrailing = find.byWidgetPredicate(
(w) => w is SpaceMenuItemTrailing && w.space.id == space.id,
(w) => w is SpaceMenuItemTrailing && w.space.viewId == space.viewId,
);
final moreOptions = find.descendant(
of: spaceMenuItemTrailing,
Expand Down Expand Up @@ -243,7 +243,7 @@ void main() {
tester.widgetList<MobileSpaceMenuItem>(spaceItems2).last;
final space2 = spaceWidget2.space;
expect(space2.name, 'AppFlowy');
expect(space2.spacePermission, SpacePermission.publicToAll);
expect(space2.spacePermission, SpacePermission.public);
expect(space2.spaceIcon, icon2.iconPath);
expect(space2.spaceIconColor, color2);
final manageSuccess = find.text(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ class MentionViewIcon extends StatelessWidget {
return SpaceIcon(
dimension: 16.0,
svgSize: 9.68,
space: view,
space: view.folderViewPB,
cornerRadius: 4,
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ import 'package:appflowy/mobile/presentation/base/flowy_search_text_field.dart';
import 'package:appflowy/mobile/presentation/bottom_sheet/bottom_sheet.dart';
import 'package:appflowy/plugins/ai_chat/application/chat_select_sources_cubit.dart';
import 'package:appflowy/plugins/base/drag_handler.dart';
import 'package:appflowy/workspace/application/sidebar/space/space_bloc.dart';
import 'package:appflowy/workspace/presentation/home/menu/sidebar/experimental/bloc/space/space_bloc.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:appflowy/workspace/application/view/folder_view_ext.dart';
import 'package:appflowy/workspace/application/view/view_ext.dart';
import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart';
import 'package:easy_localization/easy_localization.dart';
Expand Down Expand Up @@ -90,9 +91,10 @@ class _PromptInputMobileSelectSourcesButtonState
],
),
onTap: () async {
context
.read<ChatSettingsCubit>()
.refreshSources(state.spaces, state.currentSpace);
context.read<ChatSettingsCubit>().refreshSources(
state.spaces.viewPBs,
state.currentSpace?.viewPB,
);
await showMobileBottomSheet<void>(
context,
backgroundColor: Theme.of(context).colorScheme.surface,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ import 'package:appflowy/generated/flowy_svgs.g.dart';
import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/plugins/ai_chat/application/chat_select_sources_cubit.dart';
import 'package:appflowy/plugins/document/application/document_bloc.dart';
import 'package:appflowy/workspace/application/sidebar/space/space_bloc.dart';
import 'package:appflowy/workspace/presentation/home/menu/sidebar/experimental/bloc/space/space_bloc.dart';
import 'package:appflowy/workspace/application/user/user_workspace_bloc.dart';
import 'package:appflowy/workspace/application/view/folder_view_ext.dart';
import 'package:appflowy/workspace/application/view/view_ext.dart';
import 'package:appflowy/workspace/presentation/home/menu/sidebar/space/shared_widget.dart';
import 'package:appflowy/workspace/presentation/home/menu/view/view_item.dart';
Expand Down Expand Up @@ -85,15 +86,17 @@ class _PromptInputDesktopSelectSourcesButtonState
margin: EdgeInsets.zero,
controller: popoverController,
onOpen: () {
context
.read<ChatSettingsCubit>()
.refreshSources(state.spaces, state.currentSpace);
context.read<ChatSettingsCubit>().refreshSources(
state.spaces.viewPBs,
state.currentSpace?.viewPB,
);
},
onClose: () {
widget.onUpdateSelectedSources(cubit.selectedSourceIds);
context
.read<ChatSettingsCubit>()
.refreshSources(state.spaces, state.currentSpace);
context.read<ChatSettingsCubit>().refreshSources(
state.spaces.viewPBs,
state.currentSpace?.viewPB,
);
},
popupBuilder: (_) {
return BlocProvider.value(
Expand Down
Loading
Loading