Merge branch 'main' into feat/support-get-encoded-collab-event

This commit is contained in:
Lucas.Xu 2024-06-28 14:03:20 +08:00
commit 14d62db688
3 changed files with 26 additions and 21 deletions

View File

@ -1,3 +1,5 @@
import 'package:flutter/foundation.dart';
import 'package:appflowy/generated/locale_keys.g.dart'; import 'package:appflowy/generated/locale_keys.g.dart';
import 'package:appflowy/shared/feature_flags.dart'; import 'package:appflowy/shared/feature_flags.dart';
import 'package:appflowy/user/application/user_listener.dart'; import 'package:appflowy/user/application/user_listener.dart';
@ -10,7 +12,6 @@ import 'package:appflowy_backend/protobuf/flowy-user/protobuf.dart';
import 'package:appflowy_result/appflowy_result.dart'; import 'package:appflowy_result/appflowy_result.dart';
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:protobuf/protobuf.dart'; import 'package:protobuf/protobuf.dart';
@ -55,23 +56,22 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
await _userService.openWorkspace(currentWorkspace.workspaceId); await _userService.openWorkspace(currentWorkspace.workspaceId);
} }
WorkspaceMemberPB? currentWorkspaceMember;
final workspaceMemberResult =
await _userService.getWorkspaceMember();
currentWorkspaceMember = workspaceMemberResult.fold(
(s) => s,
(e) => null,
);
emit( emit(
state.copyWith( state.copyWith(
currentWorkspace: currentWorkspace, currentWorkspace: currentWorkspace,
workspaces: workspaces, workspaces: workspaces,
isCollabWorkspaceOn: isCollabWorkspaceOn, isCollabWorkspaceOn: isCollabWorkspaceOn,
currentWorkspaceMember: currentWorkspaceMember,
actionResult: null, actionResult: null,
), ),
); );
/// We wait with fetching the workspace member as it may take some time,
/// to avoid blocking the UI from rendering (the sidebar).
final workspaceMemberResult =
await _userService.getWorkspaceMember();
final workspaceMember = workspaceMemberResult.toNullable();
emit(state.copyWith(currentWorkspaceMember: workspaceMember));
}, },
fetchWorkspaces: () async { fetchWorkspaces: () async {
final result = await _fetchWorkspaces(); final result = await _fetchWorkspaces();
@ -208,14 +208,6 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
(e) => state.currentWorkspace, (e) => state.currentWorkspace,
); );
WorkspaceMemberPB? currentWorkspaceMember;
final workspaceMemberResult =
await _userService.getWorkspaceMember();
currentWorkspaceMember = workspaceMemberResult.fold(
(s) => s,
(e) => null,
);
result result
..onSuccess((s) { ..onSuccess((s) {
Log.info( Log.info(
@ -229,7 +221,6 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
emit( emit(
state.copyWith( state.copyWith(
currentWorkspace: currentWorkspace, currentWorkspace: currentWorkspace,
currentWorkspaceMember: currentWorkspaceMember,
actionResult: UserWorkspaceActionResult( actionResult: UserWorkspaceActionResult(
actionType: UserWorkspaceActionType.open, actionType: UserWorkspaceActionType.open,
isLoading: false, isLoading: false,
@ -237,6 +228,14 @@ class UserWorkspaceBloc extends Bloc<UserWorkspaceEvent, UserWorkspaceState> {
), ),
), ),
); );
/// We wait with fetching the workspace member as it may take some time,
/// to avoid blocking the UI from rendering (the sidebar).
final workspaceMemberResult =
await _userService.getWorkspaceMember();
final workspaceMember = workspaceMemberResult.toNullable();
emit(state.copyWith(currentWorkspaceMember: workspaceMember));
}, },
renameWorkspace: (workspaceId, name) async { renameWorkspace: (workspaceId, name) async {
final result = final result =

View File

@ -1,4 +1,5 @@
use std::sync::Arc; use std::sync::Arc;
use tracing::{trace, warn};
use flowy_error::FlowyResult; use flowy_error::FlowyResult;
use flowy_folder::{manager::FolderManager, ViewLayout}; use flowy_folder::{manager::FolderManager, ViewLayout};
@ -52,6 +53,7 @@ impl SearchHandler for DocumentSearchHandler {
.cloud_service .cloud_service
.document_search(&workspace_id, query) .document_search(&workspace_id, query)
.await?; .await?;
trace!("[Search] remote search results: {:?}", results);
// Grab all views from folder cache // Grab all views from folder cache
// Notice that `get_all_view_pb` returns Views that don't include trashed and private views // Notice that `get_all_view_pb` returns Views that don't include trashed and private views
@ -86,9 +88,12 @@ impl SearchHandler for DocumentSearchHandler {
workspace_id: result.workspace_id, workspace_id: result.workspace_id,
preview: result.preview, preview: result.preview,
}); });
} else {
warn!("No view found for search result: {:?}", result);
} }
} }
trace!("[Search] showing results: {:?}", search_results);
Ok(search_results) Ok(search_results)
} }

View File

@ -11,7 +11,8 @@ pub(crate) struct AFCloudSearchCloudServiceImpl<T> {
// The limit of what the score should be for results, used to // The limit of what the score should be for results, used to
// filter out irrelevant results. // filter out irrelevant results.
const SCORE_LIMIT: f64 = 0.8; // https://community.openai.com/t/rule-of-thumb-cosine-similarity-thresholds/693670/5
const SCORE_LIMIT: f64 = 0.3;
const DEFAULT_PREVIEW: u32 = 80; const DEFAULT_PREVIEW: u32 = 80;
#[async_trait] #[async_trait]
@ -32,7 +33,7 @@ where
// Filter out irrelevant results // Filter out irrelevant results
let result = result let result = result
.into_iter() .into_iter()
.filter(|r| r.score < SCORE_LIMIT) .filter(|r| r.score > SCORE_LIMIT)
.collect(); .collect();
Ok(result) Ok(result)