Releases: 2devs-team/reactter
Releases · 2devs-team/reactter
v7.3.0
Breakings
- refactor(core, test): Deprecate
isRegistered
method and replace it withisActive
to use a right concept.- Deprecated
Rt.isRegistered
, useRt.isActive
instead.
- Deprecated
- refactor: Deprecate
Obj
class, and extension methodstoSignal
andtoObj
. - refactor: Update references to use
Rt
instead ofReactter
. - refactor: Update references to use
RtState
instead ofReactterState
.- Deprecate
ReactterState
, useRtState
instead. - Deprecate
ReactterStateImpl
, useRtStateImpl
instead.
- Deprecate
- refactor: Update references to use
RtHook
instead ofReactterHook
.- Deprecate
ReactterHook
, useRtHook
instead.
- Deprecate
- refactor: Update references to use
RtDependency
instead ofReactterDependency
.- Deprecate
ReactterDependency
, useRtDependency
instead. - Deprecate
ReactterDependencyNotFoundException
, useRtDependencyNotFoundException
instead.
- Deprecate
- refactor: Update references to use
RtAction
instead ofReactterAction
andRtActionCallable
instead ofReactterActionCallable
.- Deprecate
ReactterAction
, useRtAction
instead. - Deprecate
ReactterActionCallable
, useRtActionCallable
instead.
- Deprecate
- refactor: Update memo interceptors to use more descriptive names.
- Deprecate
MemoInterceptors
, useMemoMultiInterceptor
instead. - Deprecate
AsyncMemoSafe
, useMemoSafeAsyncInterceptor
instead. - Deprecate
TemporaryCacheMemo
, useMemoTemporaryCacheInterceptor
instead. - Deprecate
MemoInterceptorWrapper
, useMemoWrapperInterceptor
instead.
- Deprecate
- refactor: Update widget references to use
RtSignalWatcher
instead ofReactterWatcher
.- Deprecate
ReactterWatcher
, useRtSignalWatcher
instead.
- Deprecate
- refactor: Update references to use
RtSelector
instead ofReactterSelector
.- Deprecate
ReactterSelector
, useRtSelector
instead.
- Deprecate
- refactor: Update references to use
RtScope
instead ofReactterScope
.- Deprecate
ReactterScope
, useRtScope
instead. - Deprecate
ReactterScopeNotFoundException
, useRtScopeNotFoundException
instead.
- Deprecate
- refactor: Update references to use
RtMultiProvider
instead ofReactterProviders
.- Deprecate
ReactterProviders
, useRtMultiProvider
instead.
- Deprecate
- refactor: Update references to use
RtProvider
instead ofReactterProvider
.- Deprecated
ReactterProvider
, useRtProvider
instead.
- Deprecated
- refactor: Update references to use
RtConsumer
instead ofReactterConsumer
.- Deprecate
ReactterConsumer
, useRtConsumer
instead.
- Deprecate
- refactor: Update references to use
RtComponent
instead ofReactterComponent
.- Deprecate
ReactterComponent
, useRtComponent
instead.
- Deprecate
Enhancements
- feat(extensions): Add
id
parameter towatch
method. - feat(widgets): Add the
RtWatcher
widget. It's a experimental widget for watching state and rebuilding when the state watched changes.
Fixes
- **...
v7.2.0
Breakings
- refactor(core,hooks,test): Deprecate and replace some enums and methods on Lifecycle to use the right concept.
- Deprecated
Lifecycle.initialized
, useLifecycle.created
instead. - Deprecated
Lifecycle.destroyed
, useLifecycle.deleted
instead. - Deprecated
onInitialized
method ofLifecycleObserver
, useonCreated
method instead. - Deprecated
onDestroyed
method ofLifecycleObserver
, useonDeleted
method instead.
- Deprecated
- refactor(widgets): Update
ReactterProvider
to useReactterProvider.init
constructor instead ofinit
property.- Deprecated
init
property ofReactterProvider
, useReactterProvider.init
instead.
- Deprecated
Enhancements
- feat(core): Add
Reactter.hasRegister
method to check if the dependency is registered in Reactter. - refactor(framework): Improve lazy loading performance in
ProviderImpl
, update implementation to reduce unnecessary checks and streamline widget rendering.
Fixes
- fix(core): Prevent all
ReactterDependency
events from being deleted after deregistering a dependency.- Update
offAll
method inEventHandler
to support generic removal.
- Update
- fix(hooks): Ensure that the callback is executed by the
dependencies
ofUseEffect
. - refactor(hooks): Improve error handling in
UseEffect
.
Internal
- refactor(core,framework,hooks): Update
dependencyInjection
getter names in Reactter codebase. - refactor(framework,test): Rename
reactter_instance
toreactter_dependency
and fix imports and exports. - doc(hooks): Update
UseReducer
andUseState
documentation to improve clarity and consistency. - test(core,hooks): Rename some files and update the descriptions.
- test(core): Add
Reactter.hasRegister
test. - refactor: Remove unnecessary 'late' modifier in
TestController
. - test: Add comparable test cases for
Args
. - refactor: 📝 Improve some comments and documentation for clarity and consistency.
- test: 📝 Update the descriptions of some test for clarity and consistency.
- test(widgets): Add test case for nullish dependency obtained from context.
- test(widgets): Add test case for getting dependency form
ReactterProvider
siblings. - refactor: Resolve lints and formatting issues.
Full Changelog: v7.1.0...v7.2.0
v7.1.0
Breakings
- refactor(core,framework,hooks,test): Deprecate and replace some classes and methods to use the right concept.
- Deprecated
UseInstance
hook, useUseDependency
hook instead. - Deprecated
InstanceManageMode
enum, useDependencyMode
enum instead. - Deprecated
ReactterInstance
class, useReactterDependency
class instead. - Deprecated
getInstanceManageMode
method, usegetDependencyMode
method instead.
- Deprecated
Internal
- refactor(core,framework,hooks,test): Deprecate and replace some classes and methods to use the right concept.
- Renamed
InstanceManager
class toDependencyInjection
. - Renamed
EventManager
class toEventHandler
. - Renamed
StateManager
class toStateManagement
.
- Renamed
Full Changelog: v7.0.1...v7.1.0
v7.0.1
Internal
- test: Refactor and structure examples.
- doc: Update
ReactterWatcher
builder comments for clarity.
Full Changelog: v7.0.0...v7.0.1
v7.0.0
Enhancements
- feat(core, framework): Add
Reactter.batch
andReactter.untracked
methods.Reactter.batch
hepls to execute the givencallback
function within a batch operation. A batch operation allows multiple state changes to be grouped together, ensuring that any associated side effects are only triggered once, improving performance and reducing unnecessary re-renders.Reactter.untracked
hepls to execute the givencallback
function without tracking any state changes. This means that any state changes that occur inside thecallback
function will not trigger any side effects.
- refactor(framework): Refactor lifecycle event handling and add lifecycle observer interface.
- Add
LifecycleObserver
inteface for event handling of the instance. - Add
didUnmount
lifecycle.
- Add
- refactor(core, framework, types): Add
LogLevel
enum and updatedefaultLogWriterCallback
signature. - refactor(hooks): Improve
UseEffect
performance and readability.- Add
UseEffect.runOnInit
constructor to execute callback effect on initialization.
- Add
- feat(framework, widgets): Add
ReactterProvider.lazy
constructor for lazy instance initialization. - refactor(widgets): Add
id
property toReactterComponent
for debugging information.
Breakings
- refactor(extensions, hooks, objs, signals): Remove features deprecated.
- Remove
List<ReactterState>.when
, usecontext.select
orUseCompute
instead. - Remove
UseContext
, useUseInstance
instead. - Remove
UseEvent
, use event shortcuts instead. - Remove
initialState
andreset
fromUseState
. - Remove
.obj
, useObj
class instead. - Remove
.signal
, useSignal
class instead.
- Remove
- refactor(framework, widgets, test): Change the position of
InstanceContextBuilder
(InstanceChildBuilder
now) arguments.- Move
context
to first argument onInstanceContextBuilder
(InstanceChildBuilder
now). - Adapt the
InstanceContextBuilder
(InstanceChildBuilder
now) ofReactterComponent
,ReactterConsumer
andReactterProvider
widgets.
- Move
- refactor(core, hooks): Rename
attachTo
tobind
,detachInstance
tounbind
andinstanceAttached
toinstanceBinded
. - refactor(hooks): Improve
UseEffect
performance and readability.
Fixes
- fix(obj): Fix equality comparison in
ObjBase
class. - fix(core): Resolve event for both types(instanceRef, instanceObj) and log event error.
- fix(core): Find the instance registered by the instance manager when searching for the extended class.
- refactor(core): Fix out-of-bounds index on
getHashCodeRefAt
method.
Internal
- refactor(framework, widgets, test): Change the position of
InstanceContextBuilder
(InstanceChildBuilder
now) arguments.- Adjust the tests about
ReactterComponent
,ReactterConsumer
andReactterProvider
widgets. - Adjust the documentation about
ReactterComponent
,ReactterConsumer
andReactterProvider
widgets.
- Adjust the tests about
- refactor(framework, widgets, test): Improve framework structure and simplify the
ReactterProvider
code.- Remove
Reactter
prefix of the framework classes. - Add
ProviderBase
,ProviderImpl
,ProviderElement
andProviderRef
class. - Rename
InstanceContextBuilder
toInstanceChildBuilder
andInstanceValueBuilder
toInstanceValueChildBuilder
. - Add
ChildBuilder
type. - Add
Reactter.getHashCodeRef
method.
- Remove
- refactor: Refactor file structure and imports.
- refactor(core, framework, hooks, signal): Rename variables of
ReactterZone
and improveReactterState
implementation. - refactor(test): Add
lazyState
,untracked
andbatch
tests. - refactor(core, test): Fix lifecycle event handling and add lifecycle_observer test.
- refactor(core, framework, test): Refactor event manager and remove unused code for 100% coverage.
- refactor(core, framework): Add
BindingZone
class and update references. - fix(core): Fix generic type constraint in
_getInstanceRef
method. - refactor(core): Refactor event handling logic and optimize listener removal.
- test(core, hooks): Add tests for signal usage on instance and binding to another instance.
- test(widgets): Add
ReactterProvider.lazy
tests, updateReactterComponent
tests and addLifecycleObserver
toTestController
. - fix(example): Update dependencies and fix code formatting on examples.
What's Changed
- Master <= Develop by @CarLeonDev in #4
Full Changelog: https://git...
v6.2.0
v6.1.0
Enhancements
- feat(framework, widgets, extensions): Add
ReactterSelector
widget andcontext.select
method extension.ReactterSelector
andcontext.select
help to control the rebuilding of widget tree using aSelector
methods that allows to select a state specific for listening, and return a computed value.
- feat(widgets): Add
ReactterScope
Widget.
IfReactterProvider.contextOf
doesn't have a type defined, useReactterScope
to work correctly.
Breakings
- perf(framework): Remove
updateAsync
fromReactterHook
andReactterState
. - perf(framework): Remove
emitAsync
fromReactterEventManager
. - refactor(extensions): Deprecate
List<ReactterState>.when
, usecontext.select
orUseCompute
instead.
Fixes
- fix(widgets): Notify
ReactterWatcher
has changed when available. - fix(framework): Remove
UseWen
asynchronously when callmarkNeedsNotifyDependents
through its changes.
Internal
- perf(framework): Add
ReactterNotifier
to manage events. - refactor(widgets): Improve
ReactterProvider
code. - perf(extensions, framework, widgets): Improve performance of
context.watch
. - refactor(types): Add
WatchState
andSelectComputeValue
types. - refactor(framework): Improve message error about
notifyListeners
ofReactterNotifier
. - feat(framework, widgets, extensions): Improve managing dependency.
- test(framework, widgets, hooks): Fix some part for test coverage.
- test: Add
context.select
andReactterSelector
test. - doc: Fix some code documentation.
- refactor(example): Improve api example.
- doc: Add documention about new features.
Full Changelog: v6.0.2...v6.1.0
v6.0.2
v6.0.0
Enhancements
- feat(args): Implement generic arguments.
- Add the
Args
class which represent one or more arguments. - Add the
Args1
,Args2
andArgs3
classes which represent one, two and three arguments respectively. - Add the types
ArgsX2
andArgsX3
which representArgs2
andArgs3
with the same arguments type. - Add
ary
methods for converting Function to Function with generic arguments.
- Add the
- feat(memo): Implement the
Memo
class. It's used for memoizing values returned by a calcutate function. - feat(memo): Add
MemoInterceptors
,MemoInterceptor
andMemoInterceptorWrapper
for intercepting and handling various events during the memoization process. - feat(memo): Add
AsyncMemoSafe
for removing the memoized value if its futures that throw an error when executed. - feat(memo): Add
TemporaryCacheMemo
for removing memoized values from the cache after a specified duration. - feat(framework, widgets):Improve
ReactterInstanceManager
andReactterInstance
.- Add
ref
parameter toReactter.get
. - Add
Reactter.destory
. - Add
InstanceManageMode.builder
,InstanceManageMode.factory
andInstanceManageMode.singleton
enums. These types represent different ways of creating and managing instances. - Add
Reactter.getInstanceManageMode
method for getting the instance type of the instance specified. - Add
Reactter.isRegistered
method for check if an instance is registered in Reactter. - Add
Reactter.lazyBuilder
,Reactter.lazyFactory
,Reactter.lazySingleton
methods to register a builder function to create a new instance in one of the different types. - Add
Reactter.builder
,Reactter.factory
,Reactter.singleton
methods to create a new instance in one of the different types. - Add
type
property toReactterProvider
.
- Add
- feat(hooks): Improve
UseInstance
hook.- Add
UseInstance.register
constructor for registering the builder function when it instantiated. - Add
UseInstance.create
constructor to create an instancia when it instantiated. - Add
UseInstance.get
constructor to create and/or get an instancia when it instantiated. - Add
UseInstance.lazyBuilder
,UseInstance.lazyFactory
,UseInstance.lazySingleton
factories to register a builder function to create a new instance in one of the different types when it instantiated. - Add
UseInstance.builder
,UseInstance.factory
,UseInstance.singleton
factories to create a new instance in one of the different types when it instantiated.
- Add
Breakings
- refactor(framework): Replace
Reactter.instanceOf
toReactter.find
. - refactor(framework): Change builder parameter of
Reactter.register
andReactter.create
to positional parameter. - refactor(hooks): Add
UseAsyncState.withArg
for usingUseAsyncState
withArgs
.- Now, the
resolve
method ofUseAsyncState
is used without arguments. Replace withUseAsyncState.withArg
. Itsresolve
method allows to use arguments.
- Now, the
- refactor(hooks, example): Deprecate
UseState.initial
andUseState.reset
.- Avoid using it.
- refactor(hooks): Deprecate
UseEvent
hook.- Use event shortcuts instead.
- refactor(hooks, test): Deprecate
UseContext
hook.- Use manage instances shortcuts or
UseInstance
instead.
- Use manage instances shortcuts or
- refactor(framework): The
Reactter.unregister
couldn't deregister the instance builder when the instance is active. - refactor(framework): Rename
Reactter.dispose
toReactter.offAll
. - refactor(types): Rename
ContextBuilder
toInstanceBuilder
andInstanceBuilder
toInstanceContextBuilder
. - reactor(framework): Rename
Reactter.lazy
toReactter.lazyState
.
Internal
- refactor(framework, hooks, test): Improve code structure and how to attach an instance to states using
ReactterZone
and structure code ofReactterState
. - refactor(example): Improve examples using the new features.
- test(framework, widgets, hooks): Add some tests about
ReactterInstanceManager
,ReactterInstance
,UseInstance
- test(framework): Improve tests.
- test(framework): Add
Reactter.destroy
test. - test(memo): Add
Memo
andMemoInterceptor
test. - test(args): Add
Args
test. - test(hooks): Add
UseAsyncState.withArg
test. - test(hooks): Add
UseInstance
test. - fix(test): Fix grammar of test description.
What's Changed
- Fixed typos and improved grammar by @Kentukyyo in #1
- Pre release 6.0.0 by @CarLeonDev in #2
New Contributors
- @Kentukyyo made their first contribution in https://github.com/...
v5.1.2
Fixes
- refactor(hooks): Add const to
ReactterAction
andReactterActionCallable
.
Internal
- doc: Change ROADMAP.
- refactor(example): Improve code and fix some issues.
- refactor(example): Remove
const
keyword for zapp compatibility.
Full Changelog: v5.1.1...v5.1.2