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)
- Detect and apply
- 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)
- Accept
- 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).
- Implement
New & Improved Hooks
- useConfig() (09319d8)
- useIcon() (e476bd3)
- useOutbox() (ca7dcbe)
- useSitemap() (47ef7a1)
- useSiteTitle() (09319d8)
- usePluginReducer() (e476bd3)
- useRouteInfo(): accept route name as argument (a3b1970b)
@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 theDate()
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-levelstyle
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).
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.)