Composant Sélecteur de canaux Microsoft Teams dans le Kit de ressources Microsoft Graph

Vous pouvez utiliser le composant pour activer les mgt-teams-channel-picker recherches des canaux Microsoft Teams associés à un utilisateur. Le composant peut rechercher toutes les équipes que l’utilisateur a rejointes et chaque canal de ces équipes.

Exemple

L’exemple suivant montre le mgt-teams-channel-picker composant . Commencez à rechercher un canal ou une équipe pour voir le rendu des résultats.

Ouvrir cet exemple dans mgt.dev

Obtention du canal sélectionné

Utilisez la selectedItem propriété pour récupérer le canal et l’équipe parente actuellement sélectionnés. Cette valeur est null si aucun canal n’a été sélectionné. selectedItem contient deux propriétés : channel (MicrosoftGraph.Channel) et team (MicrosoftGraph.Team).

const channelPicker = document.querySelector('mgt-teams-channel-picker');
console.log(channelPicker.selectedItem.channel);
console.log(channelPicker.selectedItem.team);

Sélection d’un canal

Utilisez la selectChannelById(channelId: string) méthode pour sélectionner un canal par programmation.

Remarque : le sélecteur de canaux Teams prend uniquement en charge la sélection d’un seul canal.

const channelPicker = document.querySelector('mgt-teams-channel-picker');
const channelId = 'some-channel-id';
channelPicker.selectChannelById(channelId);

Note: Le canal fourni (et l’ID suivant) doivent appartenir à une équipe que l’utilisateur authentifié a rejointe.

Propriétés personnalisées CSS

Le mgt-teams-channel-picker composant définit les propriétés personnalisées CSS suivantes.

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 */
}

Événements

Événement Quand est-il émis Données personnalisées Annulable Bulles Fonctionne avec un modèle personnalisé
selectionChanged Déclenché lorsque l’utilisateur apporte une modification dans la sélection d’un canal L’élément actuellement sélectionné en tantqu’équipe{ channel: de canal, team: } Non Non Oui

Pour plus d’informations sur la gestion des événements, consultez événements.

Modèles

mgt-teams-channel-picker prend en charge plusieurs modèles que vous pouvez utiliser pour remplacer certaines parties du composant. Pour spécifier un modèle, incluez un <template> élément à l’intérieur d’un composant et définissez la data-type valeur sur l’une des valeurs suivantes.

Type de données Contexte de données Description
Chargement null : aucune donnée Modèle utilisé pour afficher l’état du sélecteur pendant l’exécution de la requête à Microsoft Graph.
error null : aucune donnée Modèle utilisé si la recherche utilisateur ne renvoie aucun utilisateur.

L’exemple suivant montre comment utiliser le error modèle.

<mgt-teams-channel-picker>
  <template data-type="error">
    <p>Sorry, no Teams or Channels were found</p>
  </template>
</mgt-teams-channel-picker>

Autorisations de Microsoft Graph

Ce composant utilise les API et autorisations Microsoft Graph suivantes par défaut.

API Autorisation
/me/joinedTeams User.Read.All
/teams/${id}/channels Group.Read.All

Dans la version 2.2, les autorisations requises ont été mises à jour vers les autorisations basées sur Teams moins restrictives. Pour éviter une modification cassant, vous devez accepter les nouvelles autorisations via une configuration globale.

import {MgtTeamsChannelPicker} from "@microsoft/mgt-components";

MgtTeamsChannelPicker.config.useTeamsBasedScopes = true;

Avec useTeamsBasedScopes la valeur true, le sélecteur de canaux Teams utilise les étendues suivantes.

API Autorisation
/me/joinedTeams Team.ReadBasic.All
/teams/${id}/channels Channel.ReadBasic.All

Il s’agit des autorisations par défaut dans la prochaine mise à jour majeure.

Authentification

Le contrôle utilise le fournisseur d’authentification global décrit dans la documentation sur l’authentification.

Cache

Le mgt-teams-channel-picker composant ne met pas en cache de données.

Étendre pour plus de contrôle

Pour les scénarios plus complexes ou une expérience utilisateur vraiment personnalisée, ce composant expose plusieurs protected render* méthodes de remplacement dans les extensions de composant :

Méthode Description
renderSelected Affiche l’équipe et le canal sélectionnés dans la zone d’entrée.
renderInput Affiche la zone d’entrée.
renderDropdown Affiche la liste déroulante.
renderDropdownList Affiche les éléments de la liste déroulante de manière récursive.
renderItem Affiche une équipe ou un canal dans la liste déroulante.
renderHighlightedText Restitue le texte du canal, en mettant en surbrillance la requête d’entrée.
renderLoading Affiche l’état de la liste déroulante de chargement.
renderError Affiche l’état d’erreur de la liste déroulante.