Microsoft Teams-Kanalauswahlkomponente im Microsoft Graph-Toolkit

Sie können die mgt-teams-channel-picker -Komponente verwenden, um Suchvorgänge nach Microsoft Teams-Kanälen zu aktivieren, die einem Benutzer zugeordnet sind. Die Komponente kann alle Teams, denen der Benutzer beigetreten ist, und jeden Kanal in diesen Teams durchsuchen.

Beispiel

Das folgende Beispiel zeigt die mgt-teams-channel-picker -Komponente. Beginnen Sie mit der Suche nach einem Kanal oder Team, um das Rendern der Ergebnisse anzuzeigen.

Abrufen des ausgewählten Kanals

Verwenden Sie die selectedItem -Eigenschaft, um den aktuell ausgewählten Kanal und übergeordnetes Team abzurufen. Dieser Wert ist NULL, wenn kein Kanal ausgewählt wurde. selectedItem enthält zwei Eigenschaften: channel (MicrosoftGraph.Channel) und team (MicrosoftGraph.Team).

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

Auswählen eines Kanals

Verwenden Sie die selectChannelById(channelId: string) -Methode, um einen Kanal programmgesteuert auszuwählen.

Hinweis: Die Teams-Kanalauswahl unterstützt nur die Auswahl eines einzelnen Kanals.

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

Hinweis: Der bereitgestellte Kanal (und die nachfolgende ID) muss zu einem Team gehören, dem der authentifizierte Benutzer beigetreten ist.

Benutzerdefinierte CSS-Eigenschaften

Die mgt-teams-channel-picker Komponente definiert die folgenden benutzerdefinierten CSS-Eigenschaften.

<mgt-teams-channel-picker
  class="teams-channel-picker"
  person-query="me"
></mgt-teams-channel-picker>
.teams-channel-picker {
  --channel-picker-input-border: 2px rgba(255, 255, 255, 0.5) solid; /* sets all input area border */

  --channel-picker-input-background-color: #1f1f1f; /* input area background color */
  --channel-picker-input-background-color-hover: #008394; /* input area border hover color */
  --channel-picker-input-background-color-focus: #0f78d4; /* input area border focus color */

  --channel-picker-dropdown-background-color: brown; /* channel background color */
  --channel-picker-dropdown-item-text-color: #fff;
  --channel-picker-dropdown-item-background-color-hover: #333d47; /* channel or team hover background */
  --channel-picker-dropdown-item-text-color-selected: #0f78d4; /* selected channel background color */

  --channel-picker-color: white; /* input area border focus color */
  --channel-picker-arrow-fill: #ffffff;
  --channel-picker-input-placeholder-text-color: #f1f1f1; /* placeholder text color */
  --channel-picker-input-placeholder-text-color-hover: rgba(
    255,
    255,
    255,
    0.8
  ); /* place holder text focus color */
  --channel-picker-input-placeholder-text-color-focus: rgba(
    255,
    255,
    255,
    0.8
  ); /* place holder text focus color */

  --channel-picker-search-icon-color: yellow;
  --channel-picker-close-icon-color: yellow;
  --channel-picker-down-chevron-color: yellow;
  --channel-picker-up-chevron-color: yellow;
}

Weitere Informationen finden Sie unter Formatieren von Komponenten.

Ereignisse

Ereignis Wann wird es ausgegeben? Benutzerdefinierte Daten Abbrechbare Blasen Funktioniert mit benutzerdefinierter Vorlage
selectionChanged Wird ausgelöst, wenn der Benutzer eine Änderung an der Auswahl eines Kanals vornimmt. Das aktuell ausgewählte Element als { channel: Kanalteam, team: } Nein Nein Ja

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Ereignisse.

Vorlagen

mgt-teams-channel-picker unterstützt mehrere Vorlagen , mit denen Sie bestimmte Teile der Komponente ersetzen können. Um eine Vorlage anzugeben, schließen Sie ein <template> Element in eine Komponente ein, und legen Sie auf data-type einen der folgenden Werte fest.

Datentyp Datenkontext Beschreibung
Laden null: keine Daten Die Vorlage, die zum Rendern des Zustands der Auswahl verwendet wird, während eine Anforderung an Microsoft Graph gestellt wird.
error null: keine Daten Die Vorlage, die verwendet wird, wenn eine Benutzersuche keine Benutzer zurückgibt.

Im folgenden Beispiel wird die Verwendung der error Vorlage veranschaulicht.

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

Microsoft Graph-Berechtigungen

Diese Komponente verwendet standardmäßig die folgenden Microsoft Graph-APIs und Berechtigungen. Für jede aufgerufene API muss der Benutzer mindestens über eine der aufgeführten Berechtigungen verfügen.

Konfiguration Berechtigung API
Standard Team.ReadBasic.All, TeamSettings.Read.All, TeamSettings.ReadWrite.All, User.Read.All, User.ReadWrite.All /me/joinedTeams
Standard Team.ReadBasic.All TeamSettings.Read.All, TeamSettings.ReadWrite.All /teams/${teamId}/photo/$value
Standard Channel.ReadBasic.All, ChannelSettings.Read.All, ChannelSettings.ReadWrite.All /teams/${id}/channels

Authentifizierung

Das Steuerelement verwendet den in der Authentifizierungsdokumentation beschriebenen globalen Authentifizierungsanbieter.

Cache

Die mgt-teams-channel-picker Komponente speichert keine Daten zwischen.

Erweitern für mehr Kontrolle

Für komplexere Szenarien oder eine wirklich benutzerdefinierte Benutzeroberfläche macht diese Komponente mehrere protected render* Methoden zum Überschreiben in Komponentenerweiterungen verfügbar:

Methode Beschreibung
renderSelected Rendert das ausgewählte Team und den ausgewählten Kanal im Eingabefeld.
renderInput Rendert das Eingabefeld.
renderDropdown Rendert die Dropdownliste.
renderDropdownList Rendert die Elemente in der Dropdownliste rekursiv.
Renderitem Rendert ein Team oder einen Kanal in der Dropdownliste.
renderHighlightedText Rendert den Kanaltext, wobei die Eingabeabfrage hervorgehoben wird.
renderLoading Rendert den Dropdownzustand des Ladevorgangs.
renderError Rendert den Dropdownfehlerzustand.

Lokalisierung

Das -Steuerelement macht die folgenden Variablen verfügbar, die lokalisiert werden können. Ausführliche Informationen zum Einrichten der Lokalisierung finden Sie unter Lokalisieren von Komponenten.

Zeichenfolgenname Standardwert
closeButtonAriaLabel remove the selected channel
inputPlaceholderText Select a channel
loadingMessage Loading...
noResultsFound We didn't find any matches.
photoFor Teams photo for
teamsChannels Teams and channels results