|
@@ -20,7 +20,8 @@ type Props = {
|
|
|
selectedUserGroupsForShareScope: PopulatedGrantedGroup[],
|
|
selectedUserGroupsForShareScope: PopulatedGrantedGroup[],
|
|
|
selectedUserGroupsForAccessScope: PopulatedGrantedGroup[],
|
|
selectedUserGroupsForAccessScope: PopulatedGrantedGroup[],
|
|
|
onSelectUserGroup: (userGroup: PopulatedGrantedGroup, scopeType: AiAssistantScopeType) => void,
|
|
onSelectUserGroup: (userGroup: PopulatedGrantedGroup, scopeType: AiAssistantScopeType) => void,
|
|
|
- onSelectScope: (scopeType: AiAssistantScopeType, scope: AiAssistantAccessScope | AiAssistantShareScope) => void,
|
|
|
|
|
|
|
+ onSelectShareScope: (scope: AiAssistantShareScope) => void,
|
|
|
|
|
+ onSelectAccessScope: (scope: AiAssistantAccessScope) => void,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
@@ -29,8 +30,9 @@ export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
|
selectedAccessScope,
|
|
selectedAccessScope,
|
|
|
selectedUserGroupsForShareScope,
|
|
selectedUserGroupsForShareScope,
|
|
|
selectedUserGroupsForAccessScope,
|
|
selectedUserGroupsForAccessScope,
|
|
|
- onSelectScope,
|
|
|
|
|
onSelectUserGroup,
|
|
onSelectUserGroup,
|
|
|
|
|
+ onSelectShareScope,
|
|
|
|
|
+ onSelectAccessScope,
|
|
|
} = props;
|
|
} = props;
|
|
|
|
|
|
|
|
const { data: userRelatedGroups } = useSWRxUserRelatedGroups();
|
|
const { data: userRelatedGroups } = useSWRxUserRelatedGroups();
|
|
@@ -43,23 +45,35 @@ export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
|
const changeShareToggleHandler = useCallback(() => {
|
|
const changeShareToggleHandler = useCallback(() => {
|
|
|
setIsShared((prev) => {
|
|
setIsShared((prev) => {
|
|
|
if (prev) { // if isShared === true
|
|
if (prev) { // if isShared === true
|
|
|
- onSelectScope(AiAssistantScopeType.ACCESS, AiAssistantAccessScope.OWNER);
|
|
|
|
|
- onSelectScope(AiAssistantScopeType.SHARE, AiAssistantShareScope.SAME_AS_ACCESS_SCOPE);
|
|
|
|
|
|
|
+ onSelectShareScope(AiAssistantShareScope.SAME_AS_ACCESS_SCOPE);
|
|
|
|
|
+ onSelectAccessScope(AiAssistantAccessScope.OWNER);
|
|
|
}
|
|
}
|
|
|
else {
|
|
else {
|
|
|
- onSelectScope(AiAssistantScopeType.SHARE, AiAssistantShareScope.PUBLIC_ONLY);
|
|
|
|
|
|
|
+ onSelectShareScope(AiAssistantShareScope.PUBLIC_ONLY);
|
|
|
}
|
|
}
|
|
|
return !prev;
|
|
return !prev;
|
|
|
});
|
|
});
|
|
|
- }, [onSelectScope]);
|
|
|
|
|
|
|
+ }, [onSelectAccessScope, onSelectShareScope]);
|
|
|
|
|
|
|
|
- const selectScopeHandler = useCallback((scope: AiAssistantAccessScope | AiAssistantShareScope, scopeType: AiAssistantScopeType) => {
|
|
|
|
|
- onSelectScope(scopeType, scope);
|
|
|
|
|
- if (scope === 'groups' && !hasNoRelatedGroups) {
|
|
|
|
|
- setSelectedUserGroupType(scopeType);
|
|
|
|
|
- setIsSelectUserGroupModalOpen(true);
|
|
|
|
|
|
|
+ const selectGroupScopeHandler = useCallback((scopeType: AiAssistantScopeType) => {
|
|
|
|
|
+ setSelectedUserGroupType(scopeType);
|
|
|
|
|
+ setIsSelectUserGroupModalOpen(true);
|
|
|
|
|
+ }, []);
|
|
|
|
|
+
|
|
|
|
|
+ const selectShareScopeHandler = useCallback((shareScope: AiAssistantShareScope) => {
|
|
|
|
|
+ onSelectShareScope(shareScope);
|
|
|
|
|
+ if (shareScope === AiAssistantShareScope.GROUPS && !hasNoRelatedGroups) {
|
|
|
|
|
+ selectGroupScopeHandler(AiAssistantScopeType.SHARE);
|
|
|
|
|
+ }
|
|
|
|
|
+ }, [hasNoRelatedGroups, onSelectShareScope, selectGroupScopeHandler]);
|
|
|
|
|
+
|
|
|
|
|
+ const selectAccessScopeHandler = useCallback((accessScope: AiAssistantAccessScope) => {
|
|
|
|
|
+ onSelectAccessScope(accessScope);
|
|
|
|
|
+ if (accessScope === AiAssistantAccessScope.GROUPS && !hasNoRelatedGroups) {
|
|
|
|
|
+ selectGroupScopeHandler(AiAssistantScopeType.ACCESS);
|
|
|
}
|
|
}
|
|
|
- }, [hasNoRelatedGroups, onSelectScope]);
|
|
|
|
|
|
|
+ }, [hasNoRelatedGroups, onSelectAccessScope, selectGroupScopeHandler]);
|
|
|
|
|
+
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
@@ -84,15 +98,14 @@ export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
|
isDisabled={!isShared}
|
|
isDisabled={!isShared}
|
|
|
isDisabledGroups={hasNoRelatedGroups}
|
|
isDisabledGroups={hasNoRelatedGroups}
|
|
|
selectedAccessScope={selectedAccessScope}
|
|
selectedAccessScope={selectedAccessScope}
|
|
|
- onSelect={selectScopeHandler}
|
|
|
|
|
|
|
+ onSelect={selectAccessScopeHandler}
|
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
<ShareScopeSwitch
|
|
<ShareScopeSwitch
|
|
|
isDisabled={!isShared}
|
|
isDisabled={!isShared}
|
|
|
isDisabledGroups={hasNoRelatedGroups}
|
|
isDisabledGroups={hasNoRelatedGroups}
|
|
|
selectedShareScope={selectedShareScope}
|
|
selectedShareScope={selectedShareScope}
|
|
|
- selectedAccessScope={selectedAccessScope}
|
|
|
|
|
- onSelect={selectScopeHandler}
|
|
|
|
|
|
|
+ onSelect={selectShareScopeHandler}
|
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
<SelectUserGroupModal
|
|
<SelectUserGroupModal
|