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

Commitf8a7b7e

Browse files
committed
Add template permissions stories
1 parent09c6771 commitf8a7b7e

File tree

5 files changed

+56
-4
lines changed

5 files changed

+56
-4
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import Autocomplete from "@material-ui/lab/Autocomplete"
55
import{useMachine}from"@xstate/react"
66
import{Group,User}from"api/typesGenerated"
77
import{AvatarData}from"components/AvatarData/AvatarData"
8-
import{useOrganizationId}from"hooks/useOrganizationId"
98
importdebouncefrom"just-debounce-it"
109
import{ChangeEvent,useState}from"react"
1110
import{searchUsersAndGroupsMachine}from"xServices/template/searchUsersAndGroupsXService"
@@ -19,14 +18,15 @@ const isGroup = (value: UserOrGroupAutocompleteValue): value is Group => {
1918
exporttypeUserOrGroupAutocompleteProps={
2019
value:UserOrGroupAutocompleteValue
2120
onChange:(value:UserOrGroupAutocompleteValue)=>void
21+
organizationId:string
2222
}
2323

2424
exportconstUserOrGroupAutocomplete:React.FC<UserOrGroupAutocompleteProps>=({
2525
value,
2626
onChange,
27+
organizationId,
2728
})=>{
2829
conststyles=useStyles()
29-
constorganizationId=useOrganizationId()
3030
const[isAutocompleteOpen,setIsAutocompleteOpen]=useState(false)
3131
const[searchState,sendSearch]=useMachine(searchUsersAndGroupsMachine,{
3232
context:{

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ import { Paywall } from "components/Paywall/Paywall"
77
import{Stack}from"components/Stack/Stack"
88
import{useTemplateLayoutContext}from"components/TemplateLayout/TemplateLayout"
99
import{useFeatureVisibility}from"hooks/useFeatureVisibility"
10+
import{useOrganizationId}from"hooks/useOrganizationId"
1011
import{FC}from"react"
1112
import{Helmet}from"react-helmet-async"
1213
import{pageTitle}from"util/page"
1314
import{templateACLMachine}from"xServices/template/templateACLXService"
1415
import{TemplatePermissionsPageView}from"./TemplatePermissionsPageView"
1516

1617
exportconstTemplatePermissionsPage:FC<React.PropsWithChildren<unknown>>=()=>{
18+
constorganizationId=useOrganizationId()
1719
const{ context}=useTemplateLayoutContext()
1820
const{ template, permissions}=context
1921
if(!template||!permissions){
@@ -59,6 +61,7 @@ export const TemplatePermissionsPage: FC<React.PropsWithChildren<unknown>> = ()
5961
</Cond>
6062
<Cond>
6163
<TemplatePermissionsPageView
64+
organizationId={organizationId}
6265
templateACL={templateACL}
6366
canUpdatePermissions={permissions.canUpdateTemplate}
6467
onAddUser={(user,role,reset)=>{
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import{Story}from"@storybook/react"
2+
import{MockOrganization,MockTemplateACL,MockTemplateACLEmpty}from"testHelpers/entities"
3+
import{
4+
TemplatePermissionsPageView,
5+
TemplatePermissionsPageViewProps,
6+
}from"./TemplatePermissionsPageView"
7+
8+
exportdefault{
9+
title:"pages/TemplatePermissionsPageView",
10+
component:TemplatePermissionsPageView,
11+
}
12+
13+
constTemplate:Story<TemplatePermissionsPageViewProps>=(
14+
args:TemplatePermissionsPageViewProps,
15+
)=><TemplatePermissionsPageView{...args}/>
16+
17+
exportconstEmpty=Template.bind({})
18+
Empty.args={
19+
templateACL:MockTemplateACLEmpty,
20+
canUpdatePermissions:false,
21+
}
22+
23+
exportconstWithTemplateACL=Template.bind({})
24+
WithTemplateACL.args={
25+
templateACL:MockTemplateACL,
26+
canUpdatePermissions:false,
27+
}
28+
29+
exportconstWithUpdatePermissions=Template.bind({})
30+
WithUpdatePermissions.args={
31+
templateACL:MockTemplateACL,
32+
canUpdatePermissions:true,
33+
organizationId:MockOrganization.id,
34+
}

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

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

2626
constAddTemplateUserOrGroup:React.FC<{
27+
organizationId:string
2728
isLoading:boolean
2829
onSubmit:(
2930
userOrGroup:TemplateUser|TemplateGroup,
3031
role:TemplateRole,
3132
reset:()=>void,
3233
)=>void
33-
}>=({ isLoading, onSubmit})=>{
34+
}>=({ isLoading, onSubmit, organizationId})=>{
3435
conststyles=useStyles()
3536
const[selectedOption,setSelectedOption]=useState<UserOrGroupAutocompleteValue>(null)
3637
const[selectedRole,setSelectedRole]=useState<TemplateRole>("view")
@@ -59,6 +60,7 @@ const AddTemplateUserOrGroup: React.FC<{
5960
>
6061
<Stackdirection="row"alignItems="center"spacing={1}>
6162
<UserOrGroupAutocomplete
63+
organizationId={organizationId}
6264
value={selectedOption}
6365
onChange={(newValue)=>{
6466
setSelectedOption(newValue)
@@ -98,10 +100,11 @@ const AddTemplateUserOrGroup: React.FC<{
98100

99101
exportinterfaceTemplatePermissionsPageViewProps{
100102
templateACL:TemplateACL|undefined
103+
organizationId:string
104+
canUpdatePermissions:boolean
101105
// User
102106
onAddUser:(user:TemplateUser,role:TemplateRole,reset:()=>void)=>void
103107
isAddingUser:boolean
104-
canUpdatePermissions:boolean
105108
onUpdateUser:(user:TemplateUser,role:TemplateRole)=>void
106109
updatingUser:TemplateUser|undefined
107110
onRemoveUser:(user:TemplateUser)=>void
@@ -118,6 +121,7 @@ export const TemplatePermissionsPageView: FC<
118121
>=({
119122
templateACL,
120123
canUpdatePermissions,
124+
organizationId,
121125
// User
122126
onAddUser,
123127
isAddingUser,
@@ -140,6 +144,7 @@ export const TemplatePermissionsPageView: FC<
140144
<Stackspacing={2.5}>
141145
<Maybecondition={canUpdatePermissions}>
142146
<AddTemplateUserOrGroup
147+
organizationId={organizationId}
143148
isLoading={isAddingUser||isAddingGroup}
144149
onSubmit={(value,role,resetAutocomplete)=>
145150
"members"invalue

‎site/src/testHelpers/entities.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -867,3 +867,13 @@ export const MockGroup: TypesGen.Group = {
867867
organization_id:MockOrganization.id,
868868
members:[MockUser,MockUser2],
869869
}
870+
871+
exportconstMockTemplateACL:TypesGen.TemplateACL={
872+
group:[{ ...MockGroup,role:"admin"}],
873+
users:[{ ...MockUser,role:"view"}],
874+
}
875+
876+
exportconstMockTemplateACLEmpty:TypesGen.TemplateACL={
877+
group:[],
878+
users:[],
879+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp