feat: Show exact match first in sharing widget

pull/112/head
znerol 2020-12-22 08:34:07 +01:00
parent 882730f39a
commit ebe807f04b
2 changed files with 24 additions and 6 deletions

View File

@ -74,6 +74,11 @@ export interface ShareWith {
users: ShareWithOption[];
groups: ShareWithOption[];
circles: ShareWithOption[];
exact: {
users: ShareWithOption[];
groups: ShareWithOption[];
circles: ShareWithOption[];
}
}
class Api {
@ -239,9 +244,14 @@ class Api {
});
return {
users: response.data.ocs.data.exact.users,
groups: response.data.ocs.data.exact.groups,
circles: response.data.ocs.data.exact.circles || [],
users: [],
groups: [],
circles: [],
exact: {
users: response.data.ocs.data.exact.users,
groups: response.data.ocs.data.exact.groups,
circles: response.data.ocs.data.exact.circles || [],
},
};
}
@ -260,9 +270,14 @@ class Api {
const data = response.data.ocs.data;
return {
users: [...data.users, ...data.exact.users],
groups: [...data.groups, ...data.exact.groups],
circles: [...(data.circles || []), ...(data.exact.circles || [])],
users: data.users,
groups: data.groups,
circles: data.circles || [],
exact: {
users: data.exact.users,
groups: data.exact.groups,
circles: data.exact.circles || [],
},
};
}
}

View File

@ -63,6 +63,9 @@ const ShareSelection: React.FC<Props> = (props) => {
function renderSearchResults(options: ShareWith|undefined) {
const results = options ? [
...options.exact.users.filter(user => !excluded.userIds.includes(user.value.shareWith)),
...options.exact.groups.filter(group => !excluded.groupIds.includes(group.value.shareWith)),
...options.exact.circles.filter(circle => !excluded.circleIds.includes(circle.value.shareWith)),
...options.users.filter(user => !excluded.userIds.includes(user.value.shareWith)),
...options.groups.filter(group => !excluded.groupIds.includes(group.value.shareWith)),
...options.circles.filter(circle => !excluded.circleIds.includes(circle.value.shareWith)),