import * as React from "react"; import * as SDK from "azure-devops-extension-sdk"; import { CommonServiceIds, IGlobalMessagesService, MessageBannerLevel } from "azure-devops-extension-api"; import { Button } from "azure-devops-ui/Button"; import { IPickListSelection, PickListDropdown } from "azure-devops-ui/PickList"; export interface IMessagesTabState { messageLevel?: MessageBannerLevel; } export class MessagesTab extends React.Component<{}, IMessagesTabState> { constructor(props: {}) { super(props); this.state = { messageLevel: MessageBannerLevel.info }; } public render(): JSX.Element { return (
{ return [ { value: MessageBannerLevel.info, name: "Info"}, { value: MessageBannerLevel.error, name: "Error"}, { value: MessageBannerLevel.warning, name: "Warning"}, { value: MessageBannerLevel.success, name: "Success"} ] }} getListItem={(item) => { return { name: item.name, key: item.name } }} onSelectionChanged={this.onMessageLevelChanged} />
); } private onMessageLevelChanged = (selection: IPickListSelection): void => { if (selection.selectedItems && selection.selectedItems[0]) { this.setState({ messageLevel: selection.selectedItems[0].value }); } } private showMessageBanner = async (): Promise => { const { messageLevel } = this.state; const globalMessagesSvc = await SDK.getService(CommonServiceIds.GlobalMessagesService); globalMessagesSvc.setGlobalMessageBanner({ level: messageLevel, messageFormat: "This is a message from the sample extension. {0}", messageLinks: [{ name: "Learn more", href: "https://docs.microsoft.com/en-us/azure/devops/extend/get-started/node" }] }); } }