diff --git a/Composer/packages/client/src/pages/botProject/AllowedCallers.tsx b/Composer/packages/client/src/pages/botProject/AllowedCallers.tsx index 493c36f078..a939020a84 100644 --- a/Composer/packages/client/src/pages/botProject/AllowedCallers.tsx +++ b/Composer/packages/client/src/pages/botProject/AllowedCallers.tsx @@ -57,13 +57,14 @@ const ItemContainer = styled.div({ }); type ItemProps = { + index: number; value: string; onBlur: () => void; onChange: (event: React.FormEvent, newValue?: string) => void; onRemove: () => void; }; -const Item = React.memo(({ value, onBlur, onChange, onRemove }: ItemProps) => { +const Item = React.memo(({ index, value, onBlur, onChange, onRemove }: ItemProps) => { const itemRef = React.useRef(null); const didMount = React.useRef(false); @@ -75,8 +76,9 @@ const Item = React.memo(({ value, onBlur, onChange, onRemove }: ItemProps) => { }, []); return ( - + (itemRef.current = ref)} data-testid="addCallerInputField" styles={textFieldStyles} @@ -85,7 +87,7 @@ const Item = React.memo(({ value, onBlur, onChange, onRemove }: ItemProps) => { onChange={onChange} /> = ({ projectId }) => { } )} - + {allowedCallers.map(({ value, id }, index) => { - return ; + return ( + + ); })} {!allowedCallers.length && ( diff --git a/Composer/packages/client/src/pages/botProject/adapters/ABSChannels.tsx b/Composer/packages/client/src/pages/botProject/adapters/ABSChannels.tsx index d69995998f..2ca9abf4bb 100644 --- a/Composer/packages/client/src/pages/botProject/adapters/ABSChannels.tsx +++ b/Composer/packages/client/src/pages/botProject/adapters/ABSChannels.tsx @@ -94,6 +94,7 @@ export const ABSChannels: React.FC = (props) => { const { setApplicationLevelError, requireUserLogin } = useRecoilValue(dispatcherState); const currentUser = useRecoilValue(currentUserState); const isAuthenticated = useRecoilValue(isAuthenticatedState); + const [selectedConnectionKey, setSelectedConnectionKey] = useState(''); /* Copied from Azure Publishing extension */ const getSubscriptions = async (token: string): Promise> => { @@ -115,11 +116,15 @@ export const ABSChannels: React.FC = (props) => { } }; - const onSelectProfile = async (_, opt) => { + const isDropdownFocusEvent = (event: React.FormEvent) => event.type === 'focus'; + + const onSelectProfile = async (ev, opt) => { if (opt.key === 'manageProfiles') { + if (isDropdownFocusEvent(ev)) return; TelemetryClient.track('ConnectionsAddNewProfile'); navigateTo(`/bot/${projectId}/publish/all/#addNewPublishProfile`); } else { + setSelectedConnectionKey(opt.key); // identify the publishing profile in the list const profile = publishTargets?.find((p) => p.name === opt.key); if (profile) { @@ -593,9 +598,11 @@ export const ABSChannels: React.FC = (props) => { )}