|
|
@@ -1,34 +1,27 @@
|
|
|
-import React, { useState, useCallback } from 'react';
|
|
|
+import React, { useCallback } from 'react';
|
|
|
|
|
|
import { useTranslation } from 'react-i18next';
|
|
|
import {
|
|
|
UncontrolledDropdown, DropdownToggle, DropdownMenu, DropdownItem,
|
|
|
} from 'reactstrap';
|
|
|
|
|
|
-import type { PopulatedGrantedGroup } from '~/interfaces/page-grant';
|
|
|
import { useCurrentUser } from '~/stores-universal/context';
|
|
|
|
|
|
import { AiAssistantAccessScope } from '../../../../interfaces/ai-assistant';
|
|
|
|
|
|
-import { UserGroupSelector } from './UserGroupSelector';
|
|
|
-
|
|
|
type Props = {
|
|
|
selectedAccessScope: AiAssistantAccessScope,
|
|
|
- selectedUserGroup: PopulatedGrantedGroup[];
|
|
|
- onSelectAccessScope: (accessScope: AiAssistantAccessScope) => void,
|
|
|
- onSelectUserGroup: (userGroup: PopulatedGrantedGroup) => void,
|
|
|
+ onSelect: (accessScope: AiAssistantAccessScope) => void,
|
|
|
}
|
|
|
|
|
|
export const AccessScopeDropdown: React.FC<Props> = (props: Props) => {
|
|
|
const {
|
|
|
- selectedAccessScope, selectedUserGroup, onSelectAccessScope, onSelectUserGroup,
|
|
|
+ selectedAccessScope, onSelect,
|
|
|
} = props;
|
|
|
|
|
|
const { t } = useTranslation();
|
|
|
const { data: currentUser } = useCurrentUser();
|
|
|
|
|
|
- const [isUserGroupSelectorOpen, setIsUserGroupSelectorOpen] = useState(false);
|
|
|
-
|
|
|
const getAccessScopeLabel = useCallback((accessScope: AiAssistantAccessScope) => {
|
|
|
const baseLabel = `modal_ai_assistant.access_scope.${accessScope}`;
|
|
|
return accessScope === AiAssistantAccessScope.OWNER
|
|
|
@@ -37,18 +30,15 @@ export const AccessScopeDropdown: React.FC<Props> = (props: Props) => {
|
|
|
}, [currentUser?.username, t]);
|
|
|
|
|
|
const selectAccessScopeHandler = useCallback((accessScope: AiAssistantAccessScope) => {
|
|
|
- onSelectAccessScope(accessScope);
|
|
|
- if (accessScope === AiAssistantAccessScope.GROUPS) {
|
|
|
- setIsUserGroupSelectorOpen(true);
|
|
|
- }
|
|
|
- }, [onSelectAccessScope]);
|
|
|
+ onSelect(accessScope);
|
|
|
+ }, [onSelect]);
|
|
|
|
|
|
return (
|
|
|
<>
|
|
|
<UncontrolledDropdown>
|
|
|
<DropdownToggle
|
|
|
caret
|
|
|
- className="btn-outline-secondary"
|
|
|
+ className="btn-outline-secondary bg-transparent"
|
|
|
>
|
|
|
{getAccessScopeLabel(selectedAccessScope)}
|
|
|
</DropdownToggle>
|
|
|
@@ -60,13 +50,6 @@ export const AccessScopeDropdown: React.FC<Props> = (props: Props) => {
|
|
|
))}
|
|
|
</DropdownMenu>
|
|
|
</UncontrolledDropdown>
|
|
|
-
|
|
|
- <UserGroupSelector
|
|
|
- isOpen={isUserGroupSelectorOpen}
|
|
|
- closeModal={() => setIsUserGroupSelectorOpen(false)}
|
|
|
- selectedUserGroup={selectedUserGroup}
|
|
|
- onSelect={onSelectUserGroup}
|
|
|
- />
|
|
|
</>
|
|
|
);
|
|
|
};
|