Компонент средства выбора каналов Microsoft Teams в Наборе средств Microsoft Graph
Вы также можете использовать компонент mgt-teams-channel-picker
для разрешения поиска каналов Microsoft Teams, связанных с пользователем. Этот компонент может выполнять поиск всех команд, к которым присоединился пользователь, и каждого канала в этих командах.
Пример
В примере ниже показан компонент mgt-teams-channel-picker
. Начните поиск канала или команды, чтобы увидеть отображение результатов.
Получение выбранного канала
Используйте свойство selectedItem
, чтобы получить канал и родительскую команду, выбранные в настоящее время. Это значение будет равно null, если канал не выбран. selectedItem
содержит два свойства: channel
(MicrosoftGraph.Channel) и team
(MicrosoftGraph.Team).
const channelPicker = document.querySelector('mgt-teams-channel-picker');
console.log(channelPicker.selectedItem.channel);
console.log(channelPicker.selectedItem.team);
Выбор канала
Используйте метод selectChannelById(channelId: string)
для программного выбора канала.
Примечание. Средство выбора канала Teams поддерживает выбор только одного канала.
const channelPicker = document.querySelector('mgt-teams-channel-picker');
const channelId = 'some-channel-id';
channelPicker.selectChannelById(channelId);
Примечание. Указанный канал (и соответствующий идентификатор) должен относиться к команде, к которой присоединился прошедший проверку пользователь.
Настраиваемые свойства CSS
Компонент mgt-teams-channel-picker
определяет следующие настраиваемые свойства CSS.
mgt-teams-channel-picker {
--input-border: 2px rgba(255, 255, 255, 0.5) solid; /* sets all input area border */
/* OR individual input border sides */
--input-border-bottom: 2px rgba(255, 255, 255, 0.5) solid;
--input-border-right: 2px rgba(255, 255, 255, 0.5) solid;
--input-border-left: 2px rgba(255, 255, 255, 0.5) solid;
--input-border-top: 2px rgba(255, 255, 255, 0.5) solid;
--input-background-color: #1f1f1f; /* input area background color */
--input-border-color--hover: #008394; /* input area border hover color */
--input-border-color--focus: #0f78d4; /* input area border focus color */
--dropdown-background-color: #1f1f1f; /* channel background color */
--dropdown-item-hover-background: #333d47; /* channel or team hover background */
--dropdown-item-selected-background: #0F78D4; /* selected channel background color */
--color: white; /* input area border focus color */
--arrow-fill: #ffffff;
--placeholder-color: #f1f1f1; /* placeholder text color */
--placeholder-color--focus: rgba(255, 255, 255, 0.8); /* place holder text focus color */
}
События
Событие | Когда он генерируется | Пользовательские данные | Отменяемым | Пузыри | Работает с пользовательским шаблоном |
---|---|---|---|---|---|
selectionChanged |
Срабатывает, когда пользователь вносит изменения в выбор канала | Текущий выбранный элемент в качестве { channel: командыканала, team: } |
Нет | Нет | Да |
Дополнительные сведения об обработке событий см. в разделе События.
Шаблоны
Компонент mgt-teams-channel-picker
поддерживает несколько шаблонов, позволяющих заменить его определенные части. Чтобы указать шаблон, добавьте элемент <template>
в компонент и присвойте параметру data-type
одно из следующих значений.
Тип данных | Контекст данных | Описание |
---|---|---|
загрузка | null: нет данных | Шаблон, используемый для отображения состояния средства выбора при выполнении запроса к Microsoft Graph. |
ошибка | null: нет данных | Шаблон, используемый в том случае, если поиск не возвращает пользователей. |
В следующем примере показано, как использовать шаблон error
.
<mgt-teams-channel-picker>
<template data-type="error">
<p>Sorry, no Teams or Channels were found</p>
</template>
</mgt-teams-channel-picker>
Разрешения Microsoft Graph
Этот компонент по умолчанию использует следующие API-интерфейсы Microsoft Graph и разрешения.
API | Разрешение |
---|---|
/me/joinedTeams | User.Read.All |
/teams/${id}/channels | Group.Read.All |
В версии 2.2 необходимые разрешения были обновлены до менее строгих разрешений на основе Teams. Чтобы избежать критического изменения, необходимо согласиться на новые разрешения с помощью глобальной конфигурации.
import {MgtTeamsChannelPicker} from "@microsoft/mgt-components";
MgtTeamsChannelPicker.config.useTeamsBasedScopes = true;
Если useTeamsBasedScopes
задано значение true
, средство выбора каналов Teams будет использовать следующие области.
API | Разрешение |
---|---|
/me/joinedTeams | Team.ReadBasic.All |
/teams/${id}/channels | Channel.ReadBasic.All |
Это будут разрешения по умолчанию в следующем крупном обновлении.
Проверка подлинности
В элементе управления используется глобальный поставщик проверки подлинности, описанный в документации по проверке подлинности.
Кэш
Компонент mgt-teams-channel-picker
не кэшировать данные.
Расширение для дополнительного управления
В более сложных сценариях или настраиваемых пользовательских интерфейсах этот компонент предоставляет несколько методов protected render*
для переопределения в расширениях компонента.
Метод | Описание |
---|---|
renderSelected | Отображает выбранную команду и канал в поле ввода. |
renderInput | Отображает поле ввода. |
renderDropdown | Отображает раскрывающийся список. |
renderDropdownList | Рекурсивно отображает элементы в раскрывающемся списке. |
renderItem | Отображает команду или канал в раскрывающемся списке. |
renderHighlightedText | Отображает текст канала, выделяя входной запрос. |
renderLoading | Отображает состояние загрузки раскрывающегося списка. |
renderError | Отображает состояние ошибки раскрывающегося списка. |