Home > Release Notes > wq.app 1.3 beta

wq.app 1.3 beta

wq.app 1.3.0b1 is the beta release of the next version of wq.app, as part of the wq 1.3 beta. This release brings a number of bug fixes & improvements to the @wq/react + @wq/material renderer introduced in wq.app 1.3 alpha. Be sure to check out the new documentation site which includes live demos of many of the components in @wq/material.

Breaking Change

While most of the changes below extend and enhance existing behavior, note that there is a backwards-incompatible change in @wq/map. Map bounds coordinates must now be specified using the standard [lng, lat] order, rather than the Leaflet-style [lat, lng] supported in older versions of wq (b11bcd3). If you are upgrading from wq.app 1.3.0a1 or older, you will need to update your config.map.bounds setting. This applies even if you are using the legacy @wq/jquery-mobile renderer.

Core Modules

@wq/app

  • Restore support for file uploads (wq/wq#50)
  • Option to keep spinner open while prefetching data (#61, #103)
  • Improve parsing of nested objects and arrays (0fcea4d, 001394b)
  • Support anonymous top-level fieldset (001394b)

@wq/model

  • Respect Django’s [model].Meta.ordering for locally cached records (b909674)
  • Make fetchUpdate() work with the regular wq.db list API (ec252f0, 92927ca)

@wq/router

  • Update document.title during render (e5626bd)

@wq/outbox

  • Implement support for a new validate() plugin type, replacing the old config.outbox.validate option (387c8d5)
  • Improve parsing of nested objects and arrays (0fcea4d, 5002ac9)

UI Plugins

@wq/react

Component Improvements

  • Form
    • Detect and apply background_sync from the page config (0cefab5)
    • Pass form values to custom onSubmit() (115f027)
  • AutoSubformArray
    • Allow overriding Fieldset and FieldsetArray via XLSForm appearance on the serializer (0fcea4d)
    • Default to FileArray when rendering nested forms with a single file field (0d9b99c)
    • Memoize generated FieldsetArray wrapper component (d646c2c)
    • Improve parsing of nested objects and arrays (001394b, ca7dcbe, 5a1a282)
  • Breadcrumbs
    • Accept links as a prop, to make it easier to override while keeping the same UI. (a3b1970)
  • PropertyTable
    • Support anonymous root fieldset (c5e6bc2)
  • Other
    • Implement required for all field types (540bfad, 5002ac9, 3aed0c1)
    • Make Fab and HorizontalView pass through arbitrary props to the underlying component (73e24ee, ca7dcbe).

New & Improved Hooks

  • useConfig() (09319d8)
  • useIcon() (e476bd3)
  • useOutbox() (ca7dcbe)
  • useSitemap() (47ef7a1)
  • useSiteTitle() (09319d8)
  • usePluginReducer() (e476bd3)
  • useRouteInfo(): accept route name as argument (a3b1970)

@wq/material

Form Input Improvements

  • Implement clearable File and Image inputs (wq/wq#50; wq/wq.db#23)
  • Fix date storage for Date & Time inputs. Entered data will be stored in the outbox as a timezone-less string (like the HTML5 <input type=date>), rather than the Date() object used by the underlying UI libraries. (#127)
  • In Input and Checkbox, ensure the correct HTML5 input type and maxlength where applicable (aedc746, 7bfef38, b909674)
  • Show helper text / hints for Geo & Select inputs (e3de0e5)

New & Improved Components

  • ExpandableListItem (e8ade36)
  • FlatFieldset (540bfad)
  • FooterContent (2f11e52)
  • HomeLink (fa65da4)
  • ListItem: support secondaryAction prop (7cf9aaf)

Map Plugins

@wq/map

  • Breaking change: Change map bounds coordinates from the Leaflet-style [lat, lng] to the more standard [lng, lat] (b11bcd3). If you are upgrading from wq.app 1.2 or older, you will need to update your config.map.bounds setting.
  • StickyMap component to preserve map state when offscreen (0fd7177)
  • Additional tools for adding/removing highlighted features to map state (0fd7177)
  • Improve Geo input component:
    • Replace wq/locate.js plugin with built-in geolocation support (#126)
    • Ensure hints and field errors are shown (e3de0e5)
    • Customizable help text for draw tools (540bfad)
    • Option to render within a FlatFieldset instead of the default Fieldset (e.g. when already within a nested form)

@wq/map-gl

  • Renamed from @wq/mapbox to @wq/map-gl to make it easier to switch out map libraries in the future (#128).
  • Don’t show trash tool if geometry field is required (540bfad)
  • Basemap “components” now have an asBasemapStyle() function to facilitate the Map-level style prop while maintaining the logic within the component source. (6f5f1c4)

wq.js bundle

  • Generate LICENSES.md to document the vendored third-party modules in the build (da4f7d5)
  • Re-export select third-party modules for integration with @wq/rollup-plugin
  • Preserve function names for components and hooks in minified build (d06b814)
  • Improve compatibility with (modern) browsers (5363e07)

CLI Changes

As part of the changes to the build system, the following commands are are deprecated. They will be removed in wq.app 2.0, together with the entire wq.app.build source tree:

  • wq appcache
  • wq babel
  • wq build
  • wq init
  • wq mustache
  • wq optimize
  • wq phonegap
  • wq scss

The following commands are not deprecated, but the implementations have moved from wq.app.build to wq.build (3f773a1).

  • wq collectjson
  • wq icons
  • wq serviceworker
  • wq setversion

The deprecated commands are not needed for newer projects, so the associated dependencies are are now optional (e6f279b). Use pip install wq.app[compat] if you have a fresh install of wq.app 1.3.0 and need to use the old commands. (Users upgrading from an older version of wq.app should already have the required dependencies installed.)