Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit510287b

Browse files
committed
Fix repetitive results
1 parentb86abcf commit510287b

File tree

4 files changed

+33
-4
lines changed

4 files changed

+33
-4
lines changed

‎site/src/components/UserOrGroupAutocomplete/UserOrGroupAutocomplete.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ export type UserOrGroupAutocompleteProps = {
1919
value:UserOrGroupAutocompleteValue
2020
onChange:(value:UserOrGroupAutocompleteValue)=>void
2121
organizationId:string
22+
exclude:UserOrGroupAutocompleteValue[]
2223
}
2324

2425
exportconstUserOrGroupAutocomplete:React.FC<UserOrGroupAutocompleteProps>=({
2526
value,
2627
onChange,
2728
organizationId,
29+
exclude,
2830
})=>{
2931
conststyles=useStyles()
3032
const[isAutocompleteOpen,setIsAutocompleteOpen]=useState(false)
@@ -36,6 +38,11 @@ export const UserOrGroupAutocomplete: React.FC<UserOrGroupAutocompleteProps> = (
3638
},
3739
})
3840
const{ userResults, groupResults}=searchState.context
41+
constoptions=[...groupResults, ...userResults].filter((result)=>{
42+
constexcludeIds=exclude.map((optionToExclude)=>optionToExclude?.id)
43+
return!excludeIds.includes(result.id)
44+
})
45+
3946
consthandleFilterChange=debounce((event:ChangeEvent<HTMLInputElement>)=>{
4047
sendSearch("SEARCH",{query:event.target.value})
4148
},500)
@@ -80,7 +87,7 @@ export const UserOrGroupAutocomplete: React.FC<UserOrGroupAutocompleteProps> = (
8087
/>
8188
)
8289
}}
83-
options={[...groupResults, ...userResults]}
90+
options={options}
8491
loading={searchState.matches("searching")}
8592
className={styles.autocomplete}
8693
renderInput={(params)=>(

‎site/src/pages/TemplatePage/TemplatePermissionsPage/TemplatePermissionsPageView.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,27 @@ import {
2323
import{FC,useState}from"react"
2424
import{Maybe}from"components/Conditionals/Maybe"
2525

26-
constAddTemplateUserOrGroup:React.FC<{
26+
typeAddTemplateUserOrGroupProps={
2727
organizationId:string
2828
isLoading:boolean
29+
templateACL:TemplateACL|undefined
2930
onSubmit:(
3031
userOrGroup:TemplateUser|TemplateGroup,
3132
role:TemplateRole,
3233
reset:()=>void,
3334
)=>void
34-
}>=({ isLoading, onSubmit, organizationId})=>{
35+
}
36+
37+
constAddTemplateUserOrGroup:React.FC<AddTemplateUserOrGroupProps>=({
38+
isLoading,
39+
onSubmit,
40+
organizationId,
41+
templateACL,
42+
})=>{
3543
conststyles=useStyles()
3644
const[selectedOption,setSelectedOption]=useState<UserOrGroupAutocompleteValue>(null)
3745
const[selectedRole,setSelectedRole]=useState<TemplateRole>("view")
46+
constexcludeFromAutocomplete=templateACL ?[...templateACL.group, ...templateACL.users] :[]
3847

3948
constresetValues=()=>{
4049
setSelectedOption(null)
@@ -60,6 +69,7 @@ const AddTemplateUserOrGroup: React.FC<{
6069
>
6170
<Stackdirection="row"alignItems="center"spacing={1}>
6271
<UserOrGroupAutocomplete
72+
exclude={excludeFromAutocomplete}
6373
organizationId={organizationId}
6474
value={selectedOption}
6575
onChange={(newValue)=>{
@@ -144,6 +154,7 @@ export const TemplatePermissionsPageView: FC<
144154
<Stackspacing={2.5}>
145155
<Maybecondition={canUpdatePermissions}>
146156
<AddTemplateUserOrGroup
157+
templateACL={templateACL}
147158
organizationId={organizationId}
148159
isLoading={isAddingUser||isAddingGroup}
149160
onSubmit={(value,role,resetAutocomplete)=>

‎site/src/xServices/template/searchUsersAndGroupsXService.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export type SearchUsersAndGroupsEvent =
1010
exportconstsearchUsersAndGroupsMachine=createMachine(
1111
{
1212
id:"searchUsersAndGroups",
13+
predictableActionArguments:true,
1314
schema:{
1415
context:{}as{
1516
organizationId:string
@@ -31,7 +32,10 @@ export const searchUsersAndGroupsMachine = createMachine(
3132
states:{
3233
idle:{
3334
on:{
34-
SEARCH:"searching",
35+
SEARCH:{
36+
target:"searching",
37+
cond:"queryHasMinLength",
38+
},
3539
CLEAR_RESULTS:{
3640
actions:["clearResults"],
3741
target:"idle",
@@ -70,5 +74,8 @@ export const searchUsersAndGroupsMachine = createMachine(
7074
groupResults:(_)=>[],
7175
}),
7276
},
77+
guards:{
78+
queryHasMinLength:(_,{ query})=>query.length>=3,
79+
},
7380
},
7481
)

‎yarn.lock

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2+
# yarn lockfile v1
3+
4+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp