mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
Merge branch 'main' into feat/support-get-encoded-collab-event
This commit is contained in:
commit
14d62db688
@ -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 =
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user