Release Notes Extensions RC Drop 1.2

Vesa Juvonen edited this page Aug 29, 2017 · 3 revisions

SharePoint Framework Extensions Release Candidate (SPFx v1.2)

Welcome to the latest drop of the SharePoint Framework. The biggest change in this drop is the move to Release Candidate 0 for SPFX Extensions. We've not left developers building web parts alone though, with support for TS2.4, React 15, and multi-component bundles. More details below.

Extension Release Candidate

We've made some refinements in the following areas:

Performance

We've greatly reduced the impact of loading SPFX components into modern lists and libraries. Modern pages were already fast previously.

Placeholders

We've tried to clarify the role of placeholders in Release Candidate. There was some confusion with our original naming, where people viewed things like "Header" and "footer" as overrides for built in controls. We've changed the naming to be the general location on the page, so "Top" and "Bottom". For now, placeholders are still accessed only through the application customizer, but once we finalize the API we will extend the API to all SPFX components. The API to access the placeholders has changed slightly. It now looks like this:

placeholderContent = this.context.placeholderProvider.tryCreateContent(PlaceholderName.Top);
placeholderContent.domElement.innerText = "foo";

Events

Release Candidate introduces the notion of system level events. SPFx can raise events from different sources (Application, Placeholder provider, etc) that you can register for. When the event occurs, your handler function will be invoked. One thing to realize when hooking up events is that all SPFX components implement IEventObserver, so the typical object to pass into the event registration is the current extension.

this.context.application.navigatedEvent.add(this, myCallbackFunction);

Since this is the first API version of events, expect there to be some amount of refinement between this build and the final supported version. Please provide feedback if you have questions or suggestions on improvements.

General SPFX enhancements

Updated compiler and typings

We've moved to Typescript 2.4 as well as React 15 typings. The changes in TS2.4 aren't as extreme as in earlier compiler updates.

Multi-component bundles

Earlier versions of SPFX required each component to have its own javascript bundle. It is now possible to have multiple components compiled into a single js bundle. Multi-component bundles can make it easier to share code and logic across similar components, as well as reduce the overall size of your javascript since you only get one instance of the shared code. Think of it as having a single dll with 5 web parts, rather than 5 different dlls. We'll provide more documentation around these options soon.

Webpart Configuration Pane

The reactive/non-reactive web part configuration pane has been made better in the following areas:

  • Added aria support to all the controls
  • Respecting individual property pane control's checked/value prop in case if the web part properties return a non-value.
  • Vertical alignment is now enabled on the text Choice Group options.
  • Added Tooltip functionality for the choice group options.
  • Fixed non-reactive property pane ‘Apply’ button is disabled even after changes were made in the property pane.
  • In non-reactive cases, web part properties are not mutated until the save button is clicked.
  • Property pane is fully themed now.
  • Custom field modifications – changeCallback public API’s signature is changed to not require the targetProperty and value parameters.

General bug fixes

We've made a bunch of general improvements to SPFX as well.

  • Fix a SPHttpClientBatch bug when handling an HTTP 204 response
  • Add scroll reveal animation to web parts
  • Allow property pane text field to accept undefined as a change to clear a field
  • Extend PropertyPaneChoiceGroup interface to allow use of themeable SVG images
  • Fix the logic to apply web part minimum height
  • Add type to IPropertyPaneDropdownOption
  • Fix property pane drop-down option to correct enum value
  • Update property pane styles to support mixing icons and images in the same choice group
  • Ensure the ChoiceGroup's label is above the options in property pane"
  • Add aria label property to drop-down control
  • Fix the check box and toggle check/uncheck issue
  • Fix the logic of choicegroup option selection
  • Fix getPropertyPaneConfiguration being called multiple times on property pane field change
  • Respect individual property pane control's checked/value prop in case if the property bag returns a non-value
  • Add onAriaLabel and offAriaLabel in IPropertyPaneToggle
  • Remove deprecated TSLint rules from the generator
  • Fix an issue with manifest files where they are trying to load a non-existent schema file
  • Improve the generator so it does not append the component type to the class name if it already is included in the component name. Automatically truncate alias if it is more than 40 characters in length.
  • Remove the .npmignore and .gitattributes from the solution template.

Where can I find out more?

The official documentation and labs for SharePoint Framework Extensions are located at https://dev.office.com/sharepoint/docs/spfx/extensions/overview-extensions