-
Added
ManualPromise
,groupBy()
to @frui.ts/helpers. -
Added
hideValidationErrors()
to @frui.ts/validation. -
OpenAPI generator refactored. Supports
allOf
andoneOf
features. -
Input
in @frui.ts/bootstrap supports new props:as
androws
. -
Select
in @frui.ts/bootstrap supports new props:emptyText
. -
ScreenBase.isInitialized
is now public. -
Added
ContinuousListViewModel
to @frui.ts/datascreens. It covers the case of 'endless' lists. -
BREAKING: Props of
<View />
changed:fallbackMode: "message" | "children"
. In case"children"
is set, the children props of the<View />
component is rendered when no view is found. You can use"children"
instead of the original"empty"
. -
BREAKING:
getValue
andsetValue
hooks accepttarget
andproperty
arguments instead of singleprops
. -
Binding types changed. You can use the third type parameter of
IBindingProps<TTarget, TProperty, TValue>
to restrict the binding target value type. -
IApiConnector
andFetchApiConnector
changes:fetchFunction
,jsonSerializer
, andmiddleware
properties are now protected and thus available to inheriting classes- BREAKING:
postText
,postFormData
replaced bypost
. The same goest forputText
,putFormData
,patchText
,patchFormData
,deleteText
, anddeleteJson
. - BREAKING:
delete
now containsbody
argument.
-
RestRequestBuilder
changes:- BREAKING:
postFormData
replaced bypostData
,putFormData
replaced byputData
- added
path(path: string)
for fluent URL building - added
url:string
property for reading current URL - uses
query-string
package for creating query strings (you can use thequeryStringOptions
property to customize the stringification process - see https://github.com/sindresorhus/query-string#stringifyobject-options)
- BREAKING:
- New package @frui.ts/dataviews with higher-order components for displaying data. Check the readme.
- Added
useBinding
,getValue
, andsetValue
helper functions to @frui.ts/views. You can use them when implementing functional binding components. - React and Mobx made peer dependencies
Router
requires root view model onstart()
instead of the constructorRouter
accepts a navigation adapter onstart()
, which enables proper cooperation of the two components- Route name can be string, symbol, or class
UrlNavigationAdapter
requires root view model onstart()
instead of the constructor- You can provide custom JSON serializer to
FetchApiConnector
initialize(): Promise<any> | void
added toIActivatable
(and therefore toIScreen
as well)ConductorSingleChild
requiresfindNavigationChild
to be implemented. You can returnundefined
, which was the original default, if you don't need navigation to child screens.- When activating a child of a conductor, it gets at least initialized when the parent is not active
AutomaticDirtyWatcher
can be configured to exclude specified propertiesCheck
in @frui.ts/bootstrap supports indeterminate state. Enable it by setting thethreeState
prop. The state id displayed when the bound value isnull
.Check
in @frui.ts/bootstrap supportsvalue
property so that it can set custom values to the bound property (not onlyboolean
).
- OpenApi generator writes string enums as type aliases.
- OpenApi generator supports named arrays as entities.
- Inversify generator supports custom identifiers and auto factories.
- Added a Create React App template.
- Added
Router
. IHasNavigationName
deleted,NavigationName
moved toIScreen
.IHasNavigationParams
deleted,get navigationParams()
is now directly inScreenBase
. You can handle incoming params innavigate()
function (move your logic fromapplyNavigationParams()
).- Added
INavigationParent
. - Current screens and conductors updated according to the changes above.
- Ordering of the generic parameters of
BindingComponent
changed to conform with other components:BindingComponent<TProps, TTarget>
changed toBindingComponent<TTarget, TProps>
.
- New package @frui.ts/generator with CLI code generator. Check the readme.