|
|
@@ -4,8 +4,7 @@ import {
|
|
|
ModalBody, Input, Label,
|
|
|
} from 'reactstrap';
|
|
|
|
|
|
-import type { AiAssistantScopeType } from '~/features/openai/interfaces/ai-assistant';
|
|
|
-import { AiAssistantAccessScope, AiAssistantShareScope } from '~/features/openai/interfaces/ai-assistant';
|
|
|
+import { AiAssistantScopeType, AiAssistantAccessScope, AiAssistantShareScope } from '~/features/openai/interfaces/ai-assistant';
|
|
|
import type { PopulatedGrantedGroup } from '~/interfaces/page-grant';
|
|
|
|
|
|
import { AccessScopeDropdown } from './AccessScopeDropdown';
|
|
|
@@ -15,10 +14,11 @@ import { ShareScopeSwitch } from './ShareScopeSwitch';
|
|
|
|
|
|
|
|
|
type Props = {
|
|
|
- selectedUserGroups: PopulatedGrantedGroup[],
|
|
|
selectedShareScope: AiAssistantShareScope,
|
|
|
selectedAccessScope: AiAssistantAccessScope,
|
|
|
- onSelectUserGroup: (userGroup: PopulatedGrantedGroup) => void,
|
|
|
+ selectedUserGroupsForShareScope: PopulatedGrantedGroup[],
|
|
|
+ selectedUserGroupsForAccessScope: PopulatedGrantedGroup[],
|
|
|
+ onSelectUserGroup: (userGroup: PopulatedGrantedGroup, scopeType: AiAssistantScopeType) => void,
|
|
|
onSelectScope: (scope: AiAssistantAccessScope | AiAssistantShareScope, scopeType?: AiAssistantScopeType) => void,
|
|
|
}
|
|
|
|
|
|
@@ -26,13 +26,15 @@ export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
|
const {
|
|
|
selectedAccessScope,
|
|
|
selectedShareScope,
|
|
|
- selectedUserGroups,
|
|
|
+ selectedUserGroupsForShareScope,
|
|
|
+ selectedUserGroupsForAccessScope,
|
|
|
onSelectScope,
|
|
|
onSelectUserGroup,
|
|
|
} = props;
|
|
|
|
|
|
const [isShared, setIsShared] = useState(false);
|
|
|
const [isUserGroupSelectorOpen, setIsUserGroupSelectorOpen] = useState(false);
|
|
|
+ const [selectedUserGroupType, setSelectedUserGroupType] = useState<AiAssistantScopeType>(AiAssistantScopeType.ACCESS);
|
|
|
|
|
|
const changeShareToggleHandler = useCallback(() => {
|
|
|
setIsShared((prev) => {
|
|
|
@@ -46,6 +48,7 @@ export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
|
const selectScopeHandler = useCallback((scope: AiAssistantAccessScope | AiAssistantShareScope, scopeType: AiAssistantScopeType) => {
|
|
|
onSelectScope(scope, scopeType);
|
|
|
if ((scope as AiAssistantAccessScope) === AiAssistantAccessScope.GROUPS || (scope as AiAssistantShareScope) === AiAssistantShareScope.GROUPS) {
|
|
|
+ setSelectedUserGroupType(scopeType);
|
|
|
setIsUserGroupSelectorOpen(true);
|
|
|
}
|
|
|
}, [onSelectScope]);
|
|
|
@@ -84,7 +87,8 @@ export const AiAssistantManagementEditShare = (props: Props): JSX.Element => {
|
|
|
<SelectUserGroupModal
|
|
|
isOpen={isUserGroupSelectorOpen}
|
|
|
closeModal={() => setIsUserGroupSelectorOpen(false)}
|
|
|
- selectedUserGroup={selectedUserGroups}
|
|
|
+ selectedUserGroupType={selectedUserGroupType}
|
|
|
+ selectedUserGroup={selectedUserGroupType === AiAssistantScopeType.ACCESS ? selectedUserGroupsForAccessScope : selectedUserGroupsForShareScope}
|
|
|
onSelect={onSelectUserGroup}
|
|
|
/>
|
|
|
</ModalBody>
|