UNPKG

@pnp/generator-spfx

Version:

This Yeoman generator helps organisations to improve their development workflow with the SharePoint Framework. It extends the functionalities of the @microsoft/generator-sharepoint based on best pattern and practices. This generator extends the capabiliti

57 lines (49 loc) 1.81 kB
import { override } from '@microsoft/decorators'; import { Log } from '@microsoft/sp-core-library'; import { BaseListViewCommandSet, Command, IListViewCommandSetListViewUpdatedParameters, IListViewCommandSetExecuteEventParameters } from '@microsoft/sp-listview-extensibility'; import { Dialog } from '@microsoft/sp-dialog'; import * as strings from '<%= componentStrings %>'; /** * If your command set uses the ClientSideComponentProperties JSON input, * it will be deserialized into the BaseExtension.properties object. * You can define an interface to describe it. */ export interface I<%= componentClassName %>Properties { // This is an example; replace with your own properties sampleTextOne: string; sampleTextTwo: string; } const LOG_SOURCE: string = '<%= componentClassName %>'; export default class <%= componentClassName %> extends BaseListViewCommandSet<I<%= componentClassName %>Properties> { @override public onInit(): Promise<void> { Log.info(LOG_SOURCE, 'Initialized <%= componentClassName %>'); return Promise.resolve(); } @override public onListViewUpdated(event: IListViewCommandSetListViewUpdatedParameters): void { const compareOneCommand: Command = this.tryGetCommand('COMMAND_1'); if (compareOneCommand) { // This command should be hidden unless exactly one row is selected. compareOneCommand.visible = event.selectedRows.length === 1; } } @override public onExecute(event: IListViewCommandSetExecuteEventParameters): void { switch (event.itemId) { case 'COMMAND_1': Dialog.alert(`${this.properties.sampleTextOne}`); break; case 'COMMAND_2': Dialog.alert(`${this.properties.sampleTextTwo}`); break; default: throw new Error('Unknown command'); } } }